CI/CD para Azure Virtual Machines

Application Insights
Azure DevOps
DevTest Labs
Azure Resource Manager
Virtual Machines

Idea de solución Solution Idea

Si desea que ampliemos este artículo con más información, detalles de la implementación, guía de precios o ejemplos de código, háganoslo saber en GitHub Feedback (Comentarios de GitHub).If you'd like to see us expand this article with more information, implementation details, pricing guidance, or code examples, let us know with GitHub Feedback!

Azure es una nube de primer nivel para hospedar máquinas virtuales que ejecutan Windows o Linux.Azure is a world-class cloud for hosting virtual machines running Windows or Linux. Independientemente de que use ASP.NET, Java, Node.js o PHP para desarrollar aplicaciones, necesitará una canalización de integración continua e implementación continua (CI/CD) para enviar automáticamente los cambios a estas máquinas virtuales.Whether you use ASP.NET, Java, Node.js, or PHP to develop applications, you'll need a continuous integration and continuous deployment (CI/CD) pipeline to push changes to these virtual machines automatically.

Azure DevOps proporciona la canalización de CI/CD, empezando por un repositorio de Git para administrar tanto el código fuente de su aplicación como el código de la infraestructura (plantillas de Resource Manager), un sistema de compilación para generar paquetes y otros artefactos de compilación, y un sistema de Release Management para configurar una canalización para implementar sus cambios en los entornos de desarrollo, producción y pruebas.Azure DevOps provides the CI/CD pipeline, starting with a Git repository for managing your application source code and infrastructure code (ARM templates), a Build system for producing packages and other build artifacts, and a Release Management system for setting up a pipeline to deploy your changes through dev, test, and production environments. La canalización utiliza plantillas de Resource Manager para aprovisionar o actualizar la infraestructura, lo que sea necesario en cada entorno y, después, implementa la compilación actualizada.The pipeline uses ARM templates to provision or update your infrastructure as necessary in each environment, and then deploys the updated build. También puede utilizar Azure DevTest Labs para anular automáticamente los recursos de prueba que no estén en uso.You can also use Azure DevTest Labs to automatically tear down test resources that are not in use.

ArchitectureArchitecture

Diagrama de la arquitectura Descargue un SVG de esta arquitectura.Architecture diagram Download an SVG of this architecture.

Data FlowData Flow

  1. Cambio del código fuente de la aplicación.Change application source code
  2. Confirmación del código de la aplicación y plantilla de Azure Resource Manager.Commit Application Code and Azure Resource Manager (ARM) Template
  3. La integración continua desencadena las pruebas unitarias y la compilación de la aplicación.Continuous integration triggers application build and unit tests
  4. El desencadenador de implementación continua organiza la implementación de los artefactos de la aplicación con parámetros específicos del entorno.Continuous deployment trigger orchestrates deployment of application artifacts with environment-specific parameters
  5. Implementación en un entorno de QA.Deployment to QA environment
  6. Implementación en un entorno de ensayo.Deployment to staging environment
  7. Implementación en un entorno de producción.Deployment to production environment
  8. Application Insights recopila y analiza datos de mantenimiento, rendimiento y uso.Application Insights collects and analyses health, performance, and usage data
  9. Revisión de la información de mantenimiento, rendimiento y uso.Review health, performance and usage information
  10. Actualización del elemento de trabajo pendiente.Update backlog item

ComponentesComponents

  • Máquinas virtuales: aprovisione máquinas virtuales Windows y Linux en cuestión de segundosVirtual Machines: Provision Windows and Linux virtual machines in seconds
  • Azure DevTest Labs: Cree rápidamente entornos con artefactos y plantillas reutilizablesAzure DevTest Labs: Quickly create environments using reusable templates and artifacts
  • Application Insights: detecte, evalúe y diagnostique problemas en los servicios y las aplicaciones web.Application Insights: Detect, triage, and diagnose issues in your web apps and services.
  • Azure DevOps: cree e implemente aplicaciones multiplataforma para sacar el máximo partido de los servicios de Azure.Azure DevOps: Build and deploy multi-platform apps to get the most from Azure services

Pasos siguientesNext steps