ARC-015 Микросервисная архитектура
Описание курса
Данный курс знакомит слушателей с основными концепциями микросервисной архитектуры (МСА). Вводится понятие микросервисной архитектуры, рассматривается её связь с «традиционными» методиками построения системы. Даются шаблоны микросервисной архитектуры, направленные на обеспечение качества разрабатываемой системы. Подробно рассматриваются вопросы развертывания и методы обеспечения значимых качеств МСА.
Модуль 1
- Понятия монолита, SOA, MSA.
- Сравнение и обоснование выбора.
Модуль 2
- Оптимальный размер микросервиса;
- Разбиение на сервисы по бизнес-возможностям;
- Разбиение на сервисы по проблемным областям;
- Практики определения предметных областей;
- Декомпозиция по техническим и организационным аспектам.
Модуль 3
- Организация команд под MSA;
- Организация репозитория кода под MSA.
Модуль 4
- Паттерны взаимодействия;
- Синхронные и асинхронные механизмы взаимодействия;
- Оркестровка и хореография;
- Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.);
- Взаимодействие с внешними системами (API Gateway, BFF);
- Реактивные системы;
- Архитектуры управляемые событиями;
- Разделение команды и запроса.
Модуль 5
- Паттерны работы с данными;
- Порождение событий;
- Справочные данные в MSA;
- Единый источник истины (Source of Truth) в MSA.
Модифицируемость.
- Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
Масштабируемость.
- Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
Производительность.
- Паттерны производительности в MSA (переборка, изящная деградация и пр.).
Согласованность.
- Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
Надежность.
Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
Безопасность.
Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
Тестируемость.
- Пирамида и квадрат тестирования. Особенность тестирования микросервисов.
- Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.</li>
Удобство обслуживания.
Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
Модуль 6
- Паттерн «Deployment pipeline»;
- Паттерны развертывания;</li>
- Использование технологий Docker и Kubernetes;
- Использование сетки ISTIO;
- Бессерверное развертывание;
- Стратегии развертывания (сине-зеленые, канареечные и т.д.).
Модуль 7
- Стратегии перехода с монолита на микросервисы;
- Удушение монолита (Strangler monolith);
- Паттерны удушения;
- Связь микросервиса с монолитом;
- Миграция базы данных.