go-kit ~14 часов 25 уроковпродвинутый
go-kit: курс по микросервисному тулкиту для Go
go-kit — не фреймворк, а набор библиотек для микросервисов: endpoint как универсальная абстракция, транспорт как плагин, сквозные функции (логи, метрики, трейсинг) как middleware. Курс приучает мыслить слоями и строить сервисы, которые не разваливаются под нагрузкой.
Чему научитесь
Чему научитесь
- Понимать архитектуру endpoint → transport → service
- Оборачивать сервисы middleware: логи, метрики, трейсинг
- Подключать HTTP и gRPC транспорты
- Ставить rate limiting и circuit breaker
- Работать с load balancer и discovery (Consul)
- Собирать production-микросервис целиком
Для кого курс
- Разработчикам микросервисов
- Тем, кто перерос монолитный фреймворк
- Инженерам, которые хотят понимание, а не магию
Что понадобится
- Уверенный Go (интерфейсы, горутины, контекст)
- Основы HTTP и gRPC
Программа курса: 25 уроков
- 1Философия go-kit и микросервисыТри слоя, принципы, когда go-kit уместен.~15 мин · что такое go kit, микросервисы go
- 2Endpoint: базовая абстракцияendpoint.Endpoint, обёртки, композиция.~20 мин · go kit endpoint, endpoint абстракция
- 3Service-слойЧистая бизнес-логика, интерфейсы сервиса.~18 мин · go kit service, слой сервиса
- 4Транспорт HTTPkithttp.NewServer, декодеры и энкодеры.~22 мин · go kit http, транспорт go kit
- 5Кодеки: JSON encoding/decodingКастомные ошибки, статусы, error encoder.~18 мин · go kit json, кодеки go kit
- 6Логированиеkitlog, уровни, контекстные логгеры.~18 мин · go kit логирование, kitlog
- 7Инструментирование метрикиPrometheus, request duration, counters.~20 мин · go kit метрики, prometheus go kit
- 8Tracing: OpenTracingJaeger, спаны через endpoint middleware.~20 мин · go kit tracing, jaeger go
- 9Rate limitingjuju/ratelimit, token bucket на endpoint.~18 мин · go kit rate limit, лимитер go kit
- 10Circuit breakersony/gobreaker, состояния, стратегии.~20 мин · circuit breaker go, gobreaker
- 11Load balancer и проксиround robin, random, retry стратегии.~20 мин · go kit load balancer, балансировка go kit
- 12Service discovery: ConsulРегистрация, lookup, инстинкты SD.~22 мин · go kit consul, service discovery go
- 13gRPC транспорт в go-kitgrpctrans.NewServer, proto-сервисы.~22 мин · go kit grpc, grpc transport
- 14Middleware endpointsЛоги/метрики как endpoint-обёртки.~18 мин · go kit endpoint middleware, обёртки endpoint
- 15Мидлвари сервисовДекораторы сервиса, инъекция зависимостей.~18 мин · go kit service middleware, декораторы сервиса
- 16Тестирование endpointsUnit-тесты endpoint и транспорта.~18 мин · тестирование go kit, endpoint тесты
- 17Структура go-kit проектаКаталоги, DI, шаблон большого сервиса.~20 мин · структура go kit, проект go kit
- 18Конфигурация сервисовenv, флаги, viper, секреты.~16 мин · конфигурация микросервисов, env go
- 19Graceful shutdownСигналы, остановка приемников, drain.~18 мин · graceful shutdown go, остановка сервиса
- 20Здоровье сервисов healthcheckliveness/readiness, kit healthcheck.~16 мин · healthcheck go kit, readiness go
- 21Асинхронные операцииАсинхронные endpoint-ы, горутины в сервисе.~20 мин · асинхронность go kit, async endpoint
- 22Публикация событийEvent publisher, NATS/Kafka-обзор.~20 мин · события микросервисы, event publisher go
- 23Безопасность: аутентификацияJWT на endpoint, токены между сервисами.~20 мин · аутентификация go kit, jwt микросервисы
- 24Развертывание микросервисовDocker, оркестрация, наблюдаемость.~20 мин · деплой микросервисов, docker go
- 25Итоговый проект: микросервис заказовПолный сервис: endpoint, метрики, breaker, gRPC.~30 мин · проект go kit, микросервис заказов
Вопросы о курсе
go-kit или Kratos/go-zero?
go-kit даёт строительные блоки без жёсткого каркаса: больше контроля, больше ручной работы. Фреймворки дают быстрый старт, но свои правила.
Актуален ли go-kit?
Да, он стабилен и используется в проде; третий пересмотр API остановился на endpoint как ядре.