OTUS
Учебный центр IBS
QA.GURU
Академия Eduson
АИС
OTUS
Учебный центр IBS
QA.GURU
Академия Eduson
OTUS
Учебный центр IBS
OTUS
Учебный центр IBS
OTUS
OTUSКурс по проектированию и интеграции современных ИТ-систем с акцентом на архитектурные шаблоны и решение практических задач.
Введение: закон Конвея и его влияние на архитектуру. Эволюция архитектур: event-driven дизайн. Монолит: проблемы и ограничения, компонентная архитектура, SOA, MSA.
Интеграция в микросервисах:
Роль архитектуры в интеграции. Связь требований и архитектуры. Требования к интеграции:
Сценарии атрибутов качества. Подбор архитектурного решения в зависимости от требований.
Шаблоны интеграции. Достижение качества проектируемого решения:
Общий процесс проектирования интеграции. Диаграммы потоков данных. UML для документирования. Диаграммы последовательности (Sequence Diagrams).
Инструменты для реализации интеграций:
Модуль 1: Основы архитектуры интеграции.
Практика: Анализ требований к интеграции ИТ-систем и выбор архитектурных шаблонов.
Модуль 2: Инструменты интеграции.
Практика: Практическое применение инструментов (REST, GraphQL, SOAP) и выбор брокеров сообщений (RabbitMQ, Kafka).
Модуль 3: Проектирование систем.
Практика: Создание архитектуры решения и установление связей между сервисами.
Модуль 4: Обеспечение качества процессов.
Практика: Решение задач по интеграции и обеспечению качества процессов.
Вы узнаете, как разрабатывать гибкие и эффективные системы, соответствующие требованиям бизнеса. В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры, а также стратегии, механизмы, паттерны и инструменты для их решения. Практические упражнения позволят вам приобрести навык самостоятельного проектирования МСА систем. Курс поможет вам принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
Понятия монолита, SOA, MSA. Сравнение и обоснование выбора.
Оптимальный размер микросервиса. Разбиение на сервисы по бизнес-возможностям. Разбиение на сервисы по проблемным областям. Практики определения предметных областей. Декомпозиция по техническим и организационным аспектам.
Организация команд под MSA. Организация репозитория кода под MSA.
Паттерны взаимодействия. Синхронные и асинхронные механизмы взаимодействия. Оркестровка и хореография. Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.). Взаимодействие с внешними системами (API Gateway, BFF). Реактивные системы. Архитектуры, управляемые событиями. Разделение команды и запроса.
Паттерны работы с данными. Порождение событий. Справочные данные в MSA. Единый источник истины (Source of Truth) в MSA.
Модифицируемость. Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
Масштабируемость. Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
Производительность. Паттерны производительности в MSA (переборка, изящная деградация и пр.).
Согласованность. Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
Надежность. Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
Безопасность. Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
Тестируемость. Пирамида и квадрат тестирования. Особенность тестирования микросервисов. Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
Удобство обслуживания. Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
Паттерн «Deployment pipeline». Паттерны развертывания. Использование технологий Docker и Kubernetes. Использование сетки ISTIO. Бессерверное развертывание. Стратегии развертывания (сине-зеленые, канареечные и т.д.).
Стратегии перехода с монолита на микросервисы. Удушение монолита (Strangler monolith). Паттерны удушения. Связь микросервиса с монолитом. Миграция базы данных.
Практический онлайн-курс для тех, кто хочет: