Управление выпуском VSTS; много целей выпуска

У меня есть решение с 8 веб-проектами и 12 исполняемыми файлами. Все они очень тесно связаны, так как между ними есть много общих бизнес-библиотек; у нас есть одно определение сборки в VSTS для всего решения, но у нас есть 20 разных определений выпуска.

У нас есть единые среды для Dev/QA/Pre-Prod/Production, достаточно параллельной активной разработки и административные ограничения, так что одно изменение, продвигающее модель всех сред, не совсем работает для нас; тест Dev и QA, который позже перейдет к ночной составной сборке для кандидатов на выпуск.

Мне кажется, что мы хотим иметь два набора определений релиза (набор для разработки и контроля качества, а также набор для принятия пользователем через производственный набор), но если следовать этой модели, у нас в итоге будет 40 определений релиза. Я что-то упускаю? У нас есть отдельные определения для EXE-файлов, потому что мы не хотим, чтобы сбой одного релиза влиял на другой, и, поскольку все они являются отдельными полезными нагрузками для отдельных каталогов, кажется, что все они должны быть разными.

Верен ли шаблон 1 релизного определения для каждого развертываемого проекта, а в случае ночных сборок — два набора всех развертываемых релизных определений?


person Erik Frantz    schedule 19.01.2017    source источник


Ответы (1)


Вы всегда должны стремиться к тому, чтобы иметь одно определение выпуска, развертывающее либо все приложение в одной среде одновременно, либо, по крайней мере, одновременное развертывание всей подсистемы, если у вас есть какой-то шаблон микросервисов. Вам не нужно запускать несколько выпусков, когда вы сталкиваетесь с сильно связанными зависимостями. Это может привести к большому количеству ошибок в цикле или, по крайней мере, сложности. Это определение также может иметь одну и ту же последовательность несколько раз для каждой среды.

person baywet    schedule 20.01.2017
comment
Тогда мне любопытно, каково ваше определение всего приложения. В качестве упрощенного примера у нас есть сервисный уровень и 3 пользовательских интерфейса: один для общедоступных клиентов, один для внутренних пользователей и еще один для бизнес-партнеров. Все они взаимодействуют с сервисным уровнем, но каждый из трех пользовательских интерфейсов является отдельным приложением. - person Erik Frantz; 21.01.2017
comment
Действительно, именно здесь провести линию обычно сложно. Когда мне приходится принимать подобные решения, я в основном делаю две вещи: диаграмму зависимостей, чтобы определить, что сломается, если две части не будут находиться на одном уровне. В основном это жесткий предел. И тогда я принимаю решение между гибкостью и простотой: нужны ли мне эти две части, чтобы их можно было доставлять отдельно, или нет? Ответы на эти вопросы помогают мне определить, какая часть будет отправлена ​​целиком или отдельно. надеюсь, это поможет - person baywet; 24.01.2017