bart
PRO
- Сообщения
- 53.084
- Реакции
- 29.253
Распределённые системы на Go
Автор: Joel Bryan JulianoЯзык: английский
Написать одно приложение на Go несложно. Гораздо труднее добиться, чтобы шесть сервисов надёжно работали вместе: проверяли права доступа, не теряли сообщения, переживали падение соседей и оставляли понятный след при каждом сбое. Эта англоязычная книга Joel Bryan Juliano для тех, кому уже мало одного приложения и кто хочет понять, как устроены надёжные бэкенд-платформы.
Книга не разбирает инструменты по отдельности, как обычные туториалы. В ней от главы к главе строится одна сквозная система, и каждое архитектурное решение сразу становится переиспользуемым кодом. Вы разберётесь, почему распределённые сервисы ломаются в продакшене, и научитесь закладывать защиту от этого заранее, а не чинить всё после очередного инцидента.
Материал пригодится, если вы готовитесь к позиции backend-инженера уровня senior, проектируете микросервисы в команде или устали искать причину каждого тайм-аута между сервисами наугад. Код вы будете писать сами, поэтому в итоге у вас останется рабочая платформа, на которой можно строить свои проекты.
Distributed Systems in Go («Распределённые системы на Go») — практическое руководство по проектированию, разработке и развёртыванию отказоустойчивых распределённых систем на языке Go. Автор опирается на собственный опыт создания и эксплуатации облачных распределённых систем. Книга охватывает весь путь: от отдельных HTTP-сервисов до полноценной микросервисной архитектуры.
Рано или поздно Go-разработчику становится тесно в рамках одного приложения. Приходится строить несколько взаимодействующих сервисов, настраивать аутентификацию, хранение данных и обмен сообщениями, а система должна работать стабильно даже при сбоях.
Теорема 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
Продажник:
Для просмотра вы должны войти или зарегистрироваться.
Скачать:
Скрытое содержимое могут видеть только пользователь группы: PRO
Качать без ограничений Купить доступ к 1 теме
Качать без ограничений Купить доступ к 1 теме
Скрытое содержимое для пользователей: Ferr