View a markdown version of this page

Descripción de 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.

Descripción de CI/CD

La integración y entrega continuas (CI/CD) es el proceso de automatización del ciclo de vida de los lanzamientos de software. En algunos casos, la entrada D también CI/CD puede significar despliegue. 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 aprobación manual antes de pasar cambios a producción. La implementación continua ofrece un flujo ininterrumpido en toda la canalización y no se requieren aprobaciones explícitas. Como en esta estrategia se analizan CI/CD conceptos generales, 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 proceso, los equipos de desarrollo pueden realizar cambios en el código que, posteriormente, se prueban automáticamente y luego se implementan.

Repasemos el CI/CD proceso básico antes de analizar algunas de las formas en que puedes, consciente o inconscientemente, dejar de ser CI/CD. The following diagram shows the CI/CD etapas completas y actividades en cada etapa.

Las cinco etapas de un CI/CD proceso 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 origen de información para el código base y se crean ramas de corta duración para el desarrollo de características. Una rama de características se integra en la rama principal cuando lo tiene todo listo para implementar la característica en los entornos superiores. Las ramas de características nunca se implementan directamente en los entornos superiores. Para obtener más información, consulte la sección Enfoque basado en enlaces troncales de esta guía.

Proceso de integración continua

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

  2. El desarrollador hace cambios, compila y prueba de forma local.

  3. Cuando los cambios están listos, el desarrollador crea una solicitud de cambios (GitHub documentación) con la sucursal 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 de producción. Las acciones que se producen en cada entorno pueden variar. Una de las primeras etapas se suele utilizar para llevar a cabo 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 por orden según su importancia y termina con el entorno más importante, el entorno de producción.

Proceso de entrega continua

La parte del proceso de entrega continua se inicia con la extracción del código de la rama principal del repositorio de origen y su traslado a la etapa de compilación. El documento de infraestructura como código (IaC) del repositorio describe las tareas que se llevan a cabo en cada etapa. Si bien el uso de un documento de IaC no es obligatorio, se recomienda encarecidamente utilizar un servicio o una herramienta de IaC, como AWS CloudFormation o AWS Cloud Development Kit (AWS CDK). Los pasos más comunes son:

  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 alguna etapa de la canalización, la etapa actual vuelve a su estado anterior y la canalización termina. Los cambios posteriores deben comenzar en el repositorio de código y continuar con el CI/CD proceso completo.