Hace una década, Amazon inició un proyecto para determinar el tiempo que tomaba llevar la conceptualización de un sistema de cómputo a producción. Midieron el ciclo de vida del desarrollo del software y con los resultados obtenidos, optaron por desarrollar un plan de mejora continua para incrementar la velocidad en las implementaciones.
El ciclo de vida del desarrollo de software requiere de la sincronización de actividades de dos equipos de trabajo, el equipo de desarrollo de software y el de operaciones de TI. DevOps es un conjunto de prácticas que asegura que un grupo de personas trabaje de forma conjunta y coordinada con el objetivo de concebir, construir y entregar software a la mayor brevedad posible.
Esta metodología fomenta la comunicación, colaboración, integración y automatización entre los desarrolladores de software y el equipo de operaciones de TI, cuyo objetivo principal es mejorar la calidad y la velocidad de la entrega del software.
Los equipos de DevOps se enfocan en estandarizar los entornos de desarrollo y automatizar los procesos de entrega de software de forma continua para mejorar la predictibilidad, la eficiencia, la seguridad y la capacidad de mantenimiento de la entrega utilizando herramientas que faciliten y agilicen la implementación.
El ciclo DevOps comienza en la etapa de planificación y recopilación de requisitos y finaliza en la supervisión y retroalimentación continuas. Dada la complejidad de los equipos de trabajo, así como de las propias aplicaciones, es necesario utilizar distintas herramientas con diferentes capacidades en cada etapa que, entre otras cosas, deben facilitar la automatización de tareas manuales, gestionar entornos de desarrollo a escala y mantener el control de los tiempos de entrega.
Ejemplos de estas son GitHub para el control de versionado, Docker para la gestión de contenedores, scripting y lenguajes de programación utilizados para el desarrollo y despliegue de software.
En esta experiencia conocerás la metodología DevOps así como diferentes herramientas que te permitirán desarrollar un conjunto de habilidades interdisciplinarias para crear, construir y desplegar software en el menor tiempo posible.