Назад | Перейти на главную страницу

Разница между агентами сборки и выпуска - DevOps

Может ли кто-нибудь объяснить разница между агенты сборки и выпуска в простейшем виде? Это относится к Azure DevOps. Я нашел информацию об агентах сборки от Microsoft, но я не нашел ничего специально для агентов выпуска. Я не разработчик по профессии, поэтому, если бы кто-нибудь мог прояснить это, я был бы признателен за помощь.

Технически они такие же. Т.е. агент, который используется сборкой или выпуском, - это тот же код, который запущен на машине. Однако есть 3 режима использования.

Пулы агентов

Пулы агентов - это способ группировки агентов вместе. Например, вы можете сгруппировать агентов по

  • Операционная система (Linux против Windows против MacOS)
  • Возможности (агенты сборки .net против агентов сборки Java против агентов сборки IOS против агентов с установленными веб-браузерами для автоматического тестирования)
  • Функция (сборка vs тест vs развертывание)
  • Доступ к сети (некоторые агенты могут разговаривать с определенными ресурсами в сети)
  • Или смесь всего вышеперечисленного.

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

Если ваш процесс развертывания выполняется удаленно, то есть агент подключается к удаленному серверу с помощью такого инструмента, как ansible или ms deploy, вы можете использовать эти агенты для выпуска своего кода, однако есть несколько других способов использования агентов для выпуска программного обеспечения.

Группы развертывания

В классических конвейерах (процессы выпуска, созданные с помощью графического интерфейса пользователя) вы также можете создать группу развертывания. В этом режиме вы устанавливаете агент на машину, на которой хотите выполнить развертывание, а группа развертывания действует как способ группирования наборов серверов в среде, где каждый агент отвечает за развертывание кода на сервере, на котором он работает. Вы можете пометить агентов в группе развертывания, чтобы на этих агентах выполнялись только определенные задания. Например, у вас может быть 5 серверов в среде, 2 веб-сервера, 2 сервера приложений и сервер базы данных. Вы можете пометить агентов как "web" "app" "db", а затем в конвейере выпуска пометить ваши задания, таким образом, конвейер знает, где запускать каждое задание. он также может распараллеливать выполнение заданий, чтобы оба веб-сервера развертывались одновременно.

Среды

В многоступенчатых конвейерах (конвейер YAML как код) существует концепция среды. Это может быть группа ресурсов. На данный момент среды поддерживают 2 типа ресурсов.

  1. Пространства имен Kubernetes
  2. Виртуальные машины.

Как и в случае с группами развертывания, среды позволяют вам специально развернуть агент на виртуальной машине, а затем использовать его для выполнения определенного задания с помощью тегов.

Использование агентов в «группах развертывания» или «средах» дает 3 основных преимущества.

  1. Агент является локальным по отношению к машине, на которой он развертывается, что означает, что ваш процесс выпуска не должен обслуживать работу по сети.
  2. Безопасность, агент разговаривает с azure DevOps через порт 443, что означает, что у вас могут быть довольно строгие правила для входящего трафика на сервер, поскольку для работы агента требуется только исходящий трафик через 443
  3. Стоимость, агенты в пулах подчиняются правилам вокруг параллельные работы. Группы развертывания и среды * не входят в это ограничение

* Среды и конвейеры YAML в настоящее время находятся в предварительной версии, и модель ценообразования может измениться, когда они станут общедоступными.