Разверните много приложений через ОДИН процесс выпуска через Azure DevOps - PullRequest
0 голосов
/ 06 января 2020

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

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

Фон

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

Опции

  1. Сделать выпуск для каждого конвейера - не вентилятор!
    • CON: Azure похоже, что требуется связь 1: 1 между конвейерами и выпусками.
    • CON: я хочу избежать многих выпусков любой ценой, так как изменения будут почти не поддерживаться.
  2. Использование пользовательских шаблонов этапов - не работает для того, что мне нужно

    • CON: релизы не делиться шаблонами пользовательских этапов.

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

    • CON: Пользовательские шаблоны этапов не могут быть обновлены (по состоянию на этот пост).

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

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

    • PRO: процесс будет храниться в общем «общем» репо.
    • PRO: каждое приложение будет иметь минимальный файл Pipeline .yml, в котором устанавливаются некоторые параметры перед запуском общего процесса.
    • CON: Как мне отслеживать и вручную развертывать релизы без пользовательского интерфейса портала релизов? Я что-то упустил?
  4. Запуск одной и той же версии с артефактами из различных приложений - не уверен, что это будет работать ....
    • PRO: один процесс выпуска, который легко отслеживать и развертывать по мере необходимости через пользовательский интерфейс портала релизов.
    • CON: Как бы я отслеживал релизы для различных приложений ? Буду ли я называть релизы именем приложения?
    • CON: я не вижу, как его настроить, поскольку релиз привязан к первичному конвейеру.

      Во время связывания источника артефакта с конвейером выпуска .... [Azure Документация ]

    • CON: Хотя несколько Можно использовать источники артефактов. Релизам нужен артефакт по умолчанию Pipeline или репозиторий. Нужно ли устанавливать источник артефакта программно?

      Когда вы связываете несколько источников артефактов с конвейером выпуска, один из них назначается основным источником артефакта. Основной источник артефактов используется для установки ряда предварительно определенных переменных. Это может также использоваться в именовании выпусков. [Azure Документация ]

  5. Использование нескольких источников артефактов и переменных артефактов - не уверен это будет работать ....

    Когда есть несколько источников артефактов, связанных с конвейером выпуска, вы можете получить доступ к информации о каждом из них. [Azure Документация ]

Итог

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

1 Ответ

0 голосов
/ 07 января 2020

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

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

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

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

enter image description here

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