Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились – переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности.
Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проектировать и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения – и монолит превращается в набор микросервисов.
Данную книгу мне дал почитать коллега по работе. Я по роду своей деятельности имею непосредственное отношение к разработке программ с применением микросервисной архитектуры, поэтому я охотно согласился прочитать данный труд. Ранее Криса Рачардсона я не читал, эта книга стала первым знакомством с автором.Сразу хочу сказать, что книга не рассчитана на начинающих программистов. Описываемые в ней термины, технологии, программы и паттерны будут лучше поняты и восприняты более опытными профессионалами.Итак, в чем же прелесть микросервисов, чем они помогают разработчикам и бизнесу? Дело в том, что приложения, написанные с применением этого подхода легче поддерживаются, лучше масштабируются и быстрее доставляются в промышленную среду. Хотя и без недостатков не обошлось: в некоторых случаях разработка и тестирование(сквозное тестирование в частности) микросервисного приложения сложнее и трудозатратнее, чем разработка и тестирование монолитного приложения.Архитектура и проектирование в конечном итоге сводятся к принятию решений. Вам нужно решить, какая архитектура лучше всего подходит для вашего приложения – монолитная или микросервисная. Делая этот выбор, вы должны взвесить большое количество за и против. Если остановитесь на микросервисах, вам придется столкнуться с множеством вызовов.Автор рассматривает в книге конкретный пример программы – «FTGO». Это приложение для доставки пищи из ресторанов. Изначально оно представляет собой монолитное приложение, которое постепенно разделяется на микросервисы. Из него выносятся обособленные части бизнес-логики, такие как «ресторан», «кухня», «заказ» и «доставка». Это позволит назначить на каждую часть свою команду разработки, которая будет отвечать только за данный сервис.В книге описывается ряд методик и паттернов, которые присущи микросервисной архитектуре, например:
1) синхронное и асинхронное межпроцессные взаимодействия;
2) предметно-ориентированное проектирование;
3) управление транзакциями с помощью повествований; повествования на основе хореографии и оркестрации;
4) доменные модели и агрегаты;
5) порождение событий;
6) объединение API и CQRS;
7) API-шлюз;
8) способы развертывания микросервисов: виртуальные машины, контейнеры, бессерверные платформы (лямбда-функции);
9) и многое другое.Также автором рассмотрено и описано множество программ и технологий, которые можно использовать при разработке микросервисов:
1) DynamoDB – система управления базами данных класса NoSQL в формате «ключ – значение», предлагаемая Amazon.com как часть пакета Amazon Web Services;
2) GraphQL – язык запросов данных и язык манипулирования данными с открытым исходным кодом для построения веб ориентированных программных интерфейсов;
3) Gherkin – человеко-читаемый язык для описания поведения системы;
4) Docker – программное обеспечение для автоматизации развёртывания и управления приложениями в средах с поддержкой контейнеризации, контейнеризатор приложений;
5) Kubernetes – открытое программное обеспечение для оркестровки контейнеризированных приложений, автоматизации их развёртывания, масштабирования и координации в условиях кластера;
6) AWS Lambda – платформенная услуга в рамках Amazon Web Services в модели «функция как услуга», обеспечивающая событийно-ориентированные бессерверные вычисления;Это лишь малая часть, того, что Вы можете найти в этой книге.Я рекомендую прочитать ее тем, кто занимается разработкой микросервисов, из книги можно почерпнуть много нового и интересного как по теме разработки, так и по теме администрирования.Небольшими минусами являются пара опечаток, что встретились в книге, и довольно сложная, временами, подача материала. Читать залпом эту книгу не получится, она довольно быстро утомляет, ввиду сложности описываемых тем и технологий.Моя оценка 4/5.
В первый раз прочитала примерно 1/3. Поняла, что не хватает базы. Ушла учиться.Вернулась уже с определенным бэкграундом. Вот без него читать не советую – белый шум.Описаны актуальные инструменты для разбивки монолита на микросервисы и для создания архитектуры с нуля. Частями можно использовать как инструкцию. Прям пошагово объяснили. Отдельное спасибо Ричардсону за детальное разжовывание модели доменных событий. Наконец-то кто-то написал об этом понятно.Минутка личной боли. Ну почему американцы так любят лирические отступления в профильной литературе? ЗАЧЕМ ОНИ ТАМ? Зачем мне знать, что Мэри любит пить кофе по утрам, а Стив жрет пончики упаковками, пока они там пилят свои микросервисы? Что бы я ассоциировала себя с Мэри? Со Стивом? Да что б им подавиться этими пончиками в свей Силиконовой долине! Страниц 50 текста вообще можно выкинуть!
Микросервисы это уже давно очень модно. Об этом все вокруг говорят, все давно хотят раздробить свои монолиты на кучу маленьких монолитиков, но никто не знает как. Приметно такая же задумка/задача/план на будущее стоит и в моей профессиональной деятельности. Есть довольно большое веб приложение и много хотелок на его счёт. Чтобы понять как правильно хотеть и решил почитать данную книгу. И ответов там нашел даже больше чем ожидал. Практически всё расписано по полочкам: как, зачем и почему. Так подробно, что аж даже немного страшно стало переходить на микросервисы, просто раньше не задумывался о сложности подобной архитектуры. Зато и плюсы её теперь стал тоже понимать гораздо отчётливее. В общем, если вы ещё не имели дело с микросервисами, но хотите начать, то эта книга для вас.