CI/CD для виртуальных машин AzureCI/CD for Azure VMs

Концепция решения Solution Idea

Если вы хотите ознакомиться с этой статьей, дополнительные сведения (сведения о реализации, рекомендации по ценам, примеры кода и т. д.), сообщите нам о отзывах в GitHub!If you'd like to see us expand this article with more information (implementation details, pricing guidance, code examples, etc), let us know with GitHub Feedback!

Azure — это облако мирового класса для размещения виртуальных машин под управлением Windows или Linux.Azure is a world-class cloud for hosting virtual machines running Windows or Linux. Независимо от того, используете ли вы ASP.NET, Java, Node. js или PHP для разработки приложений, вам потребуется конвейер непрерывной интеграции и непрерывного развертывания (CI/CD) для автоматической отправки изменений на эти виртуальные машины.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 предоставляет конвейер CI/CD, начиная с репозитория Git для управления исходным кодом приложения и кодом инфраструктуры (шаблоны ARM), систему сборки для создания пакетов и других артефактов сборки, а также систему Release Management для настройки конвейера для развертывания изменений с помощью сред разработки, тестирования и рабочей среды.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. Конвейер использует шаблоны ARM для подготовки или обновления инфраструктуры по мере необходимости в каждой среде, а затем развертывает обновленную сборку.The pipeline uses ARM templates to provision or update your infrastructure as necessary in each environment, and then deploys the updated build. Можно также использовать Azure DevTest Labs для автоматического удаления неиспользуемых тестовых ресурсов.You can also use Azure DevTest Labs to automatically tear down test resources that are not in use.

АрхитектураArchitecture

Схема архитектуры . Скачайте SVG этой архитектуры.Architecture diagram Download an SVG of this architecture.

Поток данныхData Flow

  1. Изменение исходного кода приложенияChange application source code
  2. Фиксация кода приложения и Azure Resource Manager шаблона (ARM)Commit Application Code and Azure Resource Manager (ARM) Template
  3. Непрерывная интеграция запускает сборку приложений и модульные тестыContinuous integration triggers application build and unit tests
  4. Триггер непрерывного развертывания управляет развертыванием артефактов приложения с параметрами среды.Continuous deployment trigger orchestrates deployment of application artifacts with environment-specific parameters
  5. Развертывание в среде контроля качестваDeployment to QA environment
  6. Развертывание в промежуточной средеDeployment to staging environment
  7. Развертывание в рабочей средеDeployment to production environment
  8. Application Insights сбор и анализ данных о работоспособности, производительности и использованииApplication Insights collects and analyses health, performance, and usage data
  9. Проверка работоспособности, производительности и сведений об использованииReview health, performance and usage information
  10. Обновить элемент невыполненной работыUpdate backlog item

ComponentsComponents

  • Виртуальные машины: подготавливает виртуальные машины Windows и Linux за считаные секундыVirtual Machines: Provision Windows and Linux virtual machines in seconds
  • Azure DevTest Labs: быстрое создание сред с помощью многократно используемых шаблонов и артефактовAzure DevTest Labs: Quickly create environments using reusable templates and artifacts
  • Application Insights: обнаружение, рассмотрение и диагностика проблем в веб-приложениях и службах.Application Insights: Detect, triage, and diagnose issues in your web apps and services.
  • Azure DevOps: создание и развертывание многоплатформенных приложений для получения максимальной из служб AzureAzure DevOps: Build and deploy multi-platform apps to get the most from Azure services

Следующие шагиNext steps