К основному содержимому
#DistributedSystems

Designing Distributed Systems

#DistributedSystems #Architecture #SoftwareArchitecture #SystemDesign #Software #SoftwareDevelopment

Автор книги является сооснователем kubernetes, поэтому его опыт в проектировании распределенных систем является довольно актуальным:) Книга мне показалось хорошей, но одновременно слишком простой. Но за счет этого она отлично подойдет новичкам вступающим на запутанную дорожку distributed systems:)

Книга состоит из 3х частей:

  • одноузловые паттерны проектирования
  • паттерны проектирования обслуживающих систем
  • паттерны проектирования систем пакетных вычислений

Все паттерны даются в контексте контейнеров и их оркестрации, книга содержит практические примеры, для реализации которых используется инсталляция kubernetes и его примитивы, такие как pods, deployments, services, etc. Ближе к концу книги вы попробуете использовать helm для разворачивания etcd, kafka и иже с ним.

В первой части рассматриваются паттерны:

  • sidecar: для https, динамической конфигурации и метрик
  • ambassador: для использования шардированного сервиса и для сплита трафика для тестирования разных версий
  • adapters: мониторинг, журналирование

Во второй части рассматриваются:

  • репликация: для stateless сервсиов, sticky sessions, кеширование, …
  • шардирование: консистентный хеш, шардирование реплицированных сервисов, …
  • scatter-gather: распределенный поиск по документам
  • FaaS и events: преимущества и недостатки FaaS, реализация декораторов на функциях
  • ownership election: локи для распределенных систем

В третьей части рассматриваются паттерны проектирования систем пакетных вычислений:

  • системы на основе очередей задач
  • событийно-ориентированная пакетная обработка
  • координированная пакетная обработка

#DistributedSystems #Architecture #SoftwareArchitecture #SystemDesign #Software #SoftwareDevelopment