Книжный кружок. Рецензия на книгу «Микросервисы от архитектуры до релиза»

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Всем, прив)

Дочитал недавно книжку "Микросервисы от архитектуры до релиза" (в оригинале наз: "Microservices Up & Running") Вышла она в конце  2020, а недавно ее перевели. В издательстве "Питер" периодически делают щедрые скидосы на книжки, и я решил порадовать себя и накупил кучу). Вообще люблю книги в бумажном виде, особенно фундаментальные книги - те, к которым я еще неоднократно возвращаюсь и из которых черпаю идеи. Более хардовые и с кодом я предпочитаю электронные.

И еще гора непрочитанных)
И еще гора непрочитанных)

"Microservices Up & Running" написали два чувака: Ронни Митра и Иракли Надареишвили. Оба они не понаслышке поели финтех энтерпрайза и имеют очень богатый опыт, занимаются консалтингом и пишут книги. Ронни - соавтор "Continuous API Management", а также вместе с Иракли участвовал в написании "Microservices Architecture". Ронни занимается консалтингом финтех компаний, а Иракли сейчас Banking Platform Managing Director в JPMorgan Chase & Co, а до этого был вице-президентом по инновациям в Capital One Financial и возглавлял команды, ответственные за создание современной банковской платформы. В общем, это все можно посмотреть в их профиле в Линкедине. Им явно есть чем поделиться.

В целом, книжка мне очень понравилась, поэтому и решил сделать этот обзор. В качестве примера берется создание системы бронирования билетов на самолеты. 

Если прям очень коротко, то тут поднимаются вопросы:

  • микросервисы, их плюсы, минусы, DDD, Event Storming 

  • как вести ADR (architecture decision record)

  • как построить команды, работающие с системой

  • процесс создания сервисов от проектирования до деплоя (фреймворк SEEDs от авторов) 

  • инфраструктура как код

  • GitOps

Книга не тупо пошаговая инструкция, или что-то в стиле “нарисуем сову”, или какая-то абстрактная вещь в вакууме. На примере с системой бронирования авиабилетов показывается весь процесс от проектирования системы до развертывания. Понятно, что это всего лишь пример, и в реальности все куда сложнее, но он позволяет почувствовать многие актуальные вещи. Рассматриваются различные проблемы, с которыми предстоит столкнуться, выстраивая эту систему с нуля, в смысле прям совсем-совсем с нуля) Причем, каждый выбранный шаг, каждое решение грамотно обосновывается, крутится с разных сторон, что оно даст и на какие компромиссы придется пойти. 

Для реализации авторы выбрали микросервисную архитектуру, обсудили плюсы минусы, почему Event Storming проще, чем DDD для определения границ сервисов, а также про CAP теорему и как “ее обойти”. Рассказали про то, как принимать архитектурные решения, почему важно их прописывать и сохранять так же как и сам код. Порассуждали про оптимальный выбор размера команды, типы команд и построили их топологию,  естественно, не обошлось без Team Topologies и закона Конвея:)  Вообще, когда читал, параллельно лазил и искал еще всякие полезняшки по тем вещам, что затрагиваются в книге. Наткнулся еще вот на отличную статью на Хабре про размер команд: https://habr.com/ru/companies/edison/articles/272483/

Еще вот тут рассказывается про доклад Сергея Баранова о Event Storming: https://habr.com/ru/companies/oleg-bunin/articles/537862/

А дальше авторы на основе своего опыта выстроили для себя фреймворк эволюции создания сервисов и назвали его SEEDs (Seven Essential Evolutions of Design for Services) Немного спойлерну, SEEDs состоит из следующих шагов:

1. Определение клиентов системы

2. Определение JTBD (jobs to be done)

3. Создание UML-диаграмм взаимодействий между сервисами системы

4. Выделение из JTBD высокоуровневых действий и запросов

5. Описание каждого запроса в виде спецификации OpenAPI

6. Получение обратной связи по написанному API

7. Реализация микросервисов

В общем, все реально сложно уместить в книге, в Гитхабе есть исходники всего, что тут создается. После реализации микросервисов авторы занимаются развертыванием и инфрой. Нафигачивают инфру Терраформом, с кластером Куба, AgroCD, Траефиком и приводят большие куски кода) Тут конечно новички изрядно ох..т удивятся. Авторы проделали очень приличную работу. Причем, они все это развернули в облаке Амазона. Понятно, что выбор Куба и прочие вещи должны быть в реальности очень оправданы и взвешены, авторы тоже об это напоминают. В общем, сам код в книге приносит мало пользы, разве что дает просто визуальную наглядность процесса. Из забавного: со сложными вещами параллельно объясняются простые вещи, что вот curl - это чтобы подергать API, а вот Helm - это пакетный манагер для Куба. Но на мой взгляд, "Microservices Up & Running" не совсем для новичков и не только для разработчиков, а очень полезна будет техлидам, продвинутым инженерам и архитекторам. А из примера в книге можно вообще запилить серию тренингов.

В конце авторы подводят выводы и рассуждают о сложностях систем. В общем, это было очень интересно, очень рекомендую полистать ;)

Sergey Sabbath

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Захотелось полистать?
66.67% да 4
33.33% нет 2
Проголосовали 6 пользователей. Воздержался 1 пользователь.
Источник: https://habr.com/ru/articles/770352/


Интересные статьи

Интересные статьи

Данный материал рассматривает задачи, стоящие перед вычислительной техникой в составе беспилотных летательных аппаратов (БПЛА), а также содержит оценку применения мультиклеточной архитектуры для решен...
Как известно, микросервисная архитектура позволяет разбивать приложения на более мелкие и управляемые блоки. Однако, как и в любой другой области, здесь есть свои особенности и ошибки, которые могут п...
ПредисловиеЯ, Артём Кагукин, Lead BA в компании *Instinctools и тренер курса по бизнес-анализу в IT-Academy.Мой первый пост на Хабр является рецензией-сравнением двух книг: BABOK (Business Analysis Bo...
В первой части статьи мы проследили тернистый путь появления процессоров Alpha и даже успели познакомиться с первым их поколением. Все это было основано лишь на теории, но в этот раз у нас появился ...
Он найдет применение в гипермасштабируемых ЦОД. / фото Not4rthur CC BY-SA Зачем обновили спецификацию Инженеры из Open Compute Project (ОСР) представили первую версию стандарта еще в 2013 ...