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

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

Distributed Systems: Principles and Paradigms (short summary)

expert

Классика по распределенным системам полезна не ностальгией, а тем, что возвращает к фундаменту там, где современный cloud-стек слишком легко прячет базовые идеи за готовыми сервисами.

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

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

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

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

Дает фундамент для осознанного выбора архитектурных паттернов в распределенной среде.

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

Помогает отличать требования теории от ограничений практической эксплуатации.

Interview-аргументация

Усиливает глубину ответа: можно уверенно объяснять базовые distributed-механизмы.

Риски и компромиссы

Показывает границы применимости классических моделей в современных cloud-нагрузках.

Distributed Systems (4th Edition) (Распределенные системы)

Авторы: Andrew S. Tanenbaum, Maarten van Steen
Издательство: distributed-systems.net, 2023
Объём: ~1000 страниц

Фундаментальный труд Таненбаума и ван Стина: архитектуры, координация, консистентность, отказоустойчивость и безопасность.

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

Глава 1: Введение

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

Распределённые системы: обзор

Быстрый вход в ключевые свойства распределённых систем и их компромиссы.

Читать обзор

Определение распределённой системы

«Коллекция автономных вычислительных элементов, которая представляется пользователю как единая когерентная система»

Прозрачность

Скрытие сложности распределения от пользователя

Открытость

Стандартные интерфейсы и протоколы

Масштабируемость

Рост без деградации производительности

8 видов прозрачности

Доступ
Скрытие способа доступа к ресурсу
Местоположение
Скрытие физического расположения
Миграция
Скрытие перемещения ресурсов
Релокация
Скрытие перемещения во время работы
Репликация
Скрытие существования копий
Конкурентность
Скрытие совместного использования
Отказ
Скрытие сбоев и восстановления
Персистентность
Скрытие хранения данных

Глава 2: Архитектуры

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

Интеграция микросервисов

Практика выбора архитектурного стиля и каналов взаимодействия между сервисами.

Читать обзор

Архитектурные стили

Многоуровневые (Layered)
Вертикальная организация компонентов
Объектные (Object-based)
Распределённые объекты с RMI
SOA / Микросервисы
Сервис-ориентированная архитектура
Publish-Subscribe
Событийно-ориентированная модель

Системные организации

Централизованные
Клиент-серверная модель
Децентрализованные (P2P)
Равноправные узлы без центра
Гибридные
Комбинация подходов (CDN, BitTorrent)

Роль Middleware

Middleware — промежуточный слой между ОС и приложениями, обеспечивающий когерентность системы. Примеры: CORBA, RMI, Message Brokers, Web Services. Middleware скрывает гетерогенность платформ и обеспечивает единый API.

Глава 3: Процессы

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

Операционная система: обзор

Процессы, потоки и изоляция ресурсов как основа исполнения распределённых сервисов.

Читать обзор

Потоки (Threads)

  • User-level vs Kernel-level threads
  • Многопоточные серверы
  • Thread pools
  • Модель reactor/proactor

Виртуализация

  • Виртуальные машины
  • Контейнеры
  • Изоляция ресурсов
  • Миграция процессов

Клиенты и серверы

  • Stateless vs Stateful серверы
  • Кластеризация серверов
  • Миграция кода
  • Mobile agents

Глава 4: Коммуникации

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

API: RPC и REST

Практические подходы к удалённым вызовам и выбор протокола под задачу.

Читать обзор

RPC (Remote Procedure Call)

Синхронный вызов удалённых процедур с семантикой локального вызова

Семантики вызова
at-least-once, at-most-once, exactly-once
Стабы (Stubs)
Клиентские и серверные proxy для маршаллинга

Очереди сообщений

Асинхронная коммуникация через брокеры сообщений

AMQPRabbitMQKafkaWebSphere MQ

Мультикаст

Доставка сообщений группе получателей

IP Multicast
Сетевой уровень, best-effort
Application-level Multicast
Overlay networks, гарантии доставки

Gossip-протоколы

Эпидемическое распространение информации: каждый узел периодически передаёт обновления случайным соседям. Гарантируют eventual consistency с высокой вероятностью при минимальной координации.

Глава 5: Координация

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

Паттерны выбора лидера

Алгоритмы leader election и устойчивые схемы координации в кластерах.

Читать обзор

Синхронизация часов

Физические часы
  • NTP (Network Time Protocol)
  • GPS синхронизация
  • Clock drift и коррекция
Логические часы
  • Алгоритм Лампорта (happens-before)
  • Векторные часы (causality)
  • Hybrid Logical Clocks

Алгоритмы координации

Взаимное исключение
  • Centralized algorithm
  • Distributed algorithm (Ricart-Agrawala)
  • Token ring algorithm
Выбор лидера
  • Bully Algorithm — выбор узла с макс. ID
  • Ring Algorithm — кольцевой обход
  • Raft Leader Election — современный подход

Глава 6: Именование (Naming)

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

Service Discovery

Как сервисы находят друг друга: реестр, health-check и разрешение имён.

Читать обзор

Плоские имена

Идентификаторы без структуры

Broadcasting:ARP, DHCP
Forwarding:Pointer chains
DHT:Chord, Pastry

Структурированные имена

Иерархические пространства имён

DNS:Доменные имена
File systems:Пути к файлам
X.500:Directory services

Атрибутивные имена

Поиск по атрибутам

LDAP:Directory queries
RDF:Semantic web
Service Discovery:Consul, etcd

Глава 7: Консистентность и репликация

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

CAP-теорема

Компромиссы между согласованностью, доступностью и устойчивостью к разделению сети.

Читать обзор

Data-centric модели

Strict Consistency
Абсолютный порядок всех операций
Sequential Consistency
Все видят одинаковый порядок
Causal Consistency
Сохранение причинно-следственных связей
Eventual Consistency
Консистентность со временем

Client-centric модели

Read Your Writes
Клиент видит свои записи
Monotonic Reads
Монотонность чтения
Monotonic Writes
Порядок записей сохраняется
Writes Follow Reads
Запись после чтения консистентна

Протоколы согласованности

Primary-based

Remote-write, Local-write protocols

Replicated-write

Active replication, Quorum-based

Cache coherence

Write-through, Write-back protocols

Глава 8: Отказоустойчивость

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

Consensus-протоколы

Paxos, Raft и практические схемы достижения согласия при сбоях узлов.

Читать обзор

Модели отказов

Crash failure
Сервер внезапно останавливается
Omission failure
Потеря запросов или ответов
Timing failure
Нарушение временных ограничений
Byzantine failure
Произвольное (злонамеренное) поведение

Консенсус

Paxos

Классический алгоритм консенсуса Лампорта. Фазы: Prepare → Promise → Accept → Accepted.

Two-Phase Commit (2PC)

Протокол атомарного коммита для распределённых транзакций. Координатор → Prepare → Vote → Commit/Abort.

Устойчивость процессов

Репликация

Active и Passive replication для высокой доступности

Группы процессов

Virtual synchrony для согласованного состояния

Recovery

Checkpointing и message logging

Глава 9: Безопасность

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

Zero Trust подход

Практика построения безопасности распределённых систем без доверия к периметру.

Читать обзор

Криптографические основы

Симметричное шифрование
AES, один ключ для шифрования/дешифрования
Асимметричное шифрование
RSA, публичный/приватный ключи
Хеш-функции
SHA-256, проверка целостности

Защита распределённых систем

Защищённые каналы
TLS/SSL, mutual authentication, perfect forward secrecy
Контроль доступа
ACL, capabilities, role-based access control (RBAC)
Управление ключами
PKI, Certificate Authorities, key distribution

Итоги и рекомендации

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

Designing Data-Intensive Applications (DDIA)

Практическое продолжение: как применять фундаментальные идеи в реальных data-intensive системах.

Читать обзор

Сильные стороны

  • Фундаментальный охват теории распределённых систем
  • Алгоритмический подход с доказательствами
  • Примеры на Python делают материал доступнее
  • Глубокое покрытие консистентности и координации
  • Отличная глава по безопасности

Кому подойдёт

  • Студентам, изучающим распределённые системы
  • Инженерам, желающим понять теоретические основы
  • Тем, кто хочет глубже понять алгоритмы консенсуса
  • Подготовка к позициям уровня Staff+ Engineer
  • Исследователям и академическим специалистам

Вердикт: Книга Таненбаума и ван Стина — это фундаментальный учебник, который даёт глубокое понимание принципов построения распределённых систем. В отличие от практических руководств, она объясняет почему системы работают так, а не иначе. Рекомендуется читать вместе с DDIA: Таненбаум даёт теорию, Kleppmann — практическое применение.

Источники

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

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

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