Скачать Микросервисная архитектура в продакшен разработке. Тариф Стандарт [Станислав Клоков]

  • Гость, подпишитесь сейчас

    📥 Наш адрес сайта меняется, чтобы быть в курсе актуального адреса, подпишитесь на телеграм канал «Перейти»

Описание складчины

Программирование востребовано в веб-разработке, мобильных приложениях, автоматизации и анализе данных. Микросервисная архитектура в продакшен разработке. Тариф Стандарт [Станислав Клоков] поможет освоить необходимые навыки, а складчина сделает обучение доступнее.

Информация
Цена: 495 РУБ
Организатор: Kail Kail
Скачать
Kail
Kail
Организатор
Организатор
Регистрация
09.04.2020
Сообщения
462 757
Реакции
45 700
Монеты
1 191
Оплачено
0
Баллы
0
  • #SkladchinaVip
  • #1
Микросервисная архитектура в продакшен разработке. Тариф Стандарт [Станислав Клоков]
Ссылка на картинку
Научись проектировать системы, которые можно развивать, масштабировать и поддерживать.

Кому будет полезно
  • 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 и событиях так, чтобы старые и новые версии сервисов продолжали работать вместе, и реализуешь первый этап изменения

Результат недели
Подготовишь сервис к работе в распределённой системе: от тестирования границ до безопасного обновления версий.
Показать больше
 
Зарегистрируйтесь , чтобы посмотреть контент.
архитектура микросервисная архитектура станислав клоков
Похожие складчины

Войдите или зарегистрируйтесь

Вы должны быть авторизованны для просмотра материала

Создать аккаунт

Создать учетную запись займет не больше минуты!

Войти

Уже зарегистрированы? Просто войдите.