Развертывание множества приложений с помощью ОДНОГО процесса выпуска через Azure DevOps

Мне нужно развернуть много похожих приложений в одних и тех же средах с Azure DevOps.

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

Фон

  1. У меня есть десятки похожих приложений с идентичными процессами выпуска.
  2. Каждое приложение (в собственном репозитории) будет иметь собственный конвейер Azure.
  3. Меня устраивает индивидуальное решение этой проблемы.

Параметры

  1. Make a Release for every Pipeline -- not a fan!
    • CON: Azure seems to want a 1-to-1 relationship between Pipelines and Releases.
    • ПРОТИВ: Я хочу избежать многих Релизов любой ценой, так как изменения будут практически недоступны.
  2. Используйте настраиваемые шаблоны сцены - не подходит для того, что мне нужно

    • ПРОТИВ: в выпусках не используются пользовательские шаблоны этапов.

      Пользовательские шаблоны, которые вы создаете, привязаны к проекту, в котором вы их создали. [Документация по Azure]

    • # P8 #
      # P9 #
  3. Поместите процесс выпуска в файл .yml конвейера - кажется возможным, но ....

    • PRO: The process would be stored in a shared "common" repo.
    • PRO: каждое приложение будет иметь минимальный файл Pipeline .yml, в котором будут установлены некоторые параметры перед запуском общего процесса.
    • ПРОТИВ: Как мне отслеживать и вручную развертывать выпуски без пользовательского интерфейса портала выпусков? Я что-то упускаю?
  4. Trigger the same Release with artifacts from different apps -- not sure this will work....
    • PRO: One release process, easy to track and deploy as needed via the Release portal UI.
    • ПРОТИВ: Как мне отслеживать выпуски различных приложений? Могу ли я назвать выпуски по имени приложения?
    • ПРОТИВ: Я не понимаю, как его настроить, поскольку выпуск привязан к основному конвейеру.
      # P11 #
    • ПРОТИВ: Хотя можно использовать несколько источников артефактов, для выпусков требуется конвейер артефактов по умолчанию или репозиторий источников. Нужно ли мне программно настраивать источник артефакта?
      # P12 #
  5. Используйте несколько источников артефактов и переменных артефактов - не уверен, что это сработает ....
    # P13 #

Итог

Мне удалось решить многие из этих проблем в Octopus Deploy. Однако у меня возникают серьезные проблемы с тем, как перенести мой процесс DevOps в Azure DevOps. Как бы вы справились с этой ситуацией?


person AndrewRalon    schedule 06.01.2020    source источник
comment
Есть ли отзывы о голосовании против и просьбе закрыть? Я весь во внимании.   -  person AndrewRalon    schedule 06.01.2020
comment
Вы думали о рабочих группах? docs.microsoft.com/ en-us / azure / DevOps / pipelines / library /   -  person Sourav Kundu    schedule 07.01.2020


Ответы (1)


Не существует идеального решения, отвечающего вашим требованиям.

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

Мы можем развернуть несколько приложений в нескольких средах через ОДИН выпуск с настраиваемым шаблоном, как вы упомянули, мы также можем использовать Task Groups, чтобы объединить набор задач вместе, а затем повторно использовать их на разных этапах. Но нам по-прежнему необходимо соответствующим образом обновить определения (изменить версию группы задач) после обновления конкретной группы задач.

Другой способ - Clone Stage, вы упомянули, что это одинаковые среды, поэтому вы можете настроить один этап, а затем клонировать этапы из существующего, просто назовите этапы соответствующими именами приложений. Но вам все равно нужно изменить настройки соответствующим образом, например Artifact filters (см. Отпустить триггеры), чтобы определить условие для запуска определенного этапа. Но таким образом он сначала загрузит все артефакты, когда вы добавите несколько источников артефактов, это займет много времени, чтобы получить источники ...

введите здесь описание изображения

person Andy Li-MSFT    schedule 07.01.2020