MidТеория1 min

Building Microservices

Декомпозиция монолита, межсервисная коммуникация, deployment и эволюция микросервисной архитектуры

Общая информация

Параметр Значение
Автор Sam Newman
Год 2021 (2-е издание)
Страниц 616
Уровень Intermediate
Издательство O'Reilly
Рейтинг полезности 5/5

О чём эта книга

Building Microservices -- это практическое руководство по проектированию, построению и эксплуатации микросервисных систем. Второе издание существенно переработано и включает опыт индустрии за последние годы, включая критику микросервисного подхода.

Главная ценность: Ньюман не продаёт микросервисы как серебряную пулю. Он честно описывает, когда микросервисы нужны, когда -- нет, и какие проблемы они создают. Это зрелый и сбалансированный взгляд.

Структура книги

Часть I: Основы

Глава Тема Что узнаете
1 What Are Microservices? Определение, ключевые характеристики
2 How to Model Microservices Bounded contexts, aggregates
3 Splitting the Monolith Стратегии декомпозиции, Strangler Fig
4 Microservice Communication Styles Sync vs async, request-response vs event-driven

Часть II: Реализация

Глава Тема Что узнаете
5 Implementing Communication REST, gRPC, message brokers
6 Workflow Sagas, orchestration vs choreography
7 Build CI/CD для микросервисов
8 Deployment Containers, Kubernetes, serverless
9 Testing Test pyramid, contract testing, E2E
10 Monitoring & Observability Distributed tracing, logging, metrics

Часть III: Люди и процессы

Глава Тема Что узнаете
11 Security Auth, secrets, zero trust
12 Resiliency Circuit breaker, bulkhead, retry
13 Scaling Horizontal/vertical, caching
14 User Interfaces BFF, micro frontends
15 Organizational Structures Conway's Law, team topologies
16 The Evolutionary Architect Роль архитектора, governance

Пять ключевых идей

1. Независимая деплоябельность -- главная цель

Микросервисы нужны не ради маленького размера, а ради возможности деплоить каждый сервис независимо. Если у вас нет этого -- микросервисы не дают преимуществ.

2. Начинайте с монолита

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

3. Bounded Context -- основа декомпозиции

Границы микросервисов должны совпадать с границами бизнес-контекстов (из DDD). Технические границы (по слоям) приводят к сильной связанности.

4. Choreography предпочтительнее Orchestration

Событийная архитектура (choreography) даёт более слабую связанность между сервисами, хотя сложнее в отладке.

5. Организация определяет архитектуру

Закон Конвея работает: структура системы отражает структуру коммуникаций в организации. Невозможно построить хорошую микросервисную архитектуру в организации с сильными вертикальными колодцами.

Плюсы

  • Полнота -- покрывает все аспекты: от моделирования до организационной структуры
  • Практичность -- много реальных примеров и антипаттернов
  • Сбалансированность -- честно говорит о минусах микросервисов
  • Второе издание -- учитывает опыт индустрии, более зрелый взгляд
  • Conway's Law -- уникальный фокус на организационных аспектах

Минусы

  • Объём -- 616 страниц, не все главы одинаково полезны
  • Мало кода -- архитектурный обзор, а не implementation guide
  • Повторения -- некоторые идеи разбросаны по разным главам
  • Нет глубины в отдельных темах -- Sagas, CQRS описаны обзорно (для глубины -- Richardson)

Кому читать

  • Инженерам, проектирующим переход с монолита на микросервисы
  • Tech-лидам, выбирающим архитектуру для нового проекта
  • DevOps-инженерам, строящим инфраструктуру для микросервисов
  • Всем, кто хочет понять микросервисы целостно, а не фрагментарно

Кому НЕ читать

  • Начинающим разработчикам без опыта работы с распределёнными системами
  • Тем, кто ищет глубокое погружение в конкретные паттерны (лучше Richardson)
  • Инженерам, работающим исключительно с монолитами без планов миграции

Рекомендация: Это лучшая обзорная книга по микросервисам. Читайте второе издание -- оно значительно улучшено. Если хотите глубже разобраться в конкретных паттернах (Sagas, CQRS, Event Sourcing), дополните книгой Richardson.