
1 Разработка микросервисных приложений для сложных бизнес‑процессов
Проектирование микросервисов с нуля
Техники декомпозиции: DDD, Business Capabilities, Event‑Driven, Data‑Driven. Проверка корректности разбиения: Low Coupling, High Cohesion, API Stability. Ошибки и ограничения при декомпозиции по DDD.
Создание микросервисов
Оркестрация и хореография. Реализация SAGA на базе BPMN‑движка. Средства интеграции микросервисов в условиях оркестрации (запрос‑ответ). Кеширование и репликация.
Спроектируете доменную модель, реализуете SAGA с оркестрацией, кеширование и интеграции
2 Разработка микросервисных приложений под event‑driven‑архитектуру
Погружение в предметную область
Event Storming как инструмент анализа предметной области. Применение результатов Event Storming.
Реализация EDA с микросервисами
Взаимодействие в условиях хореографии (публикация-подписка). Потоковая обработка данных с Kafka Streams и Flink. Transactional Outbox, CDC и его ограничения.
Работа с данными на базе событий
Event Sourcing и его совместное применение с CQRS.
Спроектируете архитектуру микросервисов с хореографией и реализуете потоковую обработку данных на Kafka Streams
3 Декомпозиция монолитной системы на микросервисы
Из монолита в микросервисы
Декомпозиция и миграция функциональности: Strangler Fig, Feature Toggle, Parallel Run vs Big Bang Rewrite. Типичные ошибки. Разделение модели данных. Решение проблемы дублирования данных и выбор БД.
Борьба со сложностью микросервисной архитектуры
Переиспользование функциональности: дублирование, общие библиотеки, shared‑сервисы, платформы. Организация кода: монорепозиторий vs отдельные репозитории. Формирование команд с учётом топологий и обратного манёвра Конвея.
Спроектируете микросервисную архитектуру на основе реального монолита, определив границы сервисов, их функции, модели данных и общие функциональности
4 Разработка микросервисных приложений под высокую нагрузку
Разработка микросервисных приложений для масштабируемых пакетных вычислений
Пакетная обработка на микросервисах
Архитектурные шаблоны: ETL‑конвейер, MapReduce. Распределение зон ответственности: координатор, воркеры. Spring Batch, Apache Airflow, Apache Spark. Оптимальный размер пакета для обработки.
Инфраструктура для пакетной обработки
Запуск по расписанию: Cron Jobs в Kubernetes, Event-Driven Pipeline. Развёртывание в облаке: serverless‑контейнеры и Kubernetes. Управление облачной инфраструктурой с Terraform. Динамическое управление конфигурациями. Configuration as a Service.
Сбор телеметрии микросервисов
Централизованное логирование с ELK. Корреляция логов через Trace ID. Метрики для мониторинга. OpenTelemetry для сбора логов, метрик и трассировки, инструментирование кода через OpenTelemetry SDK.
Создадите конвейер пакетной обработки, организуете запуск по расписанию, автоматизируете управление облачной инфраструктурой, настроите сбор телеметрии
5 Проектирование приложения для совместной работы пользователей
Проектирование клиент‑серверных интеграций
Интеграция микросервисов: взаимодействие, аутентификация и авторизация — OAuth 2.0, JWT, OpenID Connect. Балансировка нагрузки. API‑First для проектирования интерфейсов. Кеширование.
Реализация API на бэкенде
API Gateway. Паттерн композиции API на основе Apollo Federation. Паттерны отказоустойчивости: Circuit Breaker, Retry, Rate Limiting.
Развёртывание сервисов
CI/CD-пайплайн. Управление ресурсами в Kubernetes: Namespace, ResourceQuota, LimitRange. Масштабирование: горизонтальное (HPA) и вертикальное (VPA). Динамическое управление конфигурацией. Service Mesh для автоматизации mTLS, Circuit Breaker, Rate Limiting, Retry Policy и трассировки запросов.
Создадите API Gateway с композицией API, аутентификацией и авторизацией запросов, настроите балансировку нагрузки
6 Проектирование realtime‑приложений
WebSockets для клиент‑серверного взаимодействия. Асинхронные средства интеграции на бэкенде. Синхронизация результатов асинхронной обработки с микросервисом с Redis Pub/Sub.
Качественные результаты разработки
Тестирование микросервисов, интеграционные тесты с Testcontainers. Fitness Functions на базе ArchUnit для контроля соответствия кода архитектурным требованиям.
Анализ телеметрии микросервисов
Настройка автоматического оповещения на основе метрик. Сбор и визуализация телеметрии с Prometheus и Grafana, создание дашбордов для мониторинга нагрузки, ошибок и производительности сервисов.
Реализуете клиент‑серверную интеграцию, настроите синхронизацию экземпляров сервиса. Напишете интеграционные тесты, создадите Fitness Functions и дашборды