System Design Space
Граф знанийНастройки

Обновлено: 25 марта 2026 г. в 01:00

Building Microservices (short summary)

medium

Книга Sam Newman ценна не тем, что уговаривает перейти на микросервисы, а тем, что показывает их полную цену.

Для реального проектирования глава помогает увидеть, как декомпозиция, коммуникация, deployment, тестирование и организационные паттерны должны собираться в один операционный контур, а не жить разрозненными практиками.

Для интервью и инженерных разборов она полезна тем, что помогает обсуждать микросервисы через platform gap: отсутствие CI/CD, tracing, contract governance и других вещей, без которых сервисная архитектура быстро деградирует.

Практическая польза главы

Практика проектирования

Стройте migration runway с параллельной поддержкой старого и нового контуров.

Качество решений

Комбинируйте delivery, observability и platform capabilities как единый operational пакет.

Interview articulation

Показывайте переход от target architecture к реалистичному шаговому rollout.

Failure framing

Учитывайте риск platform gap: отсутствие CI/CD, tracing и contract governance.

Companion Book

От монолита к микросервисам

Практическое руководство по миграции с монолита — как применить теорию из этой книги на практике.

Читать обзор

Building Microservices, 2nd Edition (Микросервисы и интеграция)

Авторы: Sam Newman
Издательство: O'Reilly Media, 2021 (2nd Edition)
Объём: 612 страниц

Разбор книги Sam Newman: декомпозиция, коммуникация, deployment, тестирование и организационные паттерны.

Оригинал
Перевод

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

Книга разделена на три логические части, охватывающие весь путь от основ до продвинутых тем:

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

Что такое микросервисы, как их моделировать, декомпозиция монолита и паттерны разбиения.

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

Коммуникация между сервисами, workflow, build/deploy, тестирование, observability.

Часть III: Люди

Организационные структуры, безопасность, resilience и масштабирование.

Часть I: Основы микросервисов

Глава 1: Что такое микросервисы?

Ключевые характеристики:

  • Independent deployability — главный критерий
  • Моделирование вокруг бизнес-домена
  • Владение своими данными
  • Технологическая гибкость

Когда НЕ использовать:

  • Маленькая команда (до 5-10 человек)
  • Непонятный домен — сначала монолит
  • Стартап на ранней стадии
  • Нет опыта в distributed systems

Связанная книга

Learning Domain-Driven Design

Глубокое погружение в DDD: strategic и tactical design, bounded contexts, context maps.

Читать обзор

Глава 2: Как моделировать микросервисы

Domain-Driven Design как основа декомпозиции:

Bounded Context

  • Чёткие границы домена
  • Собственный ubiquitous language
  • Один контекст = один (или несколько) сервисов

Context Maps

  • Customer-Supplier
  • Conformist
  • Anticorruption Layer
  • Open Host Service

Глава 3: Разбиение монолита

Практические паттерны миграции от монолита к микросервисам:

Strangler Fig

Постепенная замена функционала новыми сервисами

Branch by Abstraction

Абстракция → новая реализация → переключение

Parallel Run

Запуск старой и новой версии параллельно

Глава 4: Разбиение базы данных

Паттерны разделения данных:

  • Database per Service — идеал
  • Shared Database — временный компромисс
  • Database View — readonly доступ
  • Database Wrapping Service

Работа с данными:

  • Change Data Capture (Debezium)
  • Saga pattern для транзакций
  • Eventual consistency
  • Outbox pattern

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

Связанный кейс

API Gateway

Централизация коммуникации: routing, authentication, rate limiting и BFF pattern.

Читать кейс

Глава 5: Коммуникация между сервисами

Синхронная коммуникация:

REST

Простота, широкая поддержка, OpenAPI

gRPC

Производительность, типизация, streaming

GraphQL

Гибкость запросов, federation

Асинхронная коммуникация:

Message Brokers

Kafka, RabbitMQ, AWS SQS

Event-Driven

Loose coupling, eventual consistency

Request-Response async

Correlation IDs, reply queues

Глава 6: Workflow

Как реализовать бизнес-процессы, охватывающие несколько сервисов:

Orchestration

  • Центральный координатор
  • Saga Execution Coordinator
  • Temporal, Camunda, AWS Step Functions
  • Проще отслеживать, сложнее масштабировать

Choreography

  • Каждый сервис реагирует на события
  • Loose coupling
  • Сложнее отлаживать
  • Implicit workflow через event sourcing

Глава 7: Build и Deploy

Continuous Delivery как основа успешных микросервисов:

Containers

Docker, образы, registry

Kubernetes

Оркестрация, service discovery

GitOps

ArgoCD, Flux, declarative deployment

Глава 8: Тестирование

Стратегия тестирования в мире микросервисов:

Тип тестовЧто тестируетИнструменты
UnitБизнес-логика внутри сервисаJUnit, pytest, Jest
IntegrationВзаимодействие с БД, внешними APITestcontainers, WireMock
ContractAPI контракты между сервисамиPact, Spring Cloud Contract
E2EПолный user journeyCypress, Playwright

Главы 9-10: Observability и Security

Three Pillars of Observability:

  • Logs — структурированные, агрегированные (ELK)
  • Metrics — Prometheus, Grafana
  • Traces — Jaeger, Zipkin, OpenTelemetry

Security:

  • mTLS — service mesh (Istio, Linkerd)
  • API Gateway — authentication, rate limiting
  • Zero Trust — verify everything
  • Secrets Management — Vault, AWS Secrets

Часть III: Люди и организация

Главы 11-12: Resilience и Масштабирование

Паттерны устойчивости:

  • Circuit Breaker — изоляция сбоев
  • Bulkhead — ограничение blast radius
  • Timeout — не ждать вечно
  • Retry с backoff — умные повторы

Масштабирование:

  • Horizontal scaling — больше инстансов
  • Auto-scaling — по метрикам
  • Caching — Redis, CDN
  • CQRS — разделение чтения/записи

Глава 13-14: Организационные структуры

"Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations."

— Conway's Law

Team Topologies:

  • Stream-aligned teams — по бизнес-потоку
  • Platform teams — внутренняя платформа
  • Enabling teams — помощь другим командам
  • Complicated-subsystem teams — специалисты

Практики:

  • Two-Pizza Teams — 6-8 человек
  • You Build It, You Run It
  • Internal Open Source
  • Inverse Conway Maneuver

Ключевые выводы

Do:

  • Начинать с монолита, если домен непонятен
  • Independent deployability — главный критерий
  • Database per service с eventual consistency
  • Инвестировать в observability с первого дня

Don't:

  • Микросервисы ради микросервисов
  • Distributed monolith — худшее из двух миров
  • Shared database между сервисами надолго
  • Игнорировать организационную структуру

Для кого эта книга?

Идеально подходит:

  • Архитекторам, планирующим миграцию на микросервисы
  • Tech leads, принимающим архитектурные решения
  • Разработчикам в растущих командах
  • Всем, готовящимся к System Design интервью

Предварительные знания:

  • Опыт работы с веб-приложениями
  • Базовое понимание distributed systems
  • Знакомство с Docker/Kubernetes (желательно)

Совет: Читайте вместе с DDIA — Kleppmann даёт глубокую теорию распределённых систем, а Newman — практические паттерны их организации в production.

Связанные главы

Где найти книгу

Чтобы отмечать прохождение, включи трекинг в Настройки