Итак, вы сделали то, что менеджер вас попросил и хотите это зарелизить. Святое дело, только как это сделать?
У нас тут есть аш три разных способа!
1, самый популярный - просто мержим в мастер. Далее CI/DI и максимум через полчаса вы в продакшене.
"Правильно" мержить, так чтобы твой "зеленый" билд не уронил мастер нам помогает landkid
github.com/atlassian/land…
2, самый древний - это когда раз в неделю/месяц/квартал выпускается новая коробочная версия 357.0, и отправляется клиентам.
Скучно, но очень надежно.
3, золотая середина - это когда релиз происходит один раз в день.
Все десятки микросервисов и вроде как "отдельных" продуктов деплоятся в специальный env, тестируются как одно целое, и если все окей - уходят в прод.
Если нет - приходите завтра.
С финансами по другому нельзя - некоторые "сервисы"(например по подсчету налогов) поставляются "другими компаниями" как черные боксы, и... в общем с этим шутки плохо.
SOX Compliance очень сильно ограничивает что мы можем делать с продом.
en.wikipedia.org/wiki/Sarbanes–…
Но на этом дело не заканчивается - после выкладки запускается PDV, Post Deployment Verification, которое проверяет что система "на самом деле" работает (а не с этими вашими моками).
Чуть что не так - rollback.
После этого за системой следит "Semantic Check" - простые браузерные тесты, которые запускаются каждые 5 минут
Вот только этого совсем недостаточно чтобы построить даже чуточку надежное приложение.
Нужно добавить немного "до" выкладки, и надо бы добавить немного "после".
Это долгая история с кучей ошибок сделанных по пути, но если кратно - YBIYRI( You Build It You Run It)
А как это сделать, если неизвестно что происходит в глубине проекта?
Так что начинается веселая история с аналитикой, мониторингом, SLI и SLO.
Банально надо "измерять" каждый бизнес процесс - он должен не только проходить тесты, но и РАБОТАТЬ!
И нам пришлось потратить много времени, чтобы изменить философию с разработки "больше тестов зеленых и разных" до реального понимания и отслеживания бизнес процессов (и других проблем в рантайме)
Антон Корзунов