Что такое Azure Pipelines?

Завершено

Microsoft Azure Pipelines — это облачная служба, которую можно использовать для автоматизации процессов сборки, тестирования и развертывания проекта кода. Вы можете также предоставить его другим пользователям, и он подходит практически для любого языка или типа проекта.

Маре не терпится реплицировать процесс сборки команды в Azure Pipelines. Амита, тестировщик, наконец, имеет некоторое свободное время и хочет догнать. Мара решает, что сейчас это отличное время, чтобы рассказать ей о своем плане: настройка автоматизированного конвейера сборки для веб-сайта Space Game с помощью Azure Pipelines.

Амита сомневается, выслушав план Мары. Но потому что план Мары заключается в том, чтобы реплика te процесс сборки, но не заменить его, она также любопытна. Она понимает, что процесс сборки можно улучшить.

Амита: Это звучит как интересное упражнение, но вы должны подтвердить точку DevOps!

Мара: Вы уже знаете меня так хорошо!

Амита: Какие улучшения вы ожидаете видеть, особенно потому что вы собираетесь делать то, что мы уже делаем?

Мара: Я думаю, что просто переход в Azure Pipelines принесет много преимуществ. Azure Pipelines — это облачная служба. Мы можем использовать ее для автоматической сборки и тестирования кода. И он будет доступен другим пользователям. Он подходит практически для любого языка или типа проекта.

У нашего сервера сборки есть проблемы, трудно даже поддерживать его актуальность. Так как Azure Pipelines предоставляет серверы сборки, которые майкрософт размещает и поддерживает, он всегда содержит последние исправления и обновления системы безопасности. Нам не нужно беспокоиться об обслуживании серверов сборки.

И у нас много скриптов, написанных разными людьми. Мы даже не понимаем, как некоторые из них работают. Azure Pipelines поставляется с каталогом задач. Задача — это упакованный скрипт или процедура, абстрактная с набором входных данных. Я постараюсь сопоставить сценарии сборки с этими задачами. По крайней мере, мы стандартизируем выполнение операций и повысим уровень автоматизации.

И Azure Pipelines работает с различными языками и типами приложений. Если мы захотим развиваться в этих направлениях, нам не придется менять инструменты.

Амита: Я знаю, что это эгоистичным, но почему я заботюсь? Меня больше волнует, что я никогда не знаю, когда сборка готова для тестирования. Иногда кто-то запоминает обновлять электронную таблицу, но много раз они забывают. Кажется, я всегда узнаю об этом последней.

Мара: Правильно, это то, что мы можем легко исправить. Мы можем настроить конвейер для автоматического уведомления либо по электронной почте, либо через другое уведомление, когда сборка будет готова. Вам никогда не придется ждать кого-то, чтобы напомнить вам снова.

Амита: Хорошо, так что ваша цель прямо сейчас заключается в создании приложения и сообщите мне, когда это готово?

Мара: Да! Конечно, у меня есть более масштабные планы. Я знаю, что вы все собираетесь любить этот первый шаг, так что я хочу построить на нем, чтобы дать нам истинную непрерывную интеграцию.

Амита: Дайте мне 5-минутное выполнение непрерывной интеграции.

Мара: Позвольте мне нарисовать рисунок.

Мара перемещается на доску и рисует конвейер.

Screenshot of a hand-drawn illustration of a CI pipeline. The Build, Test, and Verify stages act on code. The build artifact is the output.

Мара: "Это мой конвейер непрерывной интеграции или CI". CI — это процесс автоматизации сборки и тестирования кода каждый раз, когда член команды фиксирует изменения в системе управления версиями. Я знаю, что мы еще не делаем автоматическое тестирование, но дадим время.

Конвейер определяет процесс непрерывной интеграции для приложения. Он состоит из этапов, называемых задачами . Его можно считать сценарием, который определяет, как выполняются этапы сборки, тестирования и развертывания. Я постараюсь сопоставить наши сценарии с задачами.

Конвейер запускается при отправке изменений кода . Конвейер можно настроить для автоматического запуска или запустить его вручную. Конвейер подключается к исходному репозиторию, например GitHub, Bitbucket или Subversion. Один из наших задач для этого спринта — начать работу с GitHub. Поэтому мы будем использовать GitHub для этого проекта.

Агент сборки выполняет сборку и развертывание кода. При выполнении сборки или развертывания система начинает одно или несколько заданий. Агент — это устанавливаемое программное обеспечение, которое одновременно выполняет одно задание сборки или развертывания. Поскольку мы используем Azure Pipelines, мы можем использовать агент, размещенный в Майкрософт. С размещенными корпорацией Майкрософт агентами, обслуживанием и обновлениями заботятся о нас. Каждый раз, когда мы запускаем конвейер, мы получим новую виртуальную машину. Можно выбрать из нескольких образов виртуальных машин, включая Ubuntu 22.04, который мы используем.

Конечный продукт конвейера — артефакт сборки . Рассмотрим артефакт как наименьший скомпилированный модуль, который необходимо протестировать или развернуть приложение. Например, артефактом может быть:

  • Приложение Java или .NET, упакованное в файл JAR или ZIP.
  • Библиотека C++ или JavaScript.
  • Образ виртуальной машины, облака или Docker.

И это все. Я знаю, что у нас все получится.

Амита: Это звучит здорово. Давай посмотрим, что нужно сделать, чтобы все работало, и сколько времени понадобится. Ты покажешь нам демоверсию.

Мара: Будет делать!

Управление агентами сборки

Теперь, когда вы и команда знакомы с Azure Pipelines, давайте поговорим немного больше о агентах сборки. Агент сборки — это часть устанавливаемого программного обеспечения, которое выполняет одно задание сборки или развертывания одновременно. Для сборки кода или развертывания программного обеспечения требуется по крайней мере один агент. По мере добавления кода и пользователей со временем вам потребуется больше агентов. Существует две основные категории агентов.

  • Агенты, размещенные корпорацией Майкрософт, — это агенты , управляемые корпорацией Майкрософт, а также обслуживание и обновления. При каждом запуске конвейера вы получаете новый агент для каждого задания в конвейере. В этом модуле при выборе локальной среды разработки с помощью размещенного корпорацией Майкрософт агента выполняется конвейер в размещенном майкрософт агенте. Чтобы запустить конвейеры в агенте, размещенном корпорацией Майкрософт, ваша организация должна иметь по крайней мере одно параллельное задание, размещенное корпорацией Майкрософт. Проверьте количество параллельных заданий, размещенных корпорацией Майкрософт, чтобы убедиться, что у вас есть по крайней мере одно параллельное задание, размещенное корпорацией Майкрософт. Если число параллельных заданий, размещенных в Майкрософт, равно нулю (новые организации Azure DevOps обычно имеют нулевые параллельные задания), вы можете запросить бесплатное предоставление. Процесс утверждения бесплатного гранта обычно занимает 2–3 рабочих дня.

  • Локальные агенты — это агенты , управляемые вами. Вы настраиваете виртуальные машины или контейнеры, устанавливая программное обеспечение агента и необходимые средства, а также регистрируйте агенты в Azure DevOps. В этом модуле при выборе среды разработки GitHub Codespaces с помощью локального агента вы используете автономный агент, работающий в контейнере GitHub Codespaces. Самостоятельное размещение агента в контейнере GitHub Codespaces не является типичным рабочим сценарием, но предоставляет среду для выполнения этого модуля обучения.

Проверьте свои знания

1.

Какой из следующих вариантов является примером артефакта сборки?