Курс состоит из 5 вебинаров с глубоким погружением в микросервисную архитектуру: способы декомпозиции, изменения в командах, разбор популярных паттернов и антипаттернов, связь с бизнесом, Agile и DevOps.
На курсе вы научитесь проектировать микросервисы начиная с понимания бизнес домена и заканчивая особенностями реализации.
Даты вебинров:
- 27.09(понедельник)
- 28.09(вторник)
- 29.09(среда)
- 30.09(четверг)
- 01.10(пятница)
Время начала занятий 19:00 по Москве, продолжительность 2-2.5 часа.
- Ведущий практик. Разрабатывал системы на микросервисной архитектуре для Мегафон и Теле2, сейчас развивает направление разработки в компании с 300+ микросервисами, действующий архитектор и TeamLeader команды разработки.
- Обучение полностью online(Zoom+Miro)
- Говорим не только про технику. В курсе уделяется внимание интеграции подхода в организацию и связь с орг. структурой.
В ходе всего курса слушатели участвуют в серии практических заданий, объединенных общим сюжетом.
- Легенда. В самом начале участники знакомятся с легендой, которую будут применять в течение всего курса.
- Теория. Чтобы сделать все правильно, важна теория и понимание основных принципов микросервисной архитектуры. Ведущий рассказывает блок теории, рассматривает паттерны и антипаттерны, приводит примеры из собственного опыта
-
Практика. По окончании каждого блока теории, участники получают задания. В течение 20-30 минут, в группах из 3-4 человек, участники прорабатывают решение и предлагают свой вариант.
-
Разбор ошибок и результат. По окончании практического задания мы вместе разбираем ошибки, предлагаем различные варианты решения, пытаемся понять, почему так было бы лучше/хуже. После того, как блок полностью усвоен, ведущий переходит к следующему блоку теории.
За все время проведения курса основными участниками являлись:
- Системный аналитик
- TeamLead/TechLead
- Разработчик
1 вебинар
Базовые понятия
- Понятия Big ball of mud, монолита
- Отличие SOA от MSA
- Что на самом деле значит "микро"
- Монолит vs микросервисы, сравнение и обоснование выбора
- Цели успешного внедрения подхода
Декомпозиция на микросервисы
- Знакомство с DDD, его основные понятия и идеи
- Разбиение на сервисы по ограниченным контекстам
- Подход Monolith First
- Сигналы неправильного разбиения
- Anti-pattern "распределенный монолит"
- Оптимальный размер микросервиса
Команды и организационная трансформация
- Закон Конвея(организация команд по областям)
- Сколько микросервисов должно быть у команды(service per team pattern)
- Структура команды и необходимые навыки
- Сочетание MSA со Scrum
- Организация Git репозиториев
- Роль архитектора в MSA
- Запуск архитектурного Community
- Межкомандные договоренности
Практика
- Обнаружение поддоменов
- Декомпозиция системы на микросервисы
2 вебинар
Команды и организационная трансформация
- Закон Конвея(организация команд по областям)
- Сколько микросервисов должно быть у команды(service per team pattern)
- Структура команды и необходимые навыки
- Организация Git репозиториев
- Роль архитектора в MSA
- Роль платформенных команд
- Организация Community
Раскрытие API
- API Gateway pattern
- BFF pattern
- API composition pattern
Аутентификация, безопасность
- Access token pattern
- Стандарт OAuth2.0 и JWT
- Единая точка аутентификации
- Сервер аутентификации
- Популярные сервера аутентификации OAuth 2.0
- Аутентификация между микросервисами
Практика
- Формирование команд разработки
- Связь команд с сервисами
- Раскрытие API через API Gateway
3 вебинар
Организация работы с данными
- Shared database anti-pattern
- Database per service pattern
Структура микросервиса
- Внутренняя архитектура сервиса
- Адаптеры обработки публикации событий
- Повторное использование кода
- Шаблон сервиса
Взаимодействие между сервисами
- CAP теорема
- Синхронное взаимодействие/асинхронное взаимодействие
- Circuit Breaker(Предохранитель)
- Transactional outbox pattern
- Polling publisher pattern
- Transaction log tailing pattern
- Репликация данных как средство снижения зависимости(CQRS)
- Отложенная согласованность данных
- Saga pattern
- Оркестровка и хореография
Практика
- Хранение состояния сервиса
- Снижение зависимости между сервисами за счет асинхронных коммуникаций
4 вебинар
Развертывание
- Понимание DevOps
- Стратегия автономности поставки
- Типовой CI/CD конвейер сервиса
- Развертывание на виртуальных машинах
- Развертывание в контейнерах Docker
- Конфигурация и секреты
- Service discovery
- Blue-Green Deployment
- Canary Deployment
Тестирование
- Особенности тестирования микросервисов
- Пирамида тестирования
- Тесты контрактов
- Компонентные тесты
- Место тестов в CI/CD конвейере
- Кто пишет функциональные тесты и стоит ли их писать
Практика
- Построение CI/CD конвейера
- Обеспечение качества перед выпуском
5 вебинар
Мониторинг и поддержка
- Мониторинг работоспособности
- Мониторинг состояния сервиса
- Распределенная трассировка
- Логи и их агрегация
- Подход "кто разработал тот и поддерживает"
Отказоустойчивость
- Изолированность
- Горизонтальное масштабирование
Стратегии разбиения монолита
- Strangler application pattern("душитель")
- Стратегии разбиения
- Что выносить в первую очередь
- Выделение ограниченных контекстов
- Разделение базы данных
- Выделение модуля
- Выделение сервиса
- Взаимодействие между сервисом и монолитом
- Как реализовать отчеты в микросервисной системе
Практика
- Обеспечение мониторинга сервисов
- Сбор логов