Открыто

Микросервисы, как в BigTech 2.0 [Тариф Стандарт] [Олег Козырев]

Тема в разделе "Курсы по программированию", создана пользователем Топикстартер, 16 июн 2025.

Основной список: 57 участников

Резервный список: 8 участников

  1. 16 июн 2025
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба

    Складчина: Микросервисы, как в BigTech 2.0 [Тариф Стандарт] [Олег Козырев]

    Screenshot_20250616_200824.png

    Научись разрабатывать высокопроизводительные, масштабируемые микросервисы, как в. ВК Yandex OZON СБЕР Тинькофф, и увеличь свои шансы на трудоустройство в BigTech или повышение грейда.

    Обучение подойдет для Junior и Middle backend-разработчиков

    Для курса нужно:
    • Знать основы Golang - все практические примеры будут на нем
    • Уметь пользоваться git, чтобы качественно работать с кодовой базой
    Курс адаптирован под частые проблемы backend-a, которые встречаются на работе
    Вся подкапотная микросервисов в одном обучении
    8 недель беспощадного кодинга

    Программа

    Неделя 1 HTTP и gRPC: основы сетевого взаимодействия микросервисов

    С первой недели начнёшь собирать свой проект на микросервисной архитектуре. На практике освоишь два ключевых способа общения между сервисами — через HTTP и gRPC. Будешь писать API, запускать серверы, подключать клиентов и связывать между собой отдельные сервисы

    Блок 1. HTTP в Go: от простого сервера до автогенерации API
    • Что такое HTTP?
    • HTTP/1.1, HTTP/2 и HTTP/3 — зачем придумали и какие проблемы решают
    • Что такое REST API и какие у него ограничения
    • Создаём простой HTTP-сервер на chi
    • Первая middleware на Go: как расширить поведение ручек сервера
    • Что такое OpenAPI и как описывать схемы
    • Генерация HTTP API на основе OpenAPI схемы
    Блок 2. gRPC в Go: быстрый и типобезопасный способ общения сервисов
    • Как устроены gRPC и protobuf, где они применяются и в чём их сила
    • Пишем первый .proto-файл, учимся подключать зависимости
    • Генерация Go-кода через buf
    • Запускаем gRPC-сервер и подключаем к нему клиента
    • Что такое обратная совместимость и как её проверять при изменениях контракта (buf-breaking)
    • gRPC-Gateway: добавляем HTTP-интерфейс к gRPC-сервису
    • Автогенерация Swagger-описания из .proto
    • Валидация входящих данных через плагин protoc-gen-validate
    • Пишем свой первый gRPC-интерцептор
    Неделя 2 Архитектура и тесты: строим проект по-взрослому
    На этой неделе ты перестанешь писать «всё в одном файле» и начнёшь проектировать микросервисы по слоям: API, сервис, репозиторий. Освоишь архитектурные подходы и научишься писать unit-тесты — не формально, а так, чтобы реально ловить баги и не бояться менять код

    Блок 3. Архитектура проекта на Go: чисто, понятно, гибко
    • Что такое архитектура и зачем она нужна (луковая, гексагональная, чистая — простыми словами)
    • Какие бывают слои и как они связаны: API, сервис, репозиторий, клиенты
    • Как структурировать проект на Go
    • Создаём repository-слой: работа с базой через интерфейсы
    • Пишем service-логику: бизнес-правила без привязки к API
    • Разбираемся с API-слоем: как принимать и отдавать данные
    • Добавляем клиентские обёртки: например, вызов Payment Service из Order Service
    Блок 4. Unit-тестирование сервисов на Go: тесты, которые работают
    • Что такое юнит-тест и как он отличается от интеграционного
    • Тестируем простые функции: начинаем с базы
    • Как тестировать сервисную логику: используем тестовые сьюты
    • Как работать с моками: подключаем mockery и подменяем зависимости
    • Как замокать базу и зачем это может быть удобно
    • Выводим покрытие в README.md — пусть CI не зря работает
    Неделя 3 Базы данных и Docker: сервисы обретают долговременное хранилище
    Теперь твои сервисы начнут работать с настоящими базами данных — PostgreSQL и MongoDB. А чтобы не разворачивать всё вручную, ты научишься поднимать инфраструктуру через Docker Compose: базы, окружение, зависимости. Пока без упаковки самих сервисов — только окружение, как в настоящем проекте

    Блок 5. Docker и Docker Compose: инфраструктура как код
    • Что такое Docker и зачем он нужен
    • Пишем свой первый Dockerfile
    • Что такое docker-compose и как с его помощью поднимать инфраструктуру
    • Поднимаем базу данных и настраиваем сетевое взаимодействие между контейнерами
    Блок 6. Работа с PostgreSQL в Go: SQL, но по-человечески
    • Зачем микросервисам нужна реляционная база — и почему PostgreSQL
    • Запускаем PostgreSQL через Docker Compose
    • Создаём и накатываем миграции с помощью goose
    • Пишем SQL-запросы через pgx и squirrel
    • Интегрируем PostgreSQL в архитектуру сервиса: репозиторий, модели, конверторы
    Блок 7. Работа с MongoDB в Go: когда не нужен SQL
    • Что такое MongoDB и где она выигрывает у реляционных решений
    • Поднимаем MongoDB через Docker Compose и осваиваем базовые CRUD-операции
    • Интеграция MongoDB в структуру проекта: структура, запросы, подходы
    Неделя 4 Конфигурация, DI контейнер и интеграционные тесты: собираем всё воедино
    На этой неделе ты сделаешь свои сервисы гибкими, управляемыми и тестируемыми. Настроишь конфигурацию через переменные окружения, внедришь DI-контейнер, напишешь первые интеграционные и e2e-тесты, а ещё — начнёшь строить свою собственную платформенную библиотеку, как в настоящих проектах

    Блок 8. Конфигурация: как грамотно хранить параметры сервиса и передавать их при запуске
    • Что такое конфигурация и зачем выносить параметры из кода
    • Работа с переменными окружения (env) — самый частый способ настройки
    Блок 9. Платформенная библиотека: общие компоненты для всех
    • Что такое платформенная библиотека и зачем её выделять
    • Пишем health check для grpc сервера
    • Создаём логгер на основе zap и настраиваем формат логов, единый для всех сервисов
    • Разрабатываем удобный менеджер закрытия ресурсов для обеспечения graceful shutdown
    Блок 10. DI-контейнер: управляем зависимостями красиво
    • Что такое инверсия зависимостей и зачем она тебе
    • Как выглядит простой DI-контейнер на Go и как его написать
    • Интеграция DI в сервис: как это облегчает тестирование и конфигурирование
    Блок 11. Интеграционное и E2E-тестирование: идём глубже
    • Интеграционные тесты для базы: используем сьюты, структуру проекта и тестовые данные
    • End-to-End тесты сервисов: проверяем всю цепочку работы через ginkgo, gomega и testcontainers-go
    • Как запускать тесты автоматически и проверять результат до релиза
    Неделя 5 Kafka, события и асинхронная магия микросервисов
    Выйдешь за пределы прямых запросов и начнёшь выстраивать событийное взаимодействие между сервисами. Познакомишься с Apache Kafka, научишься поднимать брокер в KRaft-режиме, писать продюсеров и консьюмеров, обрабатывать события и строить устойчивые, слабо связанные микросервисы. Плюс — сделаешь сервисы Assembly и Notification, и подключишь Telegram-бота

    Блок 12. Apache Kafka в Go: шина событий своими руками
    • Что такое Apache Kafka и зачем она нужна микросервисам
    • Как работает Kafka в KRaft-режиме (без ZooKeeper)
    • Поднимаем Kafka с одним брокером через Docker Compose
    • Пишем продюсера и консьюмера на Go
    • Создаём consumer group и обрабатываем события
    • Интегрируем Kafka в архитектуру: DI, слои, обёртки
    Блок 13. Уведомления в Telegram: живой отклик системы
    • Как зарегистрировать Telegram-бота и подключить его к сервису
    • Используем шаблоны Go для генерации сообщений
    • Разделяем логику по слоям: бот, отправка, шаблоны, бизнес-логика
    Неделя 6 Redis и аутентификация: защищаем вход и храним сессии
    Реализуешь полноценную систему аутентификации. Разберёшься, как организовать вход по логину и паролю, как хранить сессии, и как проверять доступ к ручкам gRPC. На этой неделе в проект войдёт Redis как хранилище сессий с TTL и базовыми структурами данных

    Блок 14. Redis в Go: быстрое и удобное хранилище
    • Что такое Redis и зачем он нужен в микросервисной архитектуре
    • Какие структуры данных в Redis используются на практике: key-value, hashmap, set
    • Работа с TTL — автоматическое удаление сессий
    • Запуск Redis через Docker Compose
    • Интеграция Redis в сервис: клиент, DI, обёртка, сохранение и проверка сессий
    Блок 15. Аутентификация и авторизация: сессии, токены и права доступа
    • Идентификация, аутентификация, авторизация — в чём разница
    • Подходы к аутентификации: сессии против JWT — плюсы и минусы
    • Реализуем API для работы с JWT
    • Научимся сохранять сессию в Redis с TTL 24 часа
    • Добавим интерцептор, валидирующий сессию на gRPC-ручках
    Неделя 7 Об Observability не шутят: логи, метрики и трейсы
    Внедришь в систему все три столпа наблюдаемости: логи, метрики и трейсы. Научишься собирать данные через OpenTelemetry Collector, отображать метрики в Grafana, логи — в Kibana, а трейсы — в Jaeger. Настроишь алерты на важные события и выведешь нотификации в Telegram

    Блок 16. Мониторинг сервисов через OpenTelemetry
    • Как устроена система наблюдаемости: логирование, метрики, трассировка
    • Что такое OpenTelemetry и зачем нужен Collector
    • Сбор логов через zap → OpenTelemetry Collector → Elasticsearch → Kibana
    • Сбор метрик через Prometheus и OpenTelemetry Collector
    • Отображение данных в Grafana: метрики по сервисам и событиям
    • Подключение трейсов в Jaeger и визуализация прохождения запросов
    • Настройка алертов через Alertmanager с отправкой в Telegram
    • Вынос общих обёрток и инструментов в платформенную библиотеку
    Неделя 8 Envoy: единая точка входа и контроль доступа на входе
    Настроишь центральную точку входа в систему — через Envoy. Научишься маршрутизировать HTTP и gRPC-запросы, прокидывать заголовки, а главное — реализуешь проверку валидности сессии перед каждым запросом через вызов IAM-сервиса. Всё это будет работать в Docker Compose и интегрировано в проект

    Блок 17. Envoy как gateway: маршрутизация, защита, удобство
    • Что такое Envoy и зачем он нужен в микросервисной архитектуре
    • Поднимаем Envoy в Docker Compose и настраиваем как точку входа в систему
    • Маршрутизация HTTP-запросов: настройка маршрутов, хостов, портов
    • Маршрутизация gRPC-запросов с поддержкой grpc_json_transcoder
    • Интеграция IAM-проверки: Lua-скрипт, выполняющий запрос на валидацию сессии
    • Как спрятать все сервисы за Envoy и оставить наружу только одну точку доступа
    [/spoiler]

    Преподаватель и автор курса:
    Олег Козырев

    NDASenior Engineer: разрабатывает платформу для контроля доступов к продуктовым сервисам
    - HighLoad++ 2024Спикер: выступал с докладом по декларативной платформе управления доступом и являлся информационным партнером конференции
    - Ozon Tech: ЛогистикаSenior Engineer: разрабатывал сервисы организации перевозок товаров продавца на склад
    - Ozon Tech: МоментыSenior Engineer: разрабатывал систему модерации «рилсов» внутри приложения Ozon
    - Ozon Tech: МаркетплейсMiddle Engineer: разрабатывал сервис, который отслеживает своевременность доставки посылок
    - Route 256Преподаватель и тьютор: менторил и преподавал курсы по построению микросервисов в школе Ozon Tech
    - YaTalksВедущий конференции: вел второй день конференции по программированию от Яндекса

    Тариф Стандарт
    • 60 практических уроков
    • Еженедельные встречи с ответами на вопросы по курсу и ДЗ
    Цена 59900 руб
    Скрытая ссылка
     
    Последнее редактирование модератором: 19 июн 2025
    1 человеку нравится это.
  2. Последние события

    1. alex4578
      alex4578 участвует.
      15 сен 2025 в 23:25
    2. Korjick
      Korjick не участвует.
      15 сен 2025 в 22:17
    3. bkpage
      bkpage не участвует.
      14 сен 2025 в 13:18
    4. Victorq
      Victorq не участвует.
      14 сен 2025 в 13:05
  3. Обсуждение
  4. 20 июн 2025
    #2
    124Borman
    124Borman СкладчикСкладчик
    Курс подорожал до 64 990 и осталось 30 мест
     
    1 человеку нравится это.
  5. 20 июн 2025
    #3
    Olegzandrr
    Olegzandrr СкладчикСкладчик
    Через 2.5 дня ещё на 5 000
     
  6. 21 июн 2025
    #4
    Paul Fart
    Paul Fart ЧКЧлен клуба
    @124Borman @Olegzandrr помогайте рекламировать в тематических складчинах.
     
    1 человеку нравится это.
  7. 22 июн 2025
    #5
    Justmove8
    Justmove8 ДолжникДолжник
    организатора нет. Кто-то сможет организовать? Погнали елки палки уже!
     
    4 пользователям это понравилось.
  8. 22 июн 2025
    #6
    124Borman
    124Borman СкладчикСкладчик
    С завтрашнего дня цена на 5к поднимается. Надо цену на 70 поменять
     
  9. 23 июн 2025
    #7
    Olegzandrr
    Olegzandrr СкладчикСкладчик
    Осталось 4 места
     
  10. 24 июн 2025
    #8
    ANkulagin
    ANkulagin СкладчикСкладчик
    upload_2025-6-24_10-5-50.png с домашкой уже не успели, но и базовая версия стоит того чтобы уже начать организовывать)
     
  11. 24 июн 2025
    #9
    124Borman
    124Borman СкладчикСкладчик
    Да уже и на этот не успеем. Завтра закрытие продаж курса, а деньги еще собирать не начали и цена на 10 тысяч поднялась
     
  12. 25 июн 2025
    #10
    Paul Fart
    Paul Fart ЧКЧлен клуба
    вопрос не в сборе, возможно кто-то со складчика купит курс, далее ему нужно будет написать админам, чтобы удостоверились в его покупке, пройти курс (это 8 недель), потом выложить курс для проверки админами, если все ок, то оргнет складчину модератор, далее передадут деньги за курс, а мы увидим курс.
    Но скорее эта сладчина уже не пройдет, увы, может на 2-й поток соберемся, если таковой будет
    А этот закрывают через 2 часа
     
  13. 18 июл 2025
    #11
    lobster
    lobster ДолжникДолжник
    я так понял пролет с этим курсом?
     
  14. 19 июл 2025
    #12
    KonstantinD
    KonstantinD СкладчикСкладчик
    Он к осени еще запуск делает, у него на сайте написано, не пролететь бы
     
    1 человеку нравится это.
  15. 27 авг 2025
    #13
    Aramu0010
    Aramu0010 СкладчикСкладчик
    6 октября старт нового потока этого курса. Уже сейчас мест осталось меньше половины. Как запустить сбор?
     
    1 человеку нравится это.
  16. 28 авг 2025
    #14
    MuradB
    MuradB СкладчикСкладчик
    Организатор нужен
     
    1 человеку нравится это.
  17. 2 сен 2025
    #15
    MuradB
    MuradB СкладчикСкладчик
    Вроде народ уже есть, нужен организатор, кто может взяться?
     
    1 человеку нравится это.
  18. 9 сен 2025
    #16
    zennoposter
    zennoposter ЧКЧлен клуба
    Смотрел курс по прохождениям собесов. Честно говоря сам автор ниочем. Много неуместных шуток и т.д