- Регистрация
- 26 Март 2018
- Сообщения
- 89.786
Автор: Станислав Клоков
Название: Микросервисная архитектура в продакшен разработке [Тариф Стандарт] [Станислав Клоков]
Описание:
Складчина: Микросервисная архитектура в продакшен разработке [Тариф Стандарт] [Станислав Клоков]
Научись проектировать системы, которые можно развивать, масштабировать и поддерживать.
Кому будет полезно
Это курс для действующих разработчиков
Тебе нужно знать:
Программа:
От монолита к микросервисам
Домашнее задание
Определишь владельцев данных бонусной системы и её взаимодействие с остальными сервисами. Обоснуешь архитектурное решение: выделять склад в отдельный сервис или оставить модулем монолита
Результат недели
Разберёшься, чем микросервисы отличаются от модульного и распределённого монолита и когда их использование действительно оправдано.
Синхронное взаимодействие и проектирование API
Домашнее задание
Добавишь отмену заказа и изменение адреса с проверкой состояния заказа. Найдёшь ломающие изменения контракта и предложишь совместимые альтернативы. Доработаешь идемпотентность создания заказа и проверишь повторные и конкурентные запросы
Результат недели
Научишься проектировать API вокруг задач потребителя и учитывать частичные отказы при взаимодействии между сервисами.
Асинхронное взаимодействие на Kafka
Домашнее задание
Добавишь обработку невалидных сообщений через DLQ и проверишь совместимость нового поля события со старым потребителем. Создашь отдельного потребителя для подсчёта заказов покупателей с защитой от дублей
Результат недели
Разберёшься, как Kafka помогает развязать сервисы во времени и какие гарантии приходится обеспечивать на стороне приложения.
Данные и транзакции между сервисами
Домашнее задание
Добавишь таймауты шагов саги и обработку запоздавших ответов. Проверишь освобождение занятых ресурсов, подтверждение компенсаций и обработку неизвестного исхода платежа. Убедишься, что параллельные резервы не превышают остаток
Результат недели
Научишься защищать данные от конкурентных изменений и проводить бизнес-операции через несколько сервисов без общей ACID-транзакции.
Запросы, BFF и переход к микросервисам
Домашнее задание
Заново соберёшь историю заказов из событий Kafka и проверишь, что данные совпадают с текущей историей заказов. Опишешь поведение частей экрана при сбоях. Покажешь, чем отличается модель товара в каталоге и на складе и как переводить данные между этими моделями
Результат недели
Разберёшься, чем заменить JOIN после разделения данных между сервисами и как скрыть внутреннюю структуру системы от клиента.
Микросервис в продакшене: тесты, наблюдаемость и выкатка
Домашнее задание
Напишешь тест, который проверяет отмену заказа и снятие блокировки денег при отказе склада, включая повторную доставку ответа. Спланируешь переименование поля в базе, API и событиях так, чтобы старые и новые версии сервисов продолжали работать вместе, и реализуешь первый этап изменения
Результат недели
Подготовишь сервис к работе в распределённой системе: от тестирования границ до безопасного обновления версий.
Тариф Стандарт
Цена 40700 руб.
Скрытая ссылка
Название: Микросервисная архитектура в продакшен разработке [Тариф Стандарт] [Станислав Клоков]
Описание:
Складчина: Микросервисная архитектура в продакшен разработке [Тариф Стандарт] [Станислав Клоков]
Научись проектировать системы, которые можно развивать, масштабировать и поддерживать.
Кому будет полезно
- Middle-разработчикам
научишься видеть систему целиком, определять границы модулей и учитывать сценарии отказа.
- Senior-разработчикам
систематизируешь знания о распределённых данных, очередях, контрактах и устойчивости сервисов.
- Тимлидам и техлидам
научишься связывать границы сервисов с бизнес-процессами, структурой команд и независимым развёртыванием.
- При переходе к микросервисам
разберёшься, когда переход оправдан и как не получить распределённый монолит вместо независимых сервисов.
Это курс для действующих разработчиков
Тебе нужно знать:
- Python
- HTTP / API
- SQL
- Тестирование
Программа:
От монолита к микросервисам
- Научишься проводить границы сервисов по бизнес-возможностям
- Определишь владельцев данных и единые источники истины
- Измеришь "налог на микросервисы": задержки, доступность цепочки и количество мест отказа
- Разберёшь влияние процессов Python, uvicorn и asyncio на развёртывание сервиса
- Разделишь учебный интернет-магазин на сервисы, составишь карту владельцев данных и измеришь стоимость сетевых вызовов
Домашнее задание
Определишь владельцев данных бонусной системы и её взаимодействие с остальными сервисами. Обоснуешь архитектурное решение: выделять склад в отдельный сервис или оставить модулем монолита
Результат недели
Разберёшься, чем микросервисы отличаются от модульного и распределённого монолита и когда их использование действительно оправдано.
Синхронное взаимодействие и проектирование API
- Спроектируешь контракт с помощью канвы целей API
- Научишься проектировать и обрабатывать ошибки при взаимодействии между сервисами
- Разберёшь совместимое развитие API и терпимое чтение
- Добавишь таймауты, повторы с jitter, общий дедлайн и предохранитель
- Защитишь повторные POST-запросы ключом идемпотентности
- Проверишь, почему таймаут или потерянный ответ не означают, что деньги не списались
- Разработаешь API заказов на FastAPI и устойчивый клиент сервиса оплаты, который корректно работает при задержках, отказах и потерянных ответах
Домашнее задание
Добавишь отмену заказа и изменение адреса с проверкой состояния заказа. Найдёшь ломающие изменения контракта и предложишь совместимые альтернативы. Доработаешь идемпотентность создания заказа и проверишь повторные и конкурентные запросы
Результат недели
Научишься проектировать API вокруг задач потребителя и учитывать частичные отказы при взаимодействии между сервисами.
Асинхронное взаимодействие на Kafka
- Сравнишь Kafka, RabbitMQ, Redis Pub/Sub и NATS, разберёшь их отличия и критерии выбора
- Изучишь топики, партиции, смещения и группы потребителей
- Научишься выбирать ключ события и учитывать гарантии порядка сообщений внутри партиции
- Оформишь событие как публичный контракт сервиса
- Решишь проблему двойной записи с помощью Transactional Outbox
- Реализуешь идемпотентного потребителя и разберёшь обработку ядовитых сообщений через DLQ
- Проведёшь событие OrderCreated через Kafka, настроишь outbox и добьёшься того, чтобы уведомление создавалось один раз даже при повторной доставке события
Домашнее задание
Добавишь обработку невалидных сообщений через DLQ и проверишь совместимость нового поля события со старым потребителем. Создашь отдельного потребителя для подсчёта заказов покупателей с защитой от дублей
Результат недели
Разберёшься, как Kafka помогает развязать сервисы во времени и какие гарантии приходится обеспечивать на стороне приложения.
Данные и транзакции между сервисами
- Воспроизведёшь потерянное обновление и защитишь остатки атомарным условным UPDATE, проверишь решение на параллельных резервах
- Разберёшь паттерн Database per service и сохранение изменений вместе с событиями в одной локальной транзакции
- Изучишь оркестровку, хореографию и компенсации
- Построишь сагу как сохраняемую машину состояний
- Проверишь восстановление саги после перезапуска и разберёшь, почему отмена требует подтверждения компенсаций
- Воспроизведёшь и исправишь гонки в PostgreSQL, а затем реализуешь сагу оформления заказа с оплатой, резервированием товара и компенсациями
Домашнее задание
Добавишь таймауты шагов саги и обработку запоздавших ответов. Проверишь освобождение занятых ресурсов, подтверждение компенсаций и обработку неизвестного исхода платежа. Убедишься, что параллельные резервы не превышают остаток
Результат недели
Научишься защищать данные от конкурентных изменений и проводить бизнес-операции через несколько сервисов без общей ACID-транзакции.
Запросы, BFF и переход к микросервисам
- Разберёшь устройство API Gateway и реализуешь BFF для клиентского приложения
- Разберёшь аутентификацию и авторизацию: проверку JWT на шлюзе, создание подписи закрытым ключом, её проверку открытым и проверку прав на заказ в сервисе
- Соберёшь данные нескольких сервисов через API Composition
- Настроишь осознанную деградацию необязательных частей экрана
- Построишь CQRS-проекцию из событий Kafka
- Разберёшь устранение N+1 через батч-запросы и защиту проекции от повторных и запоздавших событий
- Научишься пересобирать проекцию из журнала событий
- Разберёшь постепенный переход от монолита по схеме Strangler Fig
- Создашь BFF для экрана "Мой заказ", проекцию истории заказов и измеришь, во что обошлось разделение системы на сервисы
Домашнее задание
Заново соберёшь историю заказов из событий Kafka и проверишь, что данные совпадают с текущей историей заказов. Опишешь поведение частей экрана при сбоях. Покажешь, чем отличается модель товара в каталоге и на складе и как переводить данные между этими моделями
Результат недели
Разберёшься, чем заменить JOIN после разделения данных между сервисами и как скрыть внутреннюю структуру системы от клиента.
Микросервис в продакшене: тесты, наблюдаемость и выкатка
- Разберёшь юнит-, интеграционные, компонентные и контрактные тесты
- Настроишь логи и распределённую трассировку
- Разберёшь метрики частоты запросов, ошибок и задержек, целевые показатели надёжности и условия для оповещений
- Передашь контекст трассы через HTTP, Kafka и outbox
- Добавишь liveness- и readiness-пробы
- Реализуешь корректную остановку сервиса
- Разберёшь rolling update, blue-green, canary и постепенное обновление БД, API и событий с сохранением совместимости старых и новых версий сервисов
- Напишешь тесты на границах сервиса, соберёшь в Jaeger единую трассу от HTTP-запроса до уведомления, свяжешь её с логами и проверишь поведение проб и корректной остановки
Домашнее задание
Напишешь тест, который проверяет отмену заказа и снятие блокировки денег при отказе склада, включая повторную доставку ответа. Спланируешь переименование поля в базе, API и событиях так, чтобы старые и новые версии сервисов продолжали работать вместе, и реализуешь первый этап изменения
Результат недели
Подготовишь сервис к работе в распределённой системе: от тестирования границ до безопасного обновления версий.
Тариф Стандарт
Цена 40700 руб.
Скрытая ссылка
Материал «Микросервисная архитектура в продакшен разработке [Тариф Стандарт] [Станислав Клоков]», возможно, скоро появится на All-DAR.
Пройдите регистрацию и оформите Premium подписку, чтобы первым получить доступ, и воспользуйтесь поиском — может быть, он уже опубликован.