El modelo de implementación de entrega continua
- 4 minutos
Ya conoce las numerosas desventajas de la "implementación de epopeya" como modelo de entrega de software, pero el hecho de saber qué no funciona bien es solo la mitad del trabajo. En esta unidad, obtendrá información sobre la alternativa a este método monolítico y cómo le ayudará a alcanzar su objetivo de mejorar la confiabilidad.
¿Qué es la entrega continua?
La entrega continua es un método que permite hacer que los cambios de software estén disponibles para su uso de forma más rápida, más reproducible, menos estresante y menos arriesgada. En lugar de hacer que cada implementación o actualización de software se convierta en una epopeya, la entrega continua se esfuerza por convertirla en una experiencia rápida, rutinaria y predecible que se produzca a petición.
Frecuencia de implementación: con un modelo de entrega continua, las implementaciones se producen a menudo: de manera mensual, semanal o diaria, o incluso cada hora. La clave consiste en implementar cambios más pequeños y específicos más a menudo.
Iniciada por la confirmación del código: en lugar de programarse con mucha antelación, las implementaciones tienen lugar cuando se confirma el código. Este código puede ser software, infraestructura o incluso elementos como configuraciones de software.
Pruebas automatizadas: puede usar las pruebas automatizadas integradas no solo para probar el código, sino para proporcionar comentarios rápidos sobre los resultados de las pruebas. Estos comentarios rápidos son los que permiten iterar y recuperarse rápidamente de las pruebas con errores.
Una vez que se ha probado el código, se puede probar la implementación, de un extremo a otro, en una serie de entornos de ensayo, como pruebas, control de calidad, etc. La aplicación de las implementaciones en estos entornos es una parte integral de la experiencia de implementación.
Registros históricos: no solo le interesa tener un registro histórico de las actividades de implementación, sino que le conviene poder conciliar el entorno de producción en un momento dado. Necesita saber qué implementación ha creado el entorno de producción actual. Con este conocimiento, puede llevar un seguimiento de aspectos como configuraciones, resultados de pruebas y el propio código hasta la solicitud de incorporación de cambios individual que desencadenó la implementación.
Objetivos de implementación
Ahora que sabe cómo funciona la entrega continua, considere los objetivos que puede lograr mediante el uso de prácticas de DevOps como esta para implementar soluciones de software.
Objetivo 1: reducir el estrés que conlleva la implementación de servicios a la vez que se aumenta la confiabilidad de dichos servicios
Este objetivo es provechoso para todos. No solo aumenta la satisfacción en el trabajo al reducir el estrés que conllevan las implementaciones de software e infraestructura, sino que aumenta la satisfacción del usuario final al hacer que los sistemas sean más confiables. Además, esto afecta positivamente a la experiencia del cliente, lo que lo convierte en un objetivo todavía más provechoso.
Objetivo 2: reducir el tiempo que media entre el momento en el que se descubre que hace falta un cambio y el momento en el que dicho cambio se implementa en producción
Por ejemplo, supongamos que ha identificado un defecto en el código que afecta a los ingresos. Sabe exactamente cuál es el problema y cómo codificar la corrección. ¿Cuánto tiempo tarda en llevar ese código a producción? ¿Cuántas cadenas necesita extraer? ¿Cómo realiza las pruebas? Con las prácticas de DevOps, puede codificar la confirmación, irse a comer y recibir una notificación de que el problema se ha resuelto antes de volver a su puesto.
Objetivo 3: reducir el tiempo que media entre tener una idea y entregar software utilizable
Este objetivo es muy similar al anterior, pero en este caso no nos referimos a la implementación de cambios, sino estrictamente a la innovación. ¿Cuánto tiempo tarda en reaccionar ante una innovación? Con este modelo de implementación, puede integrar un nuevo concepto en un sistema de producción y tener la seguridad de que la innovación agregada no supondrá una interrupción o un obstáculo para el sistema actual. Gracias a esto, podrá incluir rápidamente la nueva característica.
Resultados de la implementación
Los objetivos que se han descritos en esta unidad no son solo aspiraciones teóricas, se pueden alcanzar. A continuación encontrará algunas estadísticas del informe Accelerate State of DevOps de 2019, de DevOps Research and Assessment (DORA) y DevOps & SRE de Google Cloud. Según este informe, las empresas de DevOps de "alto rendimiento":
- Tienen 208 veces el número de implementaciones.
- Son 106 veces más rápidas desde la confirmación hasta la implementación.
- Tienen una frecuencia de errores de cambio 7 veces inferior.
- Tener un tiempo de recuperación de incidentes 2604 veces más rápido.
Todo esto conlleva un aumento de los ingresos y un menor tiempo de comercialización.
Estas cifras ponen de manifiesto la importancia de las prácticas de implementación.