CI/CD para aplicaciones de AKS con Azure Pipelines

Azure Container Registry
Azure DevOps
Azure Kubernetes Service (AKS)
GitHub

Importante

Los microservicios con AKS y Azure DevOps es una variante de Diseño de una canalización de CI/CD mediante Azure DevOps. Este artículo se centra en las facetas específicas de AKS de implementación de aplicaciones de AKS con Azure Pipelines.

Posibles casos de uso

Use Azure Pipelines para implementar aplicaciones de AKS.

Architecture

Architecture diagram of an AKS CI/CD pipeline using Azure Pipelines.

Diagrama de arquitectura de una canalización de Azure. En el diagrama se muestran los pasos siguientes: 1. Un ingeniero que inserta cambios de código en un repositorio de Git de Azure DevOps. 2. Se desencadena una canalización de solicitud de incorporación de cambios de Azure DevOps. Esta canalización muestra las siguientes tareas: linting, restauración, compilación y pruebas unitarias. 3. Se desencadena una canalización de CI de Azure DevOps. Esta canalización muestra las siguientes tareas: obtener secretos, linting, restauración, compilación, pruebas unitarias, pruebas de integración, publicación de artefactos de compilación y publicación de imágenes de contenedor. 3. Imagen de contenedor que se publica en Azure Container Registry que no es de producción. 4. Se desencadena una canalización de CD de Azure DevOps. Esta canalización muestra las siguientes tareas: implementar en almacenamiento provisional, pruebas de aceptación, promover imagen de contenedor, intervención manual y lanzamiento. 5. Muestra la canalización de CD que se implementa en un entorno de ensayo. 6. Muestra la imagen de contenedor que se promueve a Azure Container Registry de producción. 7. Muestra la canalización de CD que se lanza en un entorno de producción. 8. Muestra la telemetría de reenvío de Container Insights a Azure Monitor. 9. Muestra un operador que supervisa la canalización, aprovechando Azure Monitor, Azure Application Insights y el área de trabajo de Azure Analytics.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. Una solicitud de incorporación de cambios (PR) para Git de Azure Repos desencadena una canalización de PR. Esta canalización ejecuta comprobaciones rápidas de calidad, como linting, compilación y pruebas unitarias del código. Si se produce un error en alguna de las comprobaciones, la solicitud de incorporación de cambios no se combinará. El resultado de una ejecución correcta de esta canalización es una combinación correcta de la solicitud de incorporación de cambios.
  2. Una combinación en Git de Azure Repos desencadena una canalización de CI. Esta canalización ejecuta las mismas tareas que la canalización de PR con algunas adiciones importantes. La canalización de CI ejecuta pruebas de integración. Estas pruebas requieren secretos, por lo que esta canalización obtiene esos secretos de Azure Key Vault.
  3. El resultado de una ejecución correcta de esta canalización es la creación y publicación de una imagen de contenedor en una instancia de Azure Container Registry que no sea de producción.
  4. La finalización de la canalización de CI desencadena la canalización de CD.
  5. La canalización de CD implementa una plantilla YAML en el entorno de AKS de ensayo. La plantilla especifica la imagen de contenedor del entorno que no es de producción. A continuación, la canalización realiza pruebas de aceptación en el entorno de ensayo para validar la implementación. Si las pruebas se realizan correctamente, se ejecuta una tarea de validación manual, lo que requiere que una persona valide la implementación y reanude la canalización. El paso de validación manual es opcional. Algunas organizaciones se implementarán automáticamente.
  6. Si se reanuda la intervención manual, la canalización de CD promueve la imagen de Azure Container Registry que no es de producción al registro de producción.
  7. La canalización de CD implementa una plantilla YAML en el entorno de AKS de producción. La plantilla especifica la imagen de contenedor del entorno de producción.
  8. Container Insights reenvía periódicamente métricas de rendimiento, datos de inventario e información de estado de mantenimiento de los contenedores y los hosts de contenedor a Azure Monitor.
  9. Azure Monitor recopila datos de observabilidad, como registros y métricas, para que un operador pueda analizar los datos de mantenimiento, rendimiento y uso. Application Insights recopila todos los datos de supervisión específicos de la aplicación, como seguimientos. Azure Log Analytics se usa para almacenar todos estos datos.

Componentes

  • Container Insights recopila registros y métricas y los reenvía a Azure Monitor.
  • Azure Container Registry es un servicio de registro de contenedores privado y administrado en Azure. Use Container Registry para administrar imágenes de contenedor privadas.
  • Azure Kubernetes Service es un servicio de Kubernetes administrado en el que Azure administra tareas críticas, como el mantenimiento y el seguimiento de estado.
  • Defender para DevOps realiza análisis estáticos y le ayuda a obtener visibilidad de las posturas de seguridad en varias canalizaciones en el desarrollo e implementación de AKS.

Pasos siguientes