gRPC on Go: Contracts, Streaming, Production

Научитесь связывать Go-сервисы по gRPC так, чтобы контракт переживал релизы, а вызовы переживали отказы соседей: protobuf и проверка совместимости через buf, четыре формы вызовов включая стриминг с обратным давлением, коды статусов и богатые ошибки, дедлайны и ретраи с бюджетом попыток сквозь цепочку, mTLS и авторизация по методам, тесты через bufconn, метрики и клиентская балансировка. Финал — капстоун из трёх частей: REST-фасад с двумя версиями контракта одновременно, пара сервисов «заказы и журнал событий» и защищённый сервис, который принимается прогоном с отказами. Плюс профессиональные блоки: что возвращать вместо строковых ошибок, когда стрим дешевле серии вызовов, почему обычный балансировщик плохо дружит с gRPC, дедлок в bidi-стриме, health и reflection, бенчмарки по реальным числам. Лабораторные на живом gRPC-сервере и клиенте в песочнице.

Чему вы научитесь

О курсе

Этот курс — про то, <strong>как связывать Go-сервисы по gRPC так, чтобы контракт переживал релизы, а вызовы переживали отказы соседей</strong>. От первого .proto до сервиса, который держит дедлайны, обслуживает старых и новых клиентов одновременно и понятен на дежурстве по метрикам и трассировке.

Внутри — <strong>лабораторные на живом gRPC</strong>: ваш сервер и клиент поднимаются в песочнице с protoc, buf и генераторами, и зачёт ставится по поведению. К серверу подключается клиент старой версии контракта; подписчика стрима притормаживают и считают, сколько сервер вытянул впрок; подсовывают сертификат от чужого CA; гасят бэкенд и ждут переключения трафика. Ваши тесты прогоняются против испорченных реализаций сервиса и обязаны упасть на каждой. Фикстуры подменяются: захардкодить ответ не получится.

Контракт разобран как публичный API: какие правки .proto ломают клиентов, зачем reserved и запрет на переиспользование номеров, чем oneof отличается от optional и как держать v1 и v2 в одном сервере. Ошибки, дедлайны и ретраи разобраны сквозь цепочку сервисов, а перехватчики, mTLS и лимиты — как периметр, который выдерживает чужие вызовы.

Финал — <strong>капстоун из трёх частей</strong>: REST-фасад через grpc-gateway с v1 и v2 одновременно поверх сервиса каталога; два сервиса «заказы и журнал событий» поверх общего журнала с проверкой сумм, кодов ошибок и порядка событий в потоке; сервис OpsGuard с авторизацией, дедлайнами и ретрай-клиентом, который принимается прогоном с отказами: неавторизованные вызовы, зависшие операции, недоступная зависимость. Курс готовит одновременно к проду и к вопросам про gRPC на собеседовании: каждый модуль заканчивается практикой, которую спрашивают в сильных командах.

Вы также можете задать любой вопрос по курсу у поддержки t.me/mentorix_support

Для кого этот курс

Для Go-разработчиков, которые пишут сервисы и хотят собрать первую версию gRPC-контракта так, чтобы она пережила следующие релизы, а вызовы между сервисами переживали отказы зависимостей.

Для тех, кто уже использует gRPC по примерам из документации, но версионирование контракта, стриминг, дедлайны и балансировка до сих пор вызывают вопросы — и на собеседованиях, и на дежурстве.

Подойдёт бэкендерам с других языков, знающим основы Go: gRPC и protobuf разбираются с нуля, окружение с protoc, buf и генераторами уже в песочнице, ставить ничего не нужно.

Программа курса

Модулей: 8, уроков: 29. Задачи с кодом проверяются автоматически.

  1. Контракт и первый сервис

  2. Контракт как публичный API

  3. Стриминг: три формы и обратное давление

  4. Ошибки, дедлайны, ретраи

  5. Перехватчики, метаданные, безопасность

  6. Тестирование gRPC-сервисов

  7. Производительность и эксплуатация

  8. Капстоун: межсервисный контур

Стоимость курса: 8990 ₽

Открыть курс на Mentorix · Все курсы