Поделиться через


Интеграция конвейеров DevTest Labs и DevOps CI/CD

DevOps — это методология разработки программного обеспечения, которая интегрирует разработку программного обеспечения (Dev) с системными операциями (Ops). Система помогает предоставлять новые функции программного обеспечения, обновления и исправления, которые соответствуют бизнес-целям.

Методология DevOps также охватывает следующее:

  • Проектирование новых функций на основе целей, шаблонов использования и отзывов клиентов.
  • Исправление, восстановление и усиление системы в случае возникновения проблем.

Одним из компонентов методологии DevOps является конвейер непрерывной интеграции (CI) и конвейер непрерывной доставки (CD). Конвейер CI/CD перемещает информацию, код и ресурсы от фиксации изменения в системе управления версиями через ряд этапов, чтобы создать систему. Ниже приведены действия по сборке, тестированию и выпуску.

Azure DevTest Labs можно использовать в конвейерах CI/CD. В этой статье рассматривается использование DevTest Labs в конвейерах сборки, тестирования и выпуска CI/CD в корпоративной среде.

Преимущества использования DevTest Labs в рабочих процессах DevOps

Лаборатория должна использоваться только командой, которая работает над областью функций. Этот фокус позволяет ускорить изменения, но ограничивает любые негативные последствия для меньшей группы. Изменения или проблемы происходят в лабораторной среде, не затрагивая ничего другого.

Этот фокус также позволяет совместно использовать ресурсы для конкретных областей, такие как инструменты, скрипты и шаблоны Azure Resource Manager (ARM). Разработчики могут использовать общие ресурсы для создания виртуальных машин со всеми нужными ими кодом, инструментами и конфигурацией. Шаблоны ARM создают виртуальные машины лаборатории и лабораторные среды с соответствующими ресурсами Azure. Шаблоны создают ресурсы динамически или создают базовые образы с помощью настроек.

Например, рассмотрим сценарий, в котором продукт является автономной системой, которая устанавливается на компьютере клиента. Чтобы обеспечить быстрое тестирование кода внутреннего цикла, DevTest Labs может создавать лабораторные виртуальные машины с установленным клиентским программным обеспечением, артефактами и конфигурациями.

Ниже приведены некоторые преимущества использования лабораторий в рабочих процессах DevOps:

  • Использование лаборатории в качестве компонента связывает определенную экосистему с ограниченными людьми. Как правило, команда или группа, работающая в общей области или определенной функции, назначает им лабораторию. Usually, a team or group working in a common area or a specific feature has a lab assigned to them.

  • Репликация инфраструктуры в облаке. Разработчик может быстро настроить экосистему разработки, которая включает виртуальную машину разработчика с исходным кодом и инструментами. Чтобы ускорить внутреннюю разработку, разработчик также может создать среду, которая почти идентична рабочей конфигурации.

  • Чтобы включить асинхронное тестирование, лаборатория в конвейере CI/CD может одновременно запускать несколько разных предварительных сред или компьютеров. Вы можете развертывать и управлять различными инфраструктурами поддержки и создавать агенты в лаборатории. You can deploy and manage different support infrastructures and build agents in a lab.

Использование лабораторий в конвейерах CI/CD

Конвейер CI/CD является критически важным компонентом DevOps. Конвейер интегрирует код из пулл-реквеста разработчика с существующим кодом и развертывает код в производственной среде. Для интеграции DevTest Labs не все ресурсы должны находиться в лаборатории. Например, можно настроить узел Jenkins за пределами лаборатории для более постоянного доступа к ресурсам. Ниже приведены некоторые примеры интеграции лабораторий в конвейер CI/CD.

Build

Конвейер сборки создает пакет компонентов для совместной проверки и передачи в выпуск. Динамическое построение инфраструктуры обеспечивает более широкий контроль. Лаборатории могут быть частью конвейера сборки в качестве расположений для агентов сборки и других ресурсов поддержки. DevTest Labs может ограничить доступ к лаборатории. Это улучшает безопасность агентов сборки и уменьшает вероятность случайного повреждения.

Так как в лаборатории может быть несколько сред, каждая сборка может выполняться асинхронно. Идентификатор сборки является частью информации о среде, которая однозначно идентифицирует ресурсы в определенной сборке.

Test

Конвейер CI/CD может автоматизировать создание ресурсов DevTest Labs, таких как виртуальные машины и среды для автоматического и ручного тестирования. В пайплайне используются информационные артефакты сборки или формулы для создания виртуальных машин с различными настраиваемыми тестовыми конфигурациями.

Release

Процесс выпуска может использовать DevTest Labs для проверки перед развертыванием кода. Процесс аналогичен тестированию. Рабочие ресурсы не следует развертывать в DevTest Labs.

Customization

Azure Pipelines, компонент Azure DevOps Services, предоставляет существующие задачи для управления виртуальными машинами и средами в определенных лабораториях. Azure Pipelines — это один из способов управления конвейером CI/CD. Вы можете интегрировать лабораторию в любую систему, которая поддерживает вызов REST API, выполнение сценариев PowerShell или использование Azure CLI.

Некоторые диспетчеры конвейеров CI/CD имеют существующие подключаемые модули с открытым исходным кодом, которые могут управлять ресурсами Azure и DevTest Labs. Возможно, вам потребуется использовать настраиваемые скрипты для соответствия потребностям конвейера. При выполнении задачи используйте учетную запись службы с соответствующей ролью, обычно Участник, чтобы получить доступ к лаборатории.

Next steps