Крис РичардсонМикросервисы. Паттерны разработки и рефакторинга
Если вам давно кажется, что вся разработка и развертывание в вашей компании донельзя замедлились – переходите на микросервисную архитектуру. Она обеспечивает непрерывную разработку, доставку и развертывание приложений любой сложности. Книга, предназначенная для разработчиков и архитекторов из больших корпораций, рассказывает, как проектировать и писать приложения в духе микросервисной архитектуры. Также в ней описано, как делается рефакторинг крупного приложения – и монолит превращается в набор микросервисов. В этой книге Как (и зачем!) использовать микросервисную архитектуру. Стратегии декомпозиции сервисов. Управление транзакциями и шаблоны запросов. Эффективные стратегии тестирования. Шаблоны развертывания, включая контейнеры и бессерверные платформы.
Если хочешь оставаться конкурентоспособным, без микросервисов сейчас не обойтись. Must have для прочтения, в первую очередь книга расширяет кругозор, рассказывая о куче шаблонов и инструментов для реализации современной распределённой архитектуры. Не очень понравились примеры на Java, слишком уж он многословен и переусложнен, но это мелочь.
Большой плюс книги в том, что это разносторонний обзор всех значимых аспектов связанных с микросервисной архитектурой: сравнение ее с монолитом, обеспечение констентности данных, проектирование доменной модели, тестирование, разбиение монолита и т.п. Важно, что описываются и отрицательные стороны тех или иных решений и способы их преодоления. Из минусов: Примеры на Java (особенно если вы не джавист) - иногда они помогают на практике понять о чем идет речь, но часто слишком подробны, можно смело проматывать в таких случаях. Второй минус - "птичий язык", авторский перевод терминов на русский без указания оригинального названия (пользовательские путешествия и тому подобное). В целом, минусы не столь серьезны.
Отказ от объектных ссылок в пользу уникальных идентификаторов означает, что агрегаты слабо связаны между собой. Это позволяет четко определить границы между ними и избежать случайного обновления не того агрегата