TGViewer
DevOps by REBRAIN DevOps by REBRAIN @rebrain_devops · 28.8K subscribers
Post #6291 3.16K
Как собрать полноценный REST/gRPC сервис на Go?

Хендлер на Go, который отдаёт JSON, пишется за вечер. Проблемы начинаются, когда этот код уезжает в Kubernetes.

При деплое под получает SIGTERM и обрывает запросы на середине. Клиент уже закрыл соединение, а запрос к PostgreSQL продолжает работать и грузить базу. В логах тысячи строк, и по ним не понять, какие относятся к упавшему запросу. Тесты на моках зеленые, а с реальной базой сервис ломается. Образ собран плносью на golang и весит сотни мегабайт, из-за чего деплой идёт дольше.

Для каждой из этих проблем есть решение: Graceful Shutdown, context.Context на всех слоях, slog с Request ID, интеграционные тесты с настоящей базой и сборка на scratch. Под всем этим нужна архитектура, в которой одну бизнес-логику можно подключить и к REST, и к gRPC без копирования кода.

Всё это мы собрали в новом практикуме «Golang: полноценный REST/gRPC сервис на Go». В нём 14 уроков, уровень Middle. В каждом модуле есть задание, и сервис собирается из них по шагам.

Что в программе:

🟢Проектирование структуры Go-приложения по слоям Clean Architecture
🟢Реализация gRPC-серверов и Unary RPC методов на Go
🟢Создание RESTful эндпоинтов с использованием роутера go-chi
🟢Управление таймаутами и отменой запросов с помощью context.Context
🟢Написание интеграционных тестов с реальной БД через testcontainers-go

Итог - микросервис каталога продуктов с REST и gRPC, валидацией, Graceful Shutdown, тестами и образом на scratch.


🎁 До 11 октября действует скидка 5000 рублей

↘️ Узнать подробности и записаться

Кому подойдёт: Go-разработчикам уровня Junior+, бэкендерам, которые переходят на Go с PHP, Python или Java, и DevOps/SRE-инженерам, которым нужно понимать, как устроены Go-сервисы. Для старта нужно знать базовый синтаксис Go (типы данных, структуры, интерфейсы, горутины), работать в командной строке Linux и иметь базовые навыки Docker.
  • 👍 4
More from @rebrain_devops
  1. Oct 16, 2026Обновили курс Redis: теперь на Redis 8 и с тренажёрами В Redis 8 в ядро вошли Query Engine…
  2. Oct 16, 2026Обновили курс Kubernetes Admin Собрали всю обратную свзяь от вас и приняли решение выпусти…
  3. Oct 16, 2026Post #6355
  4. Oct 16, 2026photo post
  5. Oct 15, 2026Новый курс: Highload: Monitoring & Observability Алерт пришёл, дашборд красный, а чтобы на…
  6. Oct 15, 2026🗓️ Расписание вебинаров на сегодня ⏰ 19:00 МСК - Мониторинг MySQL и PostgreSQL c PMM 🔗 Р…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →