DevOps y entrega continua
DevOps y la entrega continua son prácticas que unifican el desarrollo de software y las operaciones a través de la automatización, la retroalimentación rápida y una cadena de despliegue que mantiene el software en un estado continuamente liberable.
Definition
DevOps es un conjunto de prácticas culturales y técnicas que integran el desarrollo de software y las operaciones de TI para acortar el ciclo de entrega, mientras que la entrega continua es la disciplina de ingeniería que automatiza la construcción, prueba y despliegue para que el software pueda ser lanzado de forma fiable en cualquier momento.
Scope
Este tema abarca la integración continua y las cadenas de entrega/despliegue continuos; la automatización de la construcción, prueba y lanzamiento; la infraestructura como código; la gestión de la configuración; la monitorización y la observabilidad; la colaboración cultural entre desarrollo y operaciones; y métricas como la frecuencia de despliegue, el tiempo de entrega, la tasa de fallos de cambio y el tiempo medio de recuperación.
Core questions
- ¿Cómo automatiza una cadena de despliegue el camino desde la confirmación hasta la producción?
- ¿Qué prácticas mantienen el software continuamente liberable mientras se preserva la calidad?
- ¿En qué se diferencian la integración continua, la entrega continua y el despliegue continuo?
- ¿Qué métricas indican de forma fiable el rendimiento de la entrega de software?
Key theories
- Cadena de despliegue
- Cada cambio fluye a través de una cadena automatizada de construcción, pruebas automatizadas y despliegue por etapas, lo que proporciona retroalimentación rápida y asegura que cualquier versión que pase sea candidata para su lanzamiento.
- Las Tres Vías de DevOps
- Los principios de Kim describen la optimización del flujo desde el desarrollo hasta las operaciones, la amplificación de los bucles de retroalimentación y el fomento de una cultura de experimentación y aprendizaje continuos como base de las organizaciones tecnológicas de alto rendimiento.
- Métricas de rendimiento de entrega DORA
- La investigación identifica cuatro métricas clave —frecuencia de despliegue, tiempo de entrega para cambios, tasa de fallos de cambio y tiempo para restaurar el servicio— que distinguen estadísticamente a las organizaciones de entrega de software de alto de las de bajo rendimiento.
Clinical relevance
DevOps y la entrega continua acortan los ciclos de lanzamiento de meses a horas, reducen el riesgo de despliegue mediante la automatización y el uso de lotes pequeños, y mejoran tanto la estabilidad como el rendimiento; estudios empíricos vinculan estas prácticas con un mejor rendimiento organizacional.
Evidence & guidelines
Los informes anuales State of DevOps y el programa de investigación Accelerate proporcionan evidencia empírica de que las prácticas de entrega continua se correlacionan con el rendimiento de la entrega de software y el rendimiento organizacional.
History
El término DevOps surgió alrededor de 2009 de los movimientos de administración de sistemas ágiles e infraestructura como código, buscando romper la barrera entre desarrollo y operaciones. Humble y Farley codificaron la entrega continua en 2010, y la investigación empírica posterior formalizó las métricas que distinguen a los equipos de alto rendimiento.
Debates
- Despliegue continuo versus entrega continua
- Se debate si cada cambio que pasa debe desplegarse automáticamente a producción (despliegue continuo) o esperar una decisión de lanzamiento manual (entrega continua); la respuesta depende de la tolerancia al riesgo, el contexto regulatorio y la madurez de la verificación automatizada.
Key figures
- Jez Humble
- David Farley
- Gene Kim
- Nicole Forsgren
- Patrick Debois
Related topics
Seminal works
- humble2010
- kim2016
- forsgren2018
Frequently asked questions
- ¿Cuál es la diferencia entre entrega continua y despliegue continuo?
- En la entrega continua, cada cambio que pasa por la cadena es liberable, pero la decisión de desplegar a producción es una acción humana deliberada; en el despliegue continuo, ese paso final también está automatizado, por lo que cada cambio que pasa se lanza automáticamente.
- ¿Es DevOps un rol o una práctica?
- DevOps es principalmente un conjunto de prácticas culturales y técnicas que abarcan el desarrollo y las operaciones, no un único puesto de trabajo; tratarlo como un rol de operaciones simplemente renombrado ignora su énfasis en la propiedad compartida y la automatización.