Comprensión de la CI/CD - AWS Guía prescriptiva

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Comprensión de la CI/CD

La integración y la entrega continuas (CI/CD) son el proceso de automatización del ciclo de vida de las versiones de software. En algunos casos, la D de CI/CD también puede significar implementación. La diferencia entre la entrega continua y la implementación continua se produce cuando se publica un cambio en el entorno de producción. Con la entrega continua, se requiere una aprobación manual antes de promover cambios en la producción. El despliegue continuo ofrece un flujo ininterrumpido a lo largo de todo el proceso y no se requieren aprobaciones explícitas. Como esta estrategia analiza los conceptos generales de CI/CD, las recomendaciones y la información proporcionadas son aplicables tanto a los enfoques de entrega continua como de despliegue continuo.

CI/CD automates much or all of the manual processes traditionally required to get new code from a commit into production. A CI/CD pipeline encompasses the source, build, test, staging, and production stages. In each stage, the CI/CD pipelines provisions any infrastructure that is needed to deploy or test the code. By using a CI/CDEn fase inicial, los equipos de desarrollo pueden realizar cambios en el código, que luego se prueban automáticamente y luego se implementan.

Repasemos CI/CD process before discussing some of the ways that you can, knowingly or unknowingly, deviate from being fully CI/CD. The following diagram shows the CI/CD las etapas y actividades básicas de cada etapa.

Las cinco etapas de un proceso de CI/CD y las actividades y entornos de cada una de ellas.

Acerca de la integración continua

La integración continua se produce en un repositorio de código, como un repositorio de Git en GitHub. Se trata una sola rama principal como fuente de información para el código base y se crean ramas de corta duración para el desarrollo de funciones. Una rama de funciones se integra en la rama principal cuando está listo para implementar la función en los entornos superiores. Las ramas de funciones nunca se implementan directamente en los entornos superiores. Para obtener más información, consulte la sección Enfoque basado en troncos de esta guía.

Proceso de integración continuo

  1. El desarrollador crea una nueva sucursal a partir de la rama principal.

  2. El desarrollador realiza cambios, compila y prueba localmente.

  3. Cuando los cambios están listos, el desarrollador crea una solicitud de cambios (GitHub documentación) con la rama principal como destino.

  4. Se revisa el código.

  5. Cuando se aprueba el código, se fusiona con la rama principal.

Acerca de la entrega continua

La entrega continua se produce en entornos aislados, como entornos de desarrollo y entornos de producción. Las acciones que se producen en cada entorno pueden variar. A menudo, una de las primeras etapas se utiliza para realizar actualizaciones en la propia canalización antes de continuar. El resultado final de la implementación es que cada entorno se actualiza con los cambios más recientes. La cantidad de entornos de desarrollo para la creación y las pruebas también varía, pero le recomendamos que utilice al menos dos. En el proceso, cada entorno se actualiza en orden según su importancia y termina con el entorno más importante, el entorno de producción.

Proceso de entrega continuo

La parte del proceso de entrega continua se inicia extrayendo el código de la rama principal del repositorio fuente y pasándolo a la fase de compilación. El documento de infraestructura como código (IaC) del repositorio describe las tareas que se realizan en cada etapa. Si bien el uso de un documento IaC no es obligatorio, se recomienda encarecidamente utilizar un servicio o una herramienta del IaC AWS Cloud Development Kit (AWS CDK), como AWS CloudFormationo. Los pasos más comunes incluyen:

  1. Pruebas unitarias

  2. Compilación de código

  3. Aprovisionamiento de recursos

  4. Pruebas de integración

Si se produce algún error o alguna prueba falla en cualquier etapa de la canalización, la etapa actual vuelve a su estado anterior y la canalización finaliza. Los cambios posteriores deben comenzar en el repositorio de código y pasar por todo el proceso de CI/CD.