Выберите управляемого агента сборки Майкрософт или собственного агента.
- 6 мин
В этом уроке вы узнаете о некоторых факторах, которые следует учитывать при выборе агента сборки. Вы узнаете о некоторых преимуществах и ограничениях использования агента на платформе Microsoft, а также о процессе настройки собственного частного агента сборки.
Что такое агенты сборки и пулы агентов
Агент сборки — это система, выполняющая задачи сборки. Его можно рассматривать как выделенный сервер, выполняющий процесс сборки.
Представьте, что у вас есть проект Azure Pipelines, который получает запросы на сборку много раз в день или, возможно, у вас есть несколько проектов, которые могут использовать один и тот же тип агента сборки. Агенты сборки можно объединить в пулы агентов, чтобы для обработки каждого запроса на сборку всегда имелся сервер наготове.
При активации сборки Azure Pipelines выбирает доступный агент сборки из пула. Если все агенты заняты, процесс ожидает, пока один из них освободится.
При использовании агента на платформе Майкрософт вы выбираете, какой образ виртуальной машины использовать из пула. Вот пример из существующей конфигурации сборки, в котором используется агент сборки Ubuntu 20.04:
pool:
vmImage: 'ubuntu-20.04'
demands:
- npm
При использовании размещенного агента Майкрософт вы указываете необходимый тип системы в vmImage
. Корпорация Майкрософт предоставляет образы виртуальных машин различных типов, в том числе с Windows, macOS и различными разновидностями Linux.
В разделе demands
указывается, какое программное обеспечение или возможности должны иметься на компьютере сборки.
При использовании агента сборки из собственного пула, также называемого частным пулом, вы указываете имя пула. Приведем пример:
pool:
name: 'MyAgentPool'
demands:
- npm
Если раздел demands
не нужен, синтаксис можно сократить следующим образом:
pool: 'MyAgentPool'
Вы создадите агент сборки и добавите его в пул далее в этом модуле.
Какие виды агентов я могу использовать?
При выборе агента сборки следует учитывать два фактора:
- Операционная система, на которой вы хотите строить
- Можно использовать агента, предоставленного корпорацией Майкрософт, или предоставить собственного агента.
Azure Pipelines поддерживает следующие операционные системы:
Выбранный агент сборки зависит главным образом от того, какие средства вы используете для сборки кода. Например, если для создания приложений вы используете Xcode, можно выбрать агент macOS. Если вам требуется Visual Studio, скорее всего, следует выбрать агент Windows.
Ваша существующая конфигурация сборки использует размещенный агент Майкрософт. Агенты, предоставляемые Майкрософт, работают на инфраструктуре, которую компания предоставляет для вас.
Частный агент использует инфраструктуру, которую вы предоставляете. Агент может быть системой, работающей в облаке или в центре обработки данных. Любая система работает, если агент соответствует вашим требованиям и может подключаться к Azure Pipelines. В этом модуле вы будете использовать виртуальную машину, которая работает в Azure, которую мы предоставляем.
Когда следует использовать собственный агент сборки?
Для многих задач сборки агент, размещенный корпорацией Майкрософт, выполняет все необходимые действия. Начать с него проще всего.
Корпорация Майкрософт берет на себя ответственность за все обновления безопасности и другие обновления операционной системы. Все, что необходимо сделать, — определить конфигурацию сборки, которую вы хотите запустить.
Кроме того, размещенные агенты имеют программное обеспечение для разработки приложений различных распространенных типов. Другое требуемое программное обеспечение можно добавлять в процессе сборки.
У размещенных корпорацией Майкрософт агентов есть несколько ограничений, в том числе:
- Длительность сборки: задание сборки может выполняться до шести часов.
- Дисковое пространство: размещенные агенты предоставляют ограниченное количество дискового пространства для ваших источников и ваших выходных данных сборки. Может быть недостаточно места в хранилище.
- ЦПУ, память и сеть: хостинг агенты работают на виртуальных машинах общего назначения Microsoft Azure. Standard_DS2_v2 описывает ожидаемые характеристики ЦП, памяти и сети.
- Интерактивность: Вы не можете войти в хост-агент.
- Общие папки: вы не можете размещать артефакты сборки в общих папках универсальных наименований (UNC).
Несмотря на то что используемые агенты сравнительно просты в настройке, если оставить в стороне упомянутые ранее ограничения, использование собственных агентов сборки имеет ряд преимуществ.
Например, при использовании размещенных агентов вы предоставляете общий доступ к инфраструктуре другим пользователям Azure DevOps. Хотя для запуска сборки обычно требуется всего несколько секунд, в зависимости от нагрузки в системе Майкрософт может потребоваться больше времени.
Кроме того, при использовании облачных агентов вы получаете чистую систему с каждой сборкой. При вводе собственного агента сборки можно решить, следует ли выполнять чистую сборку каждый раз или выполнять добавочную сборку. При добавочной сборке вы основываетесь на существующих средствах сборки и скомпилированном коде. Добавочная сборка может занять меньше времени, так как система уже имеет множество средств сборки и зависимых компонентов.
Однако есть и недостаток: так как инфраструктура сборки ваша собственная, вы отвечаете за наличие последних версий программного обеспечения и исправлений для системы безопасности в агентах сборки.
Как настроить персональный агент сборки?
Агент частной сборки содержит программное обеспечение, необходимое для сборки приложений. Он также содержит программное обеспечение агента, которое позволяет системе подключаться к Azure Pipelines и получать задания сборки.
При настройке частного агента вы обеспечиваете инфраструктуру, на которой выполняются сборки. Это обеспечивает гибкость в вопросах управления и обслуживания агентов.
Например, доступны следующие возможности:
Настройте агент сборки вручную: вы открываете систему, войдите и интерактивно установите средства сборки и программное обеспечение агента.
Автоматизация процесса: вы запускаете систему и запускаете скрипт или средство для установки средств сборки и программного обеспечения агента. Настроить агент можно после того, как система заработает, или во время процесса настройки.
Например, в случае с агентами сборки, работающими в Azure, можно использовать шаблон Azure Resource Manager (ARM) или Bicep, чтобы настроить систему на выполнение роли агента сборки за один шаг. Terraform от компании HashiCorp — еще один способ автоматизации процесса. Terraform работает с различными инфраструктурами, включая Azure.
Создайте изображение: вы создаете изображение (или моментальный снимок) настроенной среды. Затем с помощью этого образа вы можете создавать столько идентичных систем в пуле, сколько вам нужно.
Настройка вручную — это хороший способ приступить к работе, так как он позволяет понять процесс. Кроме того, это самый быстрый способ настройки, когда вам нужен только один агент сборки.
Автоматизация полезна, если требуется много агентов сборки или регулярно необходимо развертывать и сворачивать инфраструктуру сборки. Вы можете перейти от ручного процесса к автоматизированным процессам, если требуется несколько агентов.
Изображения — это форма автоматизации. Они могут сэкономить время, так как все программное обеспечение предварительно настроено. В качестве компромисса может потребоваться периодически перестраивать образы, чтобы включить последние исправления ОС и инструменты сборки. Packer от компании HashiCorp — это популярное средство для создания образов.
Для сценария Space Game вы решите использовать частный агент сборки.