Общая информация
Книга объемом 304 страницы, состоит из 12 глав без деления на разделы. Сложность чтения средняя (но скорее даже не из-за технической сложности, а из-за сплошного текста). Вставок кода немного, изображений практически нет, но периодически встречаются различные диаграммы и схемы. В конце каждой главы есть краткое резюме.
Содержание книги
Первая глава про понятие микросервисов. Их преимущества и недостатки. Особенности (например, каждый микросервис может иметь свою базу или свое развертывание).
Вторая глава посвящена тому, как и когда монолит стоит вообще дробить на микросервисы и как определять границы.
Следующая глава еще более теоретическая — про моделирование сервиса, а скорее даже про критерии, которыми он должен обладать (слабая связанность и сильное зацепление).
Четвёртая по счёту глава про то, как "подружить" микросервисы в системе. По каким правилам и механизмам должно происходить общение. Здесь же рассмотрены работа с API, RPC, REST, работа с базой данных, JSON и всё прочее, с чем вы, скорее всего, и так работаете каждый день.
Далее идёт глава о разбиении монолита на части. Уже более практическая, ибо взят вымышленный пример, однако дальше блок-схем практика, как правило, не доходит.
Последующая глава снова про развёртывание. Без конкретики, сугубо перечислены некоторые инструменты, например Puppet, Chef и Ansible. Пару слов о CI/CD, про конфигурирование и разные среды выполнения, контейнеризацию и многое другое. Как и всегда — много блоков и диаграмм, но совсем без кода, даже без кода конфигов.
Далее мы плавно подбираемся к теме тестирования микросервисов. Здесь, наверное, нет смысла останавливаться, так как подходы и принципы весьма схожи с обычным тестированием.
Далее идёт глава про мониторинг. Из необычного здесь, пожалуй, можно выделить особенности наблюдения, когда один сервис расположен сразу в нескольких местах, а также в целом особенности мониторинга для микросервисов. В остальном всё достаточно стандартно.
Следующая глава также посвящена одному из требований, предъявляемых к любому ПО, а именно безопасности. Большой упор делается на авторизацию и аутентификацию, построение брандмауэров и тому подобное.
Плавно переходя к завершению, автор затрагивает главу про закон Конвея (закон, при котором организация ПО прямо пропорциональна структуре компании и выстроенным коммуникациям). Речь идёт о том, насколько микросервисы для этого подходят.
Предпоследняя глава — это ещё одно современное требование к ПО — масштабирование. Рассмотрены особенности масштабирования микросервисов, их кэширование, теорема CAP и многое другое.
Последняя глава — своего рода обзор всего вышесказанного и покрытие вопросов, которые ещё не были разобраны и трудно отнести к какой-то главе (например, сбои и восстановление).
Мнение
После прочтения книги осталось смешанное впечатление: с одной стороны книга сухая и сугубо теоретическая, с другой — очень хорошо подходит для расширения кругозора и закрытия пробелов в знаниях. В книге рассматриваются такие темы, как: преимущества микросервисов над монолитами, CI/CD микросервисов, безопасность, тестирование и мониторинг, масштабирование, правильное разбиение монолита на микросервисы, практические технологии, способные решать те или иные проблемы при работе с микросервисами. В плюсы однозначно можно выделить хорошую и чёткую навигацию. Из минусов, как отмечал уже: читается средне и порой нудно, мало примеров кода, да и скорее теоретическая. Несмотря на минусы, скорее я всё же советовал бы с ней ознакомиться или, по крайней мере, дать шанс книге, так как материал неплохо закрывает некоторые пробелы в знаниях и хорошо покрывает тему микросервисов.