Чему вы научитесь
- Ориентироваться в микросервисной системе: понимать, какие сервисы есть, кто с кем общается, где что лежит (контейнеры, порты, папки проекта).
- Вызывать API и проверять результат в БД: создавать заказ через Swagger/Postman, находить запись в таблице orders в PostgreSQL через pgAdmin.
- Работать с очередями сообщений: заходить в RabbitMQ UI, находить сообщения по traceId/orderId, понимать цепочку «202 → очередь → воркер → БД».
- Работать с топиками Kafka: открывать Kafka UI, смотреть топики payment_requests и order-events, прослеживать один заказ по traceId в обоих брокерах (RabbitMQ и Kafka).
- Искать по одному заказу в логах и трейсах: в Loki — по traceId логи всех сервисов, в Tempo — цепочку вызовов по Trace ID для Tempo (otelTraceId); расследовать сбой или убедиться, что поток прошёл успешно.
- Связывать в одну картину: один заказ = один traceId в API, в очередях, в топиках, в логах и в трейсе — без страха «а где это смотреть».
О курсе
Краткое описание курса
Обучение идёт по этапам: каждый следующий добавляет один слой (БД, очередь, топики, мониторинг).
На каждом этапе — короткие лекции (5–10 мин) и в конце этапа срез (проверка / домашнее задание)
Этап 1 — Старт
Обзор: что будем разбирать (фронт, заказ, оплата).
- Вводная по архитектуре: где что лежит, порты, схемы.
- Как запустить стенд (docker compose).
- ТЗ и схемы.
Этап 2 — База, контейнеры, API и логи
- Контейнеры и порты (docker-compose.yml).
- API заказов (Swagger).
- База данных PostgreSQL
- Логи в контейнерах и поиск по traceId
Этап 3 — RabbitMQ
- Зачем очередь между сервисами.
- RabbitMQ в проекте: очереди order_requests и payment_results.
- Типичные ошибки RabbitMQ
Этап 4 — Kafka
- Чем Kafka отличается от RabbitMQ
- Kafka UI: топики
- Типичные ошибки Kafka
Этап 5 — Grafana, Loki и Tempo
- Зачем единое окно для логов и трейсов.
- Как логи попадают в Loki.
- Поиск по traceId в Loki.
- Трейсы в Tempo и Trace ID для Tempo (otelTraceId).
- Связка логов и трейса. .
Рекомендуется конспектировать видео для подготовки к собеседованиям.
Для кого этот курс
Начальные требования
Обязательно:
- Уметь открыть терминал (командную строку) и выполнить команду (перейти в папку, ввести команду, прочитать вывод).
- Открывать ссылку в браузере (все интерфейсы — по адресам вида http://localhost:3000, :8080, :5050 и т.д.).
- Иметь установленный и запущенный Docker (Docker Desktop или Docker Engine). Стенд поднимается одной командой `docker compose up -d`.
Желательно (но не блокер):
- Понимать на базовом уровне, что такое API и HTTP (есть URL, запрос, ответ в виде JSON). Коды 202, 500 и т.д. разбираем по ходу.
- Не пугаться слова «база данных» — мы не пишем SQL с нуля, только подключаемся к PostgreSQL через pgAdmin и смотрим таблицу.
- Иметь представление, что такое «логи» (сообщения приложения о своих действиях).
Не требуется:
- Глубоко знать Docker (достаточно `docker compose up -d` и `docker compose ps`).
- Писать код — курс про ориентирование, вызов API, просмотр очередей, топиков и логов.
- Заранее знать RabbitMQ, Kafka или Grafana — всё вводится по шагам.
Компьютер: рекомендуется не менее 8 GB RAM (лучше 16 GB), 4 ядра CPU, 10 GB свободного места на диске — стенд запускает много контейнеров.
Наши преподаватели
Как проходит обучение
Лекции — короткие блоки по 5–10 минут
Пошаговое погружение:
- сначала контейнеры, API и БД;
- потом добавляем RabbitMQ;
- затем Kafka; в конце - Grafana, Loki, Tempo.
Срезы в конце каждого этапа - практические задания после блока лекций:
- создать заказ, найти в БД;
- найти сообщение в RabbitMQ;
- найти traceId в RabbitMQ и Kafka;
- найти заказ в Loki и Tempo.
Сначала объясняю "как», потом делаешь самостоятельно.
Стенд у ученика: один раз поднимается локально (docker compose), все интерфейсы доступны на localhost. Можно повторять демо и задания у себя после лекции.
Документация: план лекций, описание микросервисов, ТЗ по этапам, схемы, словарик, сценарии неполадок, чек-лист готовности — всё в есть в курсе.
При необходимости можно запросить поддержку в курсе - я подскажу и отвечу. Порешаем
Программа курса
Сертификат
Что вы получаете
- Уверенно ориентироваться в микросервисной системе: понимать, какие сервисы за что отвечают, кто с кем общается, где смотреть данные (порты, интерфейсы, контейнеры).
- Работать с очередями и топиками: заходить в RabbitMQ UI и Kafka UI, находить нужные сообщения, связывать их с заказом и с поведением на фронте; понимать, что такое 202 и почему результат приходит позже.
- Расследовать сбои по логам и трейсам: искать в Grafana (Loki) все логи по одному заказу по traceId и открывать цепочку вызовов (трейс) в Tempo по Trace ID для Tempo — формулировать, в каком сервисе ошибка или что поток прошёл успешно.
- Применять подход в новых проектах: тот же принцип - «один запрос = один идентификатор по всей цепочке» — переносится на другие микросервисные системы; вы будете знать, куда смотреть и какие вопросы задавать.