Архитектура Azure Pipelines для IaaS

Важно!

CI/CD для приложений IaaS — это вариант проектирования конвейера CI/CD с помощью Azure DevOps. В этой статье рассматриваются особенности развертывания веб-приложений в Azure Виртуальные машины.

Azure Виртуальные машины — это вариант размещения пользовательских приложений, если требуется гибкое и детальное управление вычислительными ресурсами. На виртуальных машинах должен применяться тот же уровень технической строгости, что и для предложений "платформа как услуга" (PaaS) на протяжении всего жизненного цикла разработки. Например, реализация автоматизированных конвейеров сборки и выпуска для отправки изменений на виртуальные машины.

В этой статье описывается высокоуровневый рабочий процесс DevOps для развертывания изменений приложений на виртуальных машинах с помощью методов непрерывной интеграции (CI) и непрерывного развертывания (CD) с помощью Azure Pipelines.

Архитектура

Схема архитектуры конвейера CI/CD с помощью Azure Pipelines.

Схема архитектуры конвейера Azure, развертываемого в Azure Виртуальные машины. На схеме показаны следующие шаги: 1. Инженер отправляет изменения кода в репозиторий Git Azure DevOps. 2. Активируется конвейер Azure DevOps PR. В этом конвейере показаны следующие задачи: анализ, восстановление, сборка и модульные тесты. 3. Активируется конвейер CI Azure DevOps. В этом конвейере показаны следующие задачи: получение секретов, анализ, восстановление, сборка, модульные тесты, интеграционные тесты и публикация пакета веб-развертывания в качестве артефакта. 3. Активируется конвейер Azure DevOps CD. В этом конвейере показаны следующие задачи: скачивание артефактов, развертывание на промежуточное хранение, тестирование, ручное вмешательство и выпуск. 4. Показывает конвейер CD, развертывающийся на виртуальной машине масштабируемого набора виртуальных машин. 5. Показывает выпуск конвейера CD в рабочую среду путем развертывания в рабочей среде. 6. Показывает оператор, отслеживающий конвейер, используя преимущества Azure Monitor, приложение Azure Insights и рабочей области Azure Analytics.

Скачайте файл Visio этой архитектуры.

Поток данных

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

  1. Конвейер - запроса на вытягиваниеТо же, что и базовый план

  2. Конвейер CI — то же, что и базовый план, за исключением артефактов сборки, созданных для развертывания веб-приложения в IaaS, является пакетом веб-развертывания.

  3. Триггер - конвейера CDТо же, что и базовый план

  4. Выпуск компакт-диска для промежуточного хранения — то же, что и базовый план с 2 исключениями: 1) скачанный артефакт сборки является пакетом веб-развертывания и 2) пакет развертывается на промежуточной виртуальной машине Azure.

  5. Выпуск компакт-диска в рабочую среду — то же, что и базовый план с 2 исключениями:

    a. Выпуск в рабочую среду выполняется путем обновления диспетчера трафика Azure для замены промежуточной и рабочей среды. Эту стратегию можно реализовать, создав профиль диспетчера трафика с двумя конечными точками, где включена рабочая среда и отключено промежуточное хранение. Чтобы переключить промежуточную и рабочую среду, отключите рабочую среду и включите промежуточное хранение.
    b. Откат можно выполнить, обновив диспетчер трафика Azure для переключения рабочей и промежуточной среды.

  6. Мониторинга - то же, что и базовый план

Компоненты

В этом разделе предполагается, что вы ознакомились с разделом Компоненты базовой архитектуры Azure Pipelines и посвящены только особенностям развертывания рабочей нагрузки в Azure Виртуальные машины.

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

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

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

Альтернативные варианты

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

Рекомендации

В этом разделе предполагается, что вы ознакомились с разделом "Рекомендации" в статье Базовая архитектура Azure Pipelines и посвящены только вопросам развертывания рабочей нагрузки в Azure Виртуальные машины.

Эффективность операционных процессов

  • Так как диспетчер трафика основан на DNS, кэширование IP-адресов клиента вызывает задержку. Несмотря на то, что вы можете включить одну конечную точку и отключить другую в диспетчере трафика, клиенты будут продолжать использовать кэшированные IP-адреса до истечения срока жизни DNS. Рассмотрите варианты балансировки нагрузки , которые действуют на уровне 4 или 7.

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

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