🔥

Тред (@thekashey)


Итак, вы сделали то, что менеджер вас попросил и хотите это зарелизить. Святое дело, только как это сделать? У нас тут есть аш три разных способа!

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. Банально надо "измерять" каждый бизнес процесс - он должен не только проходить тесты, но и РАБОТАТЬ!

И нам пришлось потратить много времени, чтобы изменить философию с разработки "больше тестов зеленых и разных" до реального понимания и отслеживания бизнес процессов (и других проблем в рантайме)

Антон КорзуновАнтон Корзунов