раздел 24
Микросервисы (Go)
Восемь недель по сборке системы как в BigTech: контракты, чистая архитектура, Kafka, Envoy, observability.
Начать раздел
Хочу пройти
Не получилось изменить список. Попробуй ещё раз.
Без входа у каждого урока видно начало. Войди, чтобы читать целиком, отмечать пройденное и решать задачи. войти
Уроки раздела в премиуме: 1 200 ₽ в месяц или 10 000 ₽ в год. Оплата пока не подключена, доступ открывается промокодом. ввести промокод
Уроки раздела
- Курс: микросервисы как в BigTech (8 недель)
- Неделя 1: контракты, OpenAPI, Protobuf, три сервиса
- Неделя 2: чистая архитектура, слои, тесты, моки
- Неделя 3: Postgres для Order и Inventory, JSONB, миграции
- Неделя 4: testcontainers, env config, платформенная библиотека, DI
- Неделя 5: Kafka, сага, Idempotency-Key, AnalyticsService на ClickHouse
- Неделя 6: AuthService, gRPC, Postgres, Redis sessions
- Неделя 7: Envoy gateway, ext_authz, NotificationService с Telegram
- Неделя 8: observability на zap, ELK, Prometheus, Grafana, OpenTelemetry
Понятия курса
Понятия разобраны внутри уроков. Нажми на понятие, чтобы открыть урок, где оно объясняется.
Старт
- Курс: микросервисы как в BigTech (8 недель)Что собираем за восемь недель, как разложен материал, какие пререкизиты. Старт.урок 1 · Курс: микросервисы как в BigTech (8 недель)
Контракты и сервисы
- Неделя 1: контракты, OpenAPI, Protobuf, три сервисаgo.work, OpenAPI v3 для HTTP, Protobuf для gRPC. Order, Inventory, Payment с минимальной in-memory логикой. ogen и buf.урок 2 · Неделя 1: контракты, OpenAPI, Protobuf, три сервиса
- Неделя 2: чистая архитектура, моки, тесты, coverageСлои api/service/repository/client с конвертерами между моделями. mockery, suite-тесты, coverage badge через Gist.урок 3 · Неделя 2: чистая архитектура, слои, тесты, моки
Хранилища
- Неделя 3: Postgres для Order и Inventory, JSONB, миграцииЗаменяем in-memory на Postgres у Order и Inventory. У каталога enum категорий и JSONB-атрибуты, GIN-индексы. Миграции через goose, docker-compose с healthcheck.урок 4 · Неделя 3: Postgres для Order и Inventory, JSONB, миграции
- Неделя 4: testcontainers, env config, платформенная библиотека, DI12-factor конфигурация, /platform/logger /migrator /healthcheck. internal/app с DI. Интеграционные и e2e-тесты через testcontainers.урок 5 · Неделя 4: testcontainers, env config, платформенная библиотека, DI
Асинхронность и шина
- Неделя 5: Kafka, сага, Idempotency-Key, AnalyticsService на ClickHouseKafka в KRaft, события OrderPaid/OrderCancelled/ShipAssembled с correlation_id. Transactional outbox в Order, Idempotency-Key в Payment. Седьмой сервис AnalyticsService потребляет события в ClickHouse и отдаёт бизнес-аналитику.урок 6 · Неделя 5: Kafka, сага, Idempotency-Key, AnalyticsService на ClickHouse
Безопасность и edge
- Неделя 6: AuthService, gRPC, Postgres, Redis sessionsRegister, Login, Whoami, GetUser. Postgres для пользователей, Redis для сессий с TTL 24 часа. bcrypt, gRPC interceptor, HTTP middleware.урок 7 · Неделя 6: AuthService, gRPC, Postgres, Redis sessions
- Неделя 7: Envoy gateway, ext_authz, NotificationService с TelegramEnvoy как единая точка входа, ext_authz делегирует AuthService.Whoami. NotificationService слушает события и шлёт в Telegram.урок 8 · Неделя 7: Envoy gateway, ext_authz, NotificationService с Telegram
Observability
- Неделя 8: zap, ELK, Prometheus, Grafana, OpenTelemetryСтруктурированные логи через zap в ELK. Метрики через Prometheus client_golang. Grafana-дашборды. Алерт в Telegram через Alertmanager. Распределённые трейсы через OpenTelemetry.урок 9 · Неделя 8: observability на zap, ELK, Prometheus, Grafana, OpenTelemetry
Устойчивость
- Supervision trees, let it crashИерархия супервизоров следит за воркерами и перезапускает их по стратегии (one for one, one for all). Падение изолируется и лечится перезапуском в чистое состояние, а не ручной обработкой каждой ошибки. Свой урок в этом разделе не нужен: тема целиком разобрана в Gleam-треке (акторы, супервизоры, три стратегии перезапуска, let it crash).тема без урока