Microservicios con AKS y Azure DevOps

Container Registry
Azure DevOps
Kubernetes Service
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 la implementación.

Posibles casos de uso

Use AKS para simplificar la implementación y administración de una arquitectura basada en microservicios. AKS optimiza la escalabilidad horizontal, la recuperación automática, el equilibrio de carga y la administración de secretos.

Architecture

Diagrama de arquitectura de una canalización de CI/CD de AKS mediante 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 imagen 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 un repositorio de contenedores de Azure que no es 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 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 cada 3 minutos.
  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.

Pasos siguientes