CI/CD en AWS
CI/CD se puede representar como una canalización, donde el código nuevo se envía en un extremo, se prueba en una serie de etapas (origen, creación, prueba, ensayo y producción) y, a continuación, se publica como código listo para producción.
![Diagrama que muestra un ejemplo de la canalización de código de AWS](images/cicd_5g2.png)
Información general de la canalización de CI/CD
Cada etapa de la canalización de CI/CD se estructura como unidad lógica en el proceso de entrega. Cada etapa actúa como una puerta que examina un aspecto determinado del código. Se supone que, a medida que el código avanza a través de la canalización, su calidad va mejorando en las etapas posteriores, ya que se van verificando más aspectos de este. Los problemas que se descubren en una etapa temprana impiden que el código avance a través de la canalización. Los resultados de las pruebas se envían inmediatamente al equipo y todas las compilaciones y versiones posteriores se detienen si el software no supera la etapa.
AWS aporta un completo conjunto de herramientas para desarrolladores de CI/CD a fin de acelerar los ciclos de desarrollo y lanzamiento de software. AWS CodePipeline
Las canalizaciones de código pueden integrarse con otros servicios. Estos pueden ser servicios de AWS, como Amazon Simple Storage Service
-
Compilación, creación y prueba de código con AWS CodeBuild
-
Entrega continua de aplicaciones basadas en contenedores a la nube
-
Validación previa a la implementación de los artefactos (como descriptores e imágenes de contenedor) requerida para las funciones de servicio de red o funciones de red nativas en la nube concretas
-
Pruebas funcionales, de integración y de rendimiento para una función de red en contenedores o una función de red virtual (CNF/VNF), incluidas las pruebas de base de referencia y de regresión
-
Pruebas de fiabilidad y recuperación de desastres (DR).
![Diagrama que muestra los componentes de la canalización de CI/CD de AWS](images/cicd_5g3.png)
Componentes de la canalización de CI/CD de AWS
AWS puede configurar canalizaciones de CI/CD con las herramientas para desarrolladores de AWS siguientes:
La creación de canalizaciones de CI/CD puede automatizarse con AWS CDK
El proceso de CI/CD incluye los pasos siguientes:
-
Configuración de red: AWS CDK y AWS CloudFormation inician la creación de los requisitos previos de red:
-
Implementación de la infraestructura: AWS CDK y AWS CloudFormation inician la creación de las pilas de recursos siguientes:
-
Implementación de funciones de red en la nube (CNF): en esta etapa, se implementan funciones CNF en clústeres de EKS mediante Kubectl
y las herramientas de gráficos de Helm. En esta etapa también se implementa cualquier aplicación o herramienta específica que las CNF necesiten para funcionar de forma eficaz (como Prometheus o Fluentd ). Las CNF pueden implementarse mediante funciones Lambda o con AWS CodeBuild. -
Implementación y actualizaciones continuas: son una secuencia de pasos que se llevan a cabo de forma iterativa para implementar cambios que forman parte de los cambios de contenedor o de configuración que dan lugar a actualizaciones. Al igual que en el caso de la implementación de CNF, la implementación y las actualizaciones continuas pueden automatizarse mediante los servicios de AWS, con el desencadenador de AWS CodeCommit
, Amazon Elastic Container Registry (Amazon ECR) o un sistema de origen de terceros, como GitLab Webhooks .
![Diagrama que muestra el flujo de canalización de CI/CD de AWS.](images/cicd_5g4.png)
Diagrama del flujo de canalización de CI/CD de AWS
La canalización de CI/CD se crea con AWS CodePipeline