CI/CD: Integración Continua y Entrega Continua

Los desarrolladores siguen un proceso/modelo conocido como Ciclo de vida de desarrollo de software (SDLC ) para desarrollar proyectos de software. Un SDLC tradicional tiene varias etapas de desarrollo

  1. Planificación: documentar y determinar la estructura y el cronograma del proyecto.
  2. Análisis: análisis de los requisitos del proyecto y recopilación de recursos.
  3. Diseño: Diseño de modelo de software con arquitectura y diseño de interfaz. 
  4. Implementación: desarrollo de un producto real considerando el diseño y los requisitos.
  5. Pruebas: probar la compilación, corregir errores y fallas, y refactorizar el código.
  6. Implementación y mantenimiento: el software se implementa y supervisa para obtener mejoras adicionales.

Proceso tradicional de desarrollo de software

Características –

Una descripción general de un SDLC tradicional que se muestra en la imagen de arriba funciona de la siguiente manera.

  • Diferentes equipos de desarrollo mantienen diferentes repositorios de código.
  • El equipo de compilación e integración integra el código.
  • El código integrado se compila como un paquete.
  • Se envía un paquete con instrucciones al equipo de Operaciones.
  • El equipo de operaciones empuja el paquete a un entorno de prueba, el equipo de pruebas prueba el paquete.
  • El equipo de prueba informa al equipo de desarrollo sobre cualquier posible problema; de lo contrario, da una señal verde para el lanzamiento de producción.

Sin embargo, no es valioso en este mundo que se adapta rápidamente practicar el proceso anterior y modelos como el modelo de cascada en el que tenemos que esperar hasta el final para recibir un producto funcional, generalmente entregado al final de un ciclo. 

Definición de CI/CD:

Ahí es donde CI/CD viene al rescate. Es más una cultura y práctica que herramientas, pero ¿qué es CI/CD? 

“CI/CD son las siglas de Continuous Integration and Continuous Delivery (o Continuous Deployment), se trata de cómo se usa un código integrado en un repositorio compartido para lanzar software a producción varias veces al día con la ayuda de la automatización”.

Integración continua : 

La integración continua se trata de cómo los desarrolladores integran el código utilizando un repositorio compartido varias veces al día con la ayuda de la automatización.

Entrega continua: 

La entrega continua se trata de lanzar software automáticamente al entorno de prueba o producción.

Proceso de Integración Continua y Entrega Continua

Características –

La imagen de arriba muestra el proceso de integración continua y entrega continua que difiere del SDLC tradicional debido a las siguientes razones:

  • Los desarrolladores administran el código en un repositorio compartido.
  • Después de la compilación, se realizan pruebas de IU y unidades automatizadas.
  • El equipo de operaciones debe encargarse de los scripts automatizados que van más allá al entorno de prueba.
  • Se realizan pruebas y después de la aprobación, el software se envía a producción.

Aquí, la integración continua se puede denominar canal de construcción y la entrega continua se puede denominar canal de lanzamiento.

Implementación continua:  

La implementación continua se trata de lanzar software a producción automáticamente sin intervención humana.

Proceso de integración continua y despliegue continuo

La implementación continua es un avance y reduce el trabajo manual del equipo de operaciones y pruebas para implementar el software en producción, ya que se implementa automáticamente en producción después de las pruebas de aceptación automatizadas.

Características –

CI/CD ayuda al desarrollo de software rápido y confiable de la siguiente manera.

  • Integración de código rápida y automatizada.
  • La detección de errores y la respuesta son rápidas debido al ciclo corto y las iteraciones.
  • Menos propenso a errores humanos.
  • Más rápido que seguir las instrucciones manuales debido a las secuencias de comandos automatizadas.
  • La implementación se puede realizar varias veces al día.

Además, CI/CD en DevOps se trata de unificar el proceso y la automatización, ayuda a actuar como un puente entre el equipo de Desarrollo y Operaciones para hacer que el proceso sea más confiable y adaptable.

Publicación traducida automáticamente

Artículo escrito por harstack y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *