Курс состоит из 6 вебинаров по 120 минут с глубоким погружением в микросервисную архитектуру. Мы рассмотрим способы декомпозиции, изменения в командах, разбор популярных паттернов и антипаттернов, связь с бизнесом, Agile и DevOps.
На курсе вы научитесь проектировать микросервисы начиная с понимания бизнес домена и заканчивая особенностями реализации.
Даты вебинров:
- 31.10 (понедельник)
- 02.11 (среда)
- 04.11 (пятница)
- 07.11 (понедельник)
- 09.11 (среда)
- 11.11 (пятница)
Время начала занятий 19:00 по Москве, продолжительность 120 минут.
- Ведущий практик. Разрабатывал системы на микросервисной архитектуре для Мегафон и Теле2, сейчас развивает направление разработки в компании с 200+ микросервисами, действующий архитектор и Team Leader команды разработки.
- Обучение полностью online (Zoom+Miro)
- Говорим не только про технику. В курсе уделяется внимание интеграции подхода в организацию и связь с орг. структурой.
В ходе всего курса слушатели участвуют в серии практических заданий, объединенных общим сюжетом.
- Легенда. В самом начале участники знакомятся с легендой, которую будут применять в течение всего курса.
- Теория. Чтобы сделать все правильно, важна теория и понимание основных принципов микросервисной архитектуры. Ведущий рассказывает блок теории, рассматривает паттерны и антипаттерны, приводит примеры из собственного опыта.
-
Домашнее задание. По окончании каждого занятия, участники получают домашние задание. Участники самостоятельно прорабатывают задачу и предлагают свой вариант решения.
-
Разбор ошибок. Преподаватель проверяет задания, дает пояснения по результатам решения, демонстрирует свой вариант. Также слушатели могут задать вопросы в чате.
За все время проведения курса основными участниками являлись:
- Системный аналитик
- TeamLead/TechLead
- Разработчик
Базовые понятия
- Сравнение различных архитектур
- Отличие SOA от MSA
- Плюсы и минусы микросервисной архитектуры
- Цели успешного внедрения MSA
Основы Domain Driven Design
- Суть подхода
- Доменная модель (Domain model)
- Ограниченный контекст (Bounded Context)
- Сущность (Entity)
- Объект значения (Value Object)
- Агрегат (Aggregate)
- Доменное событие (Domain Event)
Микросервисы
- Что такое микросервис
- Размер и границы микросервиса
- Оптимальное количество сервисов на команду
Декомпозиция на микросервисы
- Тактика декомпозиции
- Практика Event Storming
- Сигналы неправильного разбиения
- Anti-pattern "Сервис-сущность"
- Anti-pattern "Распределенный монолит"
Команды и организационная трансформация
- Организация команд
- Владение сервисом (service per team pattern)
- Управление продуктом в MSA
- Роль архитектора в MSA
- Платформенные команды
Раскрытие API
- API Gateway pattern
- BFF pattern
- API composition pattern
Аутентификация, авторизация
- Access token pattern
- Единая точка аутентификации (SSO)
- Популярные сервера аутентификации
Организация работы с данными
- Shared database anti-pattern
- Database per service pattern
Структура микросервиса
- Внутренняя архитектура сервиса
- Адаптеры обработки публикации событий
- Повторное использование кода
- Шаблон сервиса
Взаимодействие между сервисами
- CAP теорема
- Синхронное / асинхронное взаимодействие
- Circuit Breaker (Предохранитель)
- Transactional outbox pattern
- Polling publisher pattern
- Transaction log tailing pattern
- Репликация данных как средство снижения зависимости (CQRS)
- Отложенная согласованность данных
- Saga pattern
Развертывание
- Понимание DevOps
- Способы развертывания микросервиса
- Стратегия автономности поставки
- Типовой CI/CD конвейер сервиса
- Конфигурация и секреты
- Service discovery
Тестирование
- Особенности тестирования микросервисов
- Пирамида тестирования
- Модульные тесты
- Тесты контрактов
- Компонентные тесты
- Место тестов в CI/CD конвейере
- Кто какие тесты пишет
Мониторинг и поддержка
- Мониторинг работоспособности
- Мониторинг состояния сервиса
- Сбор логов
- Распределенная трассировка
- Подход "кто разработал тот и поддерживает"
Отказоустойчивость
- Изолированность
- Горизонтальное масштабирование
Стратегии разбиения монолита
- Планирование миграции на микросервисы
- Strangler application pattern("душитель")
- Стратегии разбиения
- Что выносить в первую очередь
- Как реализовать отчеты в микросервисной системе
Отчеты и аналитика
- Как реализовать отчеты в микросервисной архитектуре