Continous, continous, continous

Continous integrations, Continous delivery, Continous deployment,  son conceptos que cada vez oímos más. Uno de ellos, continous delivery es de vital importancia para la gestión de cualquier cambio a aplicar en uno o un conjunto de servidores.

Los que hayan trabajado o colaborado con equipo de desarrollo de software seguramente el concepto continous integration o integración continua les sea familiar. La integración continua es una técnica utilizada por los equipos de desarrollo para detectar fallos en el código cuanto antes. Esta consiste en ejecutar de forma automática un conjunto de test cada vez que se sube un cambio al repositorio de código fuente. Estos test comprueban todas las funcionalidades de la aplicación para detectar si el nuevo cambio afecta a alguna de las funcionalidades de la aplicación. Este proceso protege de desplegar código erróneo a producción.

El concepto de continous delivery va un paso más allá. Continous delivery lleva la idea de integración continua a todos los actores y procesos  que participan en el flujo de despliegue de una aplicación o actualización de un sistema. El objetivo es desplegar todos los cambios, ya sea la instalación de nuevas funcionalidades, actualizar un bug o aplicar nuevas configuraciones a producción de forma segura y rápida.

La idea es establecer un conjunto de etapas o pipeline a través de las cuales pasa cada cambio antes de ser aplicado al entorno de producción. El objetivo de cada una de estas etapas es validar la calidad del cambio desde diferentes puntos de vista y prevenir los errores. No hay un pipeline único, sino que cada organización tienes su propio pipeline,  pero típicamente este puede estar formado por algunas es estas etapas:

  • Integración continua.
  • Ejecución de test funcionales.
  • Ejecución de test de seguridad.
  • Ejecución de test de rendimiento.
  • Despliegue a producción.
  • Operación.

El esquema siguiente muestra un pipeline para la gestión de cambios en los sistemas, donde lo deseado es que todas las etapas del pipeline sean automática, solo dejando el paso a producción con una acción manual, todo y que solo sea para activar el despliegue del cambio en el entorno de producción.

esquema continuos

Cada una de las etapas debe informar a los diferentes actores que intervienen en el proceso de continous delivery (desarrolladores, operadores, ingenieros de calidad, ingenieros de seguridad, gestores, …) del resultado de cada etapa. De esta forma, detectamos los problemas que pueda ocasionar un nuevo cambio antes que este se aplique sobre el entorno producción.

Para poder agilizar el proceso de aplicación de cambios y repetirlo tantas veces como sea necesarios, es básico automatizar los test ejecutados en cada una de estas etapas. Por otro lado, existen herramientas como Jenkins que permiten configurar y automatizar las etapas del pipeline.

Si os interesa, en https://continuousdelivery.com/ encontrareis recursos que profundizan en el tema.


Source: jmgriscom

About the Author