CI/CD para aplicaciones IaaS

Pipelines
DevTest Labs
Virtual Machines

Importante

CI/CD para aplicaciones IaaS es una variante de Diseño de una canalización de CI/CD mediante Azure DevOps. Este artículo se centra en los detalles de la implementación de aplicaciones web en Azure Virtual Machines.

Azure Virtual Machines es una opción para hospedar aplicaciones personalizadas cuando se desea una administración flexible y granular del proceso. Las máquinas virtuales (VM) deben estar sujetas al mismo nivel de rigor de ingeniería que las ofertas de plataforma como servicio (PaaS) a lo largo del ciclo de vida de desarrollo. Por ejemplo, la implementación de canalizaciones automatizadas de compilación y versión para insertar cambios en las máquinas virtuales.

Este artículo describe un flujo de trabajo de DevOps de alto nivel para implementar cambios de aplicación en máquinas virtuales mediante prácticas de integración continua (CI) e implementación continua (CD) mediante Azure Pipelines.

Architecture

Diagrama de la arquitectura de una canalización CI/CD mediante Azure Pipelines.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

En esta sección se supone que ha leído la arquitectura de línea de base de Azure Pipelines y su contenido solo se centra en los detalles de la implementación de una carga de trabajo en Azure Virtual Machines.

  1. Canalización de solicitud de incorporación de cambios: igual que la línea de base.

  2. Canalización de CI: igual que la línea de base, excepto que los artefactos de compilación creados para implementar una aplicación web en IaaS son un paquete Web Deploy.

  3. Desencadenador de canalización de CD: igual que la línea de base.

  4. Liberación de CD en ensayo: igual que la línea de base, pero con dos excepciones: 1) el artefacto de compilación que se descarga es el paquete Web Deploy y 2) el paquete se implementa en una máquina virtual de Azure de ensayo.

  5. Liberación de CD a producción: igual que la línea de base, pero con dos excepciones:

    a. La liberación a producción se realiza mediante la actualización de Azure Traffic Manager para intercambiar ensayo y producción. Esta estrategia se puede realizar si tiene un perfil de Traffic Manager con dos puntos de conexión, donde la producción está habilitada y el ensayo está deshabilitado. Para intercambiar ensayo y producción, deshabilite producción y habilite ensayo.
    b. Se puede realizar una reversión mediante la actualización de Azure Traffic Manager para volver a intercambiar producción y ensayo.

  6. Supervisión: igual que la línea de base.

Componentes

En esta sección se supone que ha leído la sección de los componentes de la arquitectura de línea de base de Azure Pipelines y su contenido solo se centra en los detalles de la implementación de una carga de trabajo en Azure Virtual Machines.

  • Azure Virtual Machines proporciona una infraestructura bajo demanda, a gran escala, segura y virtualizada con servidores Windows o Linux. En esta arquitectura se usan máquinas virtuales para hospedar las cargas de trabajo.

  • Los conjuntos de escalado de máquinas virtuales permiten crear y administrar un grupo de máquinas virtuales idénticas con equilibrio de carga. El número de instancias de máquina virtual puede aumentar o disminuir automáticamente según la demanda, o de acuerdo a una programación definida. Para esto mismo también se pueden usar conjuntos de escalado.

  • Azure Traffic Manager es un equilibrador de carga de tráfico basado en DNS que se puede usar para distribuir el tráfico a los puntos de conexión configurados. En esta arquitectura, Traffic Manager es el punto de entrada único para los clientes y se configura con varios puntos de conexión, que representan la máquina virtual de producción y la máquina virtual de ensayo. El punto de conexión de máquina virtual de producción está habilitado y el de ensayo está deshabilitado.

Alternativas

Este artículo se centra en el uso de Azure Traffic Manager como equilibrador de carga. Azure ofrece varias opciones de equilibrio de carga que puede considerar.

Consideraciones

En esta sección se supone que ha leído la sección de consideraciones de la arquitectura de línea de base de Azure Pipelines y su contenido solo se centra en los aspectos concretos para implementar una carga de trabajo en Azure Virtual Machines.

Excelencia operativa

  • Dado que Traffic Manager está basado en DNS, el almacenamiento en caché de cliente de direcciones IP introduce latencia. Aunque puede habilitar un punto de conexión y deshabilitar otro en Traffic Manager, los clientes seguirán usando su dirección IP almacenada en caché hasta que expire el período de vida (TTL) de DNS. Considere las opciones de equilibrio de carga que actúan en la capa 4 o 7.

  • Considere la posibilidad de implementar otros entornos, aparte de ensayo y producción, para permitir cosas como reversiones, pruebas de aceptación manuales y pruebas de rendimiento. El acto de usar el entorno de ensayo como entorno de reversión le impide usar ese entorno para otros fines.

Pasos siguientes