Три года назад я за день прочитал книгу "Распределенные системы. Паттерны проектирования" за автороством Брендана Бёрнса.
Автор является одним из тех, кто стоял у истоков kubernetes, поэтому его опыт в проектировании распредленных систем является довольно актуальным:) Книга мне показалось хорошей, но одновременно слишком простой. Но за счет этого она отлично подойдет новичкам вступающим на запутанную дорожку distributed systems:) Книга состоит из 3х частей:
- одноузловые паттерны проектирования
- паттерны проектирования обсуживающих систем
- паттерны проектирования систем пакетных вычислений Все паттерны даются в контексте контейнеров и их оркестрации, Книга содержит практические примеры, для реализации которых используется инсталляция kubernetes'а и его примитвы, такие как pods, deployments, services, etc. Ближе к концу книги вы попробуете использовать helm для разворачивания etcd, kafka и иже с ним.
В первой части рассматриются паттерны:
- sidecar: для https, динамической конфигурации и метрик
- ambassador: для использования шардированного сервиса и для сплита трафика для тестирования разных версий
- adapters: мониторинг, журналирование
Во второй части рассматриваются:
- репликация: для stateless сервсиов, sticky sessions, кеширование, ...
- шардирование: консистеный хеш, шардирование реплицированных сервисов, ...
- scatter-gather: распределенный поиск по документам
- FaaS и events: преимущества и недостатки FaaS, реализация декораторов на функциях
- выбор владельца: локи для распределенных систем
В третьей части рассматриваются паттерны проектирования систем пакетных вычислений:
- системы на основе очередей задач
- событийно-ориентированная пакетная обработка
- координированная пакетная обработка
В общем, книга хороша для начинающих, так как автор просто рассказывает про кучу важных концепций.
#DistributedSystems #SoftwareArchitecture #Architecture #Software #SystemDesign