💻 Программирование [Joel Bryan Juliano] Распределённые системы на Go (2026)

  • ОФОРМИТЬ ПОДПИСКУ

Calvin Candie

Вечный

Calvin Candie

Вечный
2 Сен 2018
54,974
12,458
Автор: Joel Bryan Juliano

Название: Распределённые системы на Go

cover.png

Информация о курсе:
  • Год: 2026

Описание:
Эта книга, написанная Джоэлем Брайаном Джулиано, предлагает глубокое погружение в создание надёжных и отказоустойчивых распределённых систем на языке Go. Она предназначена для тех, кто уже знаком с разработкой отдельных приложений и стремится освоить принципы построения сложных, взаимодействующих сервисов. Книга фокусируется на практическом применении знаний, а не на теоретических рассуждениях.

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

Основная аудитория книги – это Go-разработчики, которые готовятся к позиции backend-инженера уровня senior, проектируют микросервисы в команде или сталкиваются с трудностями при отладке сложных систем, где взаимодействие происходит между множеством сервисов. Книга полезна тем, кто устал искать причину каждого тайм-аута между сервисами наугад. В результате работы с книгой, читатель получит рабочую платформу, на которой можно строить собственные проекты.

"Distributed Systems in Go" («Распределённые системы на Go») – это практическое руководство, охватывающее весь путь от отдельных HTTP-сервисов до полноценной микросервисной архитектуры. Автор опирается на свой собственный опыт создания и эксплуатации облачных распределённых систем. Книга охватывает ключевые аспекты, такие как теорема CAP и базовые принципы распределённых вычислений, но в первую очередь фокусируется на практической эксплуатации и решении реальных проблем, возникающих в продакшене.

В процессе работы с книгой, читатель столкнётся с типичными проблемами, возникающими при работе с распределёнными системами, такими как неспособность потребителей Kafka успевать за потоком сообщений, обрывы межсервисных запросов из-за тайм-аутов и сложность поиска источника проблемы. Книга предлагает практические решения для этих проблем, включая реализацию аутентификации, работу с базами данных, очереди сообщений, gRPC, механизмы отказоустойчивости и распределённую трассировку.

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

Что вы изучите и создадите:

  • HTTP-сервисы: Разработка HTTP-сервисов на Go с использованием компонуемых промежуточных обработчиков (middleware) без необходимости подключения дополнительных фреймворков.
  • Аутентификация и безопасность: Реализация JWT-аутентификации с цифровой подписью ECDSA и подключаемыми агентами аутентификации.
  • PostgreSQL и управление данными: Организация работы с базами данных, выполнение миграций без остановки системы и реализация паттерна Transactional Outbox.
  • Apache Kafka: Создание производителей и потребителей сообщений, управление обратным давлением (backpressure) и использование очередей недоставленных сообщений (Dead Letter Queue).
  • gRPC и межсервисное взаимодействие: Настройка взаимодействия между сервисами с механизмами повторных попыток, тайм-аутами и автоматическими выключателями (Circuit Breaker).
  • Распределённая согласованность: Применение паттерна Saga, ключей идемпотентности и механизмов сверки данных (Reconciliation).
  • Мониторинг и наблюдаемость: Внедрение структурированного логирования с помощью slog, сбор метрик через Prometheus и распределённая трассировка с использованием OpenTelemetry.
  • Тестирование и отказоустойчивость: Тестирование компонентов на реальной инфраструктуре с помощью Testcontainers, моделирование сбоев и применение подходов хаос-тестирования.
  • Развёртывание в Kubernetes: Подготовка конфигурационных манифестов и развёртывание полноценной распределённой системы, состоящей из шести сервисов.
Практический результат:

Главное в книге – последовательная сборка настоящей системы. Инструменты не изучаются в отрыве от задачи, каждый появляется там, где он действительно нужен. Все примеры кода полные и самодостаточные. Читатель осваивает архитектурные подходы и попутно собирает собственную библиотеку повторно используемых компонентов. В итоге у вас будет работающая распределённая система из шести сервисов, готовая к развёртыванию, и платформенный SDK, с которым новые сервисы создаются быстрее и проще.

Целевая аудитория:

Книга для Go-разработчиков, которые уже умеют создавать отдельные приложения и сервисы и хотят перейти к проектированию полноценных распределённых систем. Особенно полезной она будет инженерам, которые работают с микросервисами, облачной инфраструктурой, базами данных и асинхронной обработкой сообщений.

Если вы копировали middleware, не до конца понимая, как он устроен, разбирались с ошибками context deadline exceeded или искали причину сбоя сразу в нескольких связанных сервисах, книга поможет привести знания в систему и даст практические инструменты для таких задач.

Для кого подойдёт:

  • Go-разработчики, которые переходят от отдельных приложений к микросервисной архитектуре
  • Backend-инженеры, работающие с Kafka, PostgreSQL и gRPC в продакшене
  • DevOps- и SRE-специалисты, которые отвечают за наблюдаемость и отказоустойчивость сервисов в Kubernetes
  • Тимлиды и архитекторы, проектирующие облачные распределённые платформы
  • Разработчики, которые готовятся к собеседованиям на позиции middle+ и senior в backend
Что получите:

  • Готовую к развёртыванию распределённую систему из шести сервисов на Go
  • Собственный платформенный SDK для быстрой разработки новых сервисов
  • Практические реализации паттернов Saga, Transactional Outbox, Circuit Breaker и Dead Letter Queue
  • Настроенный стек наблюдаемости: slog, Prometheus и OpenTelemetry
  • Навыки тестирования с Testcontainers, хаос-тестирования и деплоя в Kubernetes

Похожие материалы:

Продажник:
Скрытое содержимое доступно для зарегистрированных пользователей!


Скачать: