Azure Devops – Как Указать Зависимость При Развертывании?

  • Автор темы Aladinchik
  • Обновлено
  • 21, Oct 2024
  • #1

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

Я пытаюсь добиться того, чтобы развернуть службы (триггерный конвейер) на основе версии службы.

В качестве примера предположим, что у нас есть три сервиса. [email protected] , [email protected] и [email protected] which have an internal dependency graph, and different versions, то есть [email protected]

Если я хочу развернуть, скажем, сервис [email protected] and for that to work we want service [email protected] и сервис [email protected] .

Поэтому, когда я решу, что хочу развернуть сервис C automatically I want to trigger the pipeline for service B и сервис A .

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

Я пытался запустить конвейер из одного конвейера в другой (триггер конвейера), но я не могу передать ту же самую версию, которую необходимо развернуть службе зависимостей.

#azure-devops #deployment #azure-kubernetes-service #bluegreen

Aladinchik


Рег
19 May, 2016

Тем
78

Постов
195

Баллов
645
  • 25, Oct 2024
  • #2

Если я правильно понимаю, этот вопрос основан на проблеме, которую я изначально изложил здесь - https://worklifenotes.com/2020/03/04/microservices-combinatorial-explosion-of-versions/

Итак, мы работали над этим последние 2 года. Ключевыми моментами в подходе, который, по нашему мнению, пока работает хорошо, являются следующие:

  1. Все компоненты должны создаваться независимо. Запуск одного конвейера из другого конвейера является антишаблоном, что обычно приводит к запутанному процессу.
  2. Вам нужен уровень интеграции поверх отдельных сборок, чтобы смешивать и сопоставлять компоненты вместе и записывать полученные метаданные. Во многих случаях можно использовать всегда последнюю версию. В простейшем случае вы можете заставить его работать, зафиксировав его в выделенном репозитории git для захвата рабочего набора ссылок между версиями. В некоторых случаях (регулируемые среды) требуется больше — скажем, вам необходимо закрепить какой-то компонент в определенной версии или обеспечить дополнительную автоматизацию или лучший аудит. Именно здесь для этой цели можно использовать специализированные инструменты, подобные тому, который мы создаем (Reliza Hub) или альтернативы (например, DeployHub).
  3. Что касается развертывания — во время развертывания ваш экземпляр будет запрашивать источник истины, который содержит перестановки версий (опять же, в самом простом случае — это будет выделенный репозиторий git — см. GitOps, или в более сложном случае — специализированный инструмент будет находиться в смешивание). По сути, здесь вы устанавливаете авторитетный источник того, какая версия используется в какой среде на основе некоторых правил.
 

Venoirrem91


Рег
13 Jul, 2007

Тем
72

Постов
205

Баллов
595
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно