Migrating Monoliths to Microservices with Decomposition and Incremental Changes
Расшифровка доклада про миграцию с монолита на микросервисы.
Слово "монолит" стало синонимом слова "легаси". Сообщество верит, что есть один правильный ответ на то, какую архитектуру выбрать. И этот ответ - микросервисная архитектура.
Sam Newman - автор книги про микросервисы и независимый консультант, рассказывает, почему монолит - это не всегда плохо и бывают ситуации когда переход на микросервисы лишь усугубит проблемы. Например, если у вас модульный монолит, то при переезде на микросервисную архитектуру вы можете сделать хуже, не получив профитов.
Если же микросервисы вам нужны, то в статье описываются паттерны выноса функционала из монолита в микросервисы и новые челленджи, появляющиеся в микросервисах, которых нет в монолите.
Также в статье интересно написано про release train. Это когда мы релизимся строго в определенное расписание. Релизятся те фичи, которые успели к этому расписанию. Я знал про подход, но не думал о том, что его используют для того чтобы придти к CI. Паттерн использования release train:
- Релизимся, например, раз в месяц
- Понемногу увеличивает частоту релизов
- Когда частота релизов стала "ежедневно" - можно переходить к CI.
Использование release train на постоянной основе - неправильно и вредно.
Статья отлично рассказывает про разделение монолита: зачем и как это делать, необходимые культурные изменения. В целом все советы ложатся на абстрактную разработку, когда нужно выносить сущности из общей каши.
Рекомендую, 10 из 10