Связанная книга
Kubernetes Patterns
Детальный каталог паттернов для production deployments в K8s.
Designing Distributed Systems (Распределенные системы. Паттерны проектирования)
Авторы: Brendan Burns
Издательство: O'Reilly Media, 2018
Объём: 162 страниц
Паттерны от Brendan Burns: sidecar, ambassador, scatter/gather, work queues и batch processing.
Оригинал
ПереводДокументальные фильмы
Структура книги
Single-Node Patterns
Паттерны для одного узла: sidecar, ambassador, adapter. Композиция контейнеров в рамках Pod.
Multi-Node Patterns
Serving patterns: replicated, sharded, scatter/gather. Масштабирование и отказоустойчивость.
Batch Patterns
Work queues, event-driven batch, coordinated processing. Паттерны для обработки данных.
Single-Node Patterns
Паттерны для организации нескольких контейнеров на одном узле (в одном Pod). Основаны на принципе разделения ответственности.
Sidecar Pattern
Дополнительный контейнер расширяет функциональность основного приложения без изменения его кода.
Примеры использования:
- Log shipping (Fluentd, Filebeat)
- Configuration sync (git-sync)
- SSL termination
Pod
Ambassador Pattern
Proxy-контейнер упрощает доступ к внешним сервисам, скрывая сложность подключения.
Примеры использования:
- Database connection pooling
- Service mesh proxy (Envoy)
- Circuit breaker
Proxy скрывает детали подключения
Adapter Pattern
Контейнер-адаптер преобразует вывод приложения в стандартный формат.
Примеры использования:
- Prometheus exporter
- Log format normalization
- Legacy API wrapper
Нормализация форматов и метрик
Multi-Node Serving Patterns
Глубокое погружение
Designing Data-Intensive Applications
Kleppmann о репликации, партиционировании и consistency.
Replicated Load-Balanced Services
Идентичные реплики за load balancer. Простейший паттерн масштабирования для stateless сервисов.
Sharded Services
Данные разделены между узлами по ключу. Каждый shard обрабатывает свой subset данных.
Sharding strategies:
- Hash-based (consistent hashing)
- Range-based (geographic, time)
- Directory-based (lookup table)
Challenges:
- Hot spots
- Rebalancing
- Cross-shard queries
Scatter/Gather Pattern
Запрос распределяется на все узлы параллельно, результаты агрегируются.
Используется в search engines, distributed databases, analytics.
Batch Computational Patterns
Связанная книга
Building Microservices
Sam Newman о workflow orchestration и choreography.
Work Queue Systems
Producer-consumer паттерн для параллельной обработки задач.
Source
Генерирует work items
Queue
Buffer между stages
Workers
Parallel processing
Event-Driven Batch Processing
Обработка запускается событиями (новый файл, сообщение в очереди, webhook).
File upload / webhook / message queue
Coordinated Batch Processing
Многоэтапные pipelines с зависимостями между stages.
Реализуется через workflow engines: Airflow, Argo Workflows, Temporal.
Ownership и Functions as a Service
Hands-Off Table
Матрица ответственности: кто владеет каким компонентом системы. Критично для incident response и maintenance.
FaaS Decorator Pattern
Functions как decorators для добавления cross-cutting concerns: authentication, logging, rate limiting.
Декораторы добавляют cross-cutting concerns
Применение на System Design интервью
Полезные концепции
- Sidecar для cross-cutting concerns
- Ambassador для service mesh
- Sharded services для scale
- Scatter/Gather для search
- Work queues для batch processing
Вопросы, где пригодится
- «Как добавить logging без изменения кода?»
- «Как масштабировать stateful сервис?»
- «Как реализовать distributed search?»
- «Как обработать миллионы событий?»
