Один из способов непрерывного развертывания состоит в том, чтобы отделить развертывание от выпуска, то есть развернуть обновления без немедленной активации изменений.
Я знаю, что переключатели функций могут быть использованы для этого, но мне интересно, есть ли другие методы для «не-функций».
Например, вы бы построили функцию переключения на исправление? Вероятно, нет, и можно утверждать, что исправления ошибок должны быть развернуты как можно скорее, потому что это может только поправиться. И после того, как исправление было выпущено, я уверен, что не хочу больше его выключать. Но так ли это? Это может быть рискованное изменение, которое вы хотите выпустить контролируемым образом. И если есть неожиданные побочные эффекты, это хорошо , чтобы быть в состоянии свернуть его обратно. Итак, есть ли флаги для каждого изменения?
А как насчет визуальных изменений? Например, можете ли вы реализовать что-то вроде флага функции в CSS? Это вообще имеет смысл?
источник
Ответы:
Для программного обеспечения в категории веб-приложений, в зависимости от вашего провайдера инфраструктуры / хостинга, такая развязка может позволить переключать входящий трафик между (или разделять его) между различными развернутыми версиями sw, практически охватывая любые упомянутые вами изменения: исправления ошибок, визуальные эффекты , и т.д.
Такая поддержка обычно не требует переключения функций. И это может быть применимо независимо от того, является ли приложение монолитным или разделенным на микросервисы.
Например, предложение Paas от Google App Engine имеет поддержку разделения трафика и миграции.
От разделения трафика :
От миграции трафика :
источник
Хотя с монолитами вы можете быть ограничены коммутаторами, с микросервисными архитектурами вы можете разделить каждый пул развертывания узлов, предоставляющих услугу (т. Е. Pods). Затем вы активируете развертывание недавно измененного продукта в подмножестве пула и тщательно контролируете его; Вы даже можете выбрать, какой объем пула развернуть изменение, например, активировать изменение для 15% трафика. Вы можете найти функцию, называемую «обновляемое обновление» в литературе.
источник