Это серия из 6 вебинаров с глубоким погружением в микросервисную архитектуру: способы декомпозиции, изменения в командах, разбор популярных паттернов и антипаттернов, связь с бизнесом, Agile и DevOps.
На курсе вы научитесь проектировать микросервисную архитектуру начиная с понимания бизнес домена и заканчивая особенностями реализации.
Если вы давно мечтаете внедрить микросервисную архитектуру и хотите сделать это грамотно, не совершая базовых ошибок, то этот курс для вас!
Базовые понятия
- Понятия Big ball of mud, монолита
- Отличие SOA от MSA
- Что на самом деле значит "микро"
- Плюсы и минусы монолита
- Плюсы и минусы микросервисов
- Сравнение и обоснование выбора
- Цели успешного внедрения подхода
Декомпозиция на микросервисы
- Подход Monolith First
- Разбиение на сервисы по бизнес-возможностям
- Декомпозиция по техническим и организационным аспектам
- Сигналы неправильного разбиения
- Anti-pattern "распределенный монолит"
- Оптимальный размер микросервиса
Команды и организационная трансформация
- Закон Конвея(организация команд по областям)
- Сколько микросервисов должно быть у команды(service per team pattern)
- Структура команды и необходимые навыки
- Сочетание MSA со Scrum
- Организация Git репозиториев
- Роль архитектора в MSA
- Запуск архитектурного Community
- Межкомандные договоренности
Организация работы с данными
- Shared database anti-pattern
- Database per service pattern
Структура микросервиса
- Адаптеры обработки публикации событий
- Версионирование контрактов
- Swagger
- Повторное использование кода
- Паттерн "Шаблон сервиса"
Раскрытие API
- API Gateway pattern
- BFF pattern
- API composition pattern
Аутентификация, безопасность
- Access token pattern
- Стандарт OAuth2.0 и JWT
- Единая точка аутентификации
- Сервер аутентификации
- Популярные сервера аутентификации OAuth 2.0
- Аутентификация между микросервисами
Взаимодействие между сервисами
- CAP теорема
- Синхронное взаимодействие/асинхронное взаимодействие
- Circuit Breaker(Предохранитель)
- Transactional outbox pattern
- Polling publisher pattern
- Transaction log tailing pattern
- Репликация данных как средство снижения зависимости
- Отложенная согласованность данных
- Saga pattern
- Оркестровка и хореография
Развертывание
- DevOps это культура
- Стратегия автономности поставки
- Типовой CI/CD конвейер сервиса
- Развертывание на виртуальных машинах
- Развертывание в контейнерах Docker
- Конфигурация и секреты
- Service discovery
- Blue-Green Deployment
- Canary Deployment
- Применение Kubernetes(базово)
Тестирование
- Особенности тестирования микросервисов
- Пирамида тестирования
- Виды тестов
- Место тестов в CI/CD конвейере
- Кто пишет сквозные тесты
Мониторинг
- Мониторинг работоспособности
- Мониторинг состояния сервиса
- Распределенная трассировка
- Логи и их агрегация
- Подход "кто разработал тот и поддерживает"
Отказоустойчивость
- Изолированность
- Горизонтальное масштабирование
Стратегии разбиения монолита
- Strangler application pattern("душитель")
- Стратегии разбиения
- Что выносить в первую очередь
- Выделение ограниченных контекстов
- Разделение базы данных
- Выделение модуля
- Выделение сервиса
- Взаимодействие между сервисом и монолитом
- Что делать с отчетами