Модуль 7.5: Production — брокеры, gRPC, DevOps
Kafka vs RabbitMQ
Когда Kafka, когда RabbitMQ? Потоки событий против гибкой маршрутизации — сравниваем честно с примерами из жизни.
Redis: кэширование
Разбираемся с Redis — молниеносным хранилищем в памяти. TTL, eviction, cache-aside паттерн и distributed lock через SetNX.
Kafka: очереди и стриминг
Kafka — не просто очередь, это лог событий. Топики, партиции, консьюмер-группы, гарантии доставки и outbox-паттерн на Go.
gRPC + protobuf
gRPC — как REST, но быстрее, строже и с кодогенерацией. Пишем .proto, генерируем Go-код, запускаем сервер с интерцепторами.
Конфигурации и secrets
Как хранить конфиг без хардкода: env переменные, файлы, секреты. Viper, os.Getenv и почему секрет в коде — это CVE.
Docker и docker-compose
Контейнеризируем Go-приложение: multi-stage build, distroless образ, docker-compose для всего стека. Бесшовный деплой.
Observability: метрики, логи, трейсы
Prometheus + Grafana + OpenTelemetry для Go: типы метрик, healthcheck, распределённые трейсы. Знаешь что происходит в prod.
Git и CI/CD
Git Flow в команде, GitLab MR, автоматические pipelines: сборка, тесты, линтер, деплой. От push до production.
Kubernetes: основы
Pod, Deployment, Service — минимальный Kubernetes. Пишем манифесты, деплоим Go-сервис в кластер. Без страха.
Практика: production «Слот»
Итоговая практика модуля: собираем production-стек — Redis-лок слотов + Kafka («бронь создана→напоминание») + gRPC нотификации + Docker + метрики + CI/CD.