group-telegram.com/ulshinblog/389
Last Update:
Сэм Ньюмен, "От монолита к микросервисам"
Распил монолита на микросервисы уже стал притчей во языцех. Если вбить в поиск ютуба эту ключевую фразу, то вы увидите бесконечную загрузку кучу видосов и выступлений на конфе. Оно и неудивительно, тема сложная и богатая на нюансы.
Сэм Ньюмен, автор книги "Создание микросервисов" (на которую я писал обзор), тоже успел проехаться на хайповой теме. Его книга про микросервисы мне очень понравилась, поэтому я решил прочитать и про распил монолита.
О чём книга
Книга довольно небольшая, состоит из 5 глав, которые и покрывают все аспекты миграции.
Первая глава посвящена терминологии, которая используется в книге (микросервис, монолит, cohesion/coupling, немного DDD).
Вторая глава покрывает планирование миграции с монолита на микросервисы. Интересно, что Ньюмен акцентирует внимание на важности планирования и как управлять распилом с точки зрения проектного управления (риски, контрольные точки, вот это всё). Даже когнитивные искажения вспомнил.
Третья и четвёртая главы рассказывают о технической части миграции: как пилить монолит и как пилить БД. Для распила монолита автор предлагает несколько шаблонов, которые позволяют постепенно переехать с монолита. Есть как относительно стандартные шаблоны (душитель, вынос куска логики в микросервис и так далее), так и более экстравагантные типа использования CDC для создания параллельно работающих систем.
Для распила БД автор тоже предлагает набор архитектурных шаблонов, от обёртывания БД микросервисом до различных синхронизаций. Также описан ряд вспомогательных шаблонов, которые могут немного упростить переезд. В конце главы про БД автор прошёлся по транзакциям, 2FC и сагам в микросервисах.
Пятая глава на мой вкус должна быть второй, потому что она рассказывает о болезнях роста микросервисной архитектуры. В ней описаны все страдания, которые предстоит пережить с масштабированием микросервисной архитектуры. Также в ней Ньюмен затрагивает вопросы мониторинга и логирования, DX разработчиков микросервисов, проблемы отказоустойчивости и многое другое.
Мои впечатления
Книга мне понравилась. Она даёт общий обзор проблемы распила монолита на микросервисы с точки зрения как кода, так и хранения данных. Ньюмен двигается от проблемы к решению, поэтому книгу довольно легко читать и воспринимать.
Конечно, в ней не хватает детализации, однако в такой сложной теме избыток подробностей делает книгу слишком узкоспециализированной. Автор ставил перед собой задачу дать читателю общее понимание проблемы распила монолита на микросервисы и путей её решения, и ему это удалось.
Отдельно хочу выделать русский перевод, который сделан из рук вон плохо. Если английский позволяет, то читайте книгу в оригинале.
На мой взгляд, книгу стоит прочитать каждому бэкендеру начиная с уровня Middle (это то место, где хочется прикручивать много всяких разных архитектурных паттернов и тому подобных вещей). С книгой стоит ознакомиться, даже если вы не планируете в ближайшее время пилить монолит - планы могут измениться :)
#обзор_книги
BY Никита Ульшин про IT
Share with your friend now:
group-telegram.com/ulshinblog/389