Azure DevOps multi CI / CD - PullRequest
       52

Azure DevOps multi CI / CD

0 голосов
/ 11 января 2019

У меня есть следующий вариант использования:

У нас есть одно решение, которое содержит 5-10 различных сервисов (.NET Framework Web Apps различных версий). Нам нужно настроить CI / CD в DevOps Azure, чтобы иметь возможность автоматизировать развертывание каждого сервиса отдельно (или всех сервисов одновременно). Там будет около 5 различных сред для каждой услуги.

Вызовы:

  • Мы стараемся избегать (# служб X # сред) отдельных сборок и выпусков (~ 50 сборок / ~ 50 релизов).
  • Мы должны иметь возможность развертывать одну службу без влияния на другие.
  • Мы должны иметь возможность развертывать ВСЕ службы одновременно для массовых развертываний.

P.S. В настоящее время мы используем разработку на основе транков, но я подумываю о переходе на giflow, чтобы иметь триггеры на основе веток, так как в этом случае мне будет легче управлять.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

CI - обрабатывается вашим сервером сборки (например, teamcity). Ответственность: сборка, тестирование, запутывание, создание пакетов и, наконец, отправка пакетов на сервер nuget (специфично для .net). Традиционно помимо кода приложения вам также необходимы как минимум 2 других пакета: миграция БД, миграция инфра.

Вы создаете пакеты один раз и разворачиваете точную версию везде, где хотите. https://gist.github.com/leblancmeneses/1d352bb79447cd7a486598c4dc796ef1 Этот скрипт работает в сочетании с https://github.com/leblancmeneses/RobustHaven.DevOps

CD - обрабатывается чем-то вроде осьминога. Ответственно: организуйте процесс развертывания в вашем кластере. Octopus извлекает пакеты с сервера nuget и перемещает их в любое удобное для вас окружение и на любые машины, которые его окружают.

https://www.robusthaven.com/presentations/DevOps

0 голосов
/ 11 января 2019

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

Когда прибывают конвейеры выпуска yaml, это становится тривиально, но сейчас, к сожалению, нет.

...