El área de TI de una organización debe cumplir a la vez dos objetivos en cierta medida conflictivos: responder con rapidez a la necesidad de cambio y mantener la confiabilidad y disponibilidad de los servicios.
A menudo el área de Desarrollo asume el primer objetivo y el área de Operaciones el segundo, lo que puede dificultar el logro de ambos objetivos a la vez. La adopción del enfoque DevOps ha permitido a numerosas organizaciones superar esta problemática, posibilitando que cambios en sus aplicaciones sean puestos en producción en plazos más cortos, con alta confiabilidad y seguridad así como con riesgos controlados. Esta capacidad les permite responder rápidamente a necesidades y condiciones cambiantes, entregando más valor a clientes y usuarios. DevOps involucra tanto aspectos tecnológicos como organizacionales y culturales. Entre los tecnológicos resultan esenciales la integración contínua y la automatización de tareas repetitivas, que son propensas a errores y fuente de demoras. Entre los aspectos organizacionales están el lograr una adecuada colaboración entre Desarrollo y Operaciones, involucrar de forma temprana (“shift left”) a Calidad y Seguridad de la Información, acercar la calidad al origen, poner foco en el logro de mejoras globales en el proceso de entrega de valor a clientes y usuarios, y habilitar el aprendizaje organizacional y una cultura de seguridad. El curso introduce al estudiante al mundo DevOps permitiéndole experimentar parte de los desafíos tecnológicos y organizacionales que implica y lo orienta para que pueda continuar profundizando sus conocimientos en aspectos específicos en función de sus necesidades e intereses.
Introducir al estudiante en el enfoque DevOps para la creación y explotación de software y a las prácticas, tecnologías, organización y cultura asociadas.
1. Introducción
Visión general de DevOps, origen,antecedentes y objetivos. Conflicto crónico entre Desarrollo y
Operaciones. Su impacto en la calidad de los productos y en el desempeño de TI en las organizaciones.
Cadena de valor en los productos/servicios de TI. Las tres vías para mejorar el impacto de TI en el
desempeño de la organización: flujo rápido, retroalimentación constante, aprendizaje continuo.
2. Aspectos tecnológicos
Aspectos tecnológicos asociados a cada una de las vías para el logro de los objetivos de DevOps.
A. Primera vía (flujo rápido): Construcción, integración, entrega y despliegue continuos. Trunk
development. Pruebas y otros controles de calidad automatizados (p. ej. basados en JUnit, Newman,
Selenium, SonarQube), construcción de una canalización (pipeline) (p. ej. basada en Gitlab, Jenkins),
gestión de la configuración y su alcance. Creación de ambientes a demanda. Estrategias de
liberación/rollback (p. ej. basadas en unleash, togglz). Seguridad y cumplimiento (DevSecOps) (p. ej.
Gitlab SAST). Infraestructura como código (p. ej. basada en Ansible, Terraform). Contenedores (p. ej.
Docker, Kubernetes). Alternativas de despliegue.
B. Segunda vía (retroalimentación constante): Monitoreo y registro de la ejecución en un ambiente.
Telemetría, observabilidad, alarmas y explotación de logs (p. ej. en base a OpenTelemetry, AppDynamics,
Grafana, Datadog). Self-healing. Hypothesis-driven development y A/B testing (p. ej. en base a
GrowthBook).C. Tercera vía (aprendizaje continuo): ChatOps. Inyección de fallas en explotación para Resilience
Engineering.
3. Aspectos organizacionales
Aspectos generales y asociados a cada una de las vías para llevar a cabo el cambio organizacional que
implica la adopción de DevOps (p. ej. en tecnología, procesos, estructura organizativa y cultura).
A: Adopción de DevOps: un cambio organizacional
Dinámica de los cambios organizacionales. Transformación de una cadena de valor. Métricas críticas.
Gestión de la restricción en la cadena de valor. Reducción de la deuda técnica. Visibilizar estado del
trabajo (p. ej. en base a Jira). Papel de las herramientas en el cambio cultural.
B: Primera vía (flujo rápido)
Impacto de la arquitectura en atributos de calidad (p. ej. seguridad, performance) y en la productividad de
desarrollo y operaciones. Relación entre la estructura organizativa en la producción de software y la
arquitectura resultante (Ley de Conway). Arquetipos organizacionales. Impacto de diversos factores
organizacionales en la velocidad del flujo (p. ej. desacoplar despliegue de liberación). Estrategias para
evolucionar la arquitectura.
C: Segunda vía (retroalimentación constante)
Observabilidad que abarque negocio, aplicación e infraestructura. Análisis rutinario de la observabilidad y
reducción de riesgos asociados a liberaciones. Participación/responsabilidad de personal de desarrollo en
tareas de operación. Participación/responsabilidad de personal de operaciones en arquitectura de los
sistemas. Revisión por pares para acercar la calidad al origen.
D: Tercera vía (aprendizaje continuo)
Establecimiento de una cultura justa de aprendizaje. Tratamiento de incidentes. Transformación de
descubrimientos locales en mejoras globales. Elecciones tecnológicas para alcanzar los objetivos
globales. Reserva de tiempo para generar mejora organizacional y aprendizaje.
4. Variantes en DevOps
Site Reliability Engineering (SRE)
Plattform Engineering
La evaluación se realizará en base a:
• Participación en clase y ejercicios prácticos (20%)
• Entregas de trabajo grupal de laboratorio (50%)
• Evaluación escrita final individual (30%)
El curso se aprueba con el 60% de los puntos.