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

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

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

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

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

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

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

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

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

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

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

  • Целенаправленный доступ. Использование лаборатории в качестве компонента связывает определенную экосистему с ограниченным количеством людей. Обычно для команды или группы, работающей в общей области или над определенной функцией, будет назначена лаборатория.

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

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

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

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

Сборка

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

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

Тест

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

Выпуск

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

Настройка

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

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

Дальнейшие действия