Джокер
Администратор
- Регистрация
- 1 Янв 2015
- Сообщения
- 145.977
- Реакции
- 78.197
Микросервисная архитектура (МСА) сравнительно недавно завоевала славу самого популярного архитектурного подхода. Ее использование обеспечивает множество преимуществ на различных этапах жизненного цикла продукта. В частности, МСА позволяет получить меньшее время реакции на требования бизнеса, что зачастую обеспечивает ее превосходство над прочими архитектурными стилями.
Однако, в процессе разработки МСА систем архитектор сталкивается со множеством вызовов, многие из которых заставляют новичков откатываться назад.
Ошибки декомпозиции могу привести к серьёзному увеличению сложности разработки. Производительность страдает из-за непреодолимых сетевых задержек. Распределенное хранение данных не позволяет использовать транзакционную согласованность. Большое количество взаимодействующих по сети компонент снижает надежность. Сложно обеспечивать безопасность. Кроме того, отдельного разговора требует тестирование и обслуживание распределенной системы.
Данный курс покажет преимущества и недостатки использования МСА. Поможет принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как Kubernetes, Istio, Histryx, Kibana, и многие другие).
Спойлер: Программа
1. Архитектурные стили (2 ч.)
Понятия монолита, SOA, MSA.
Сравнение и обоснование выбора.
2. Паттерны декомпозиции MSA (2 ч.)
Оптимальный размер микросервиса;
Разбиение на сервисы по бизнес-возможностям;
Разбиение на сервисы по проблемным областям;
Практики определения предметных областей;
Декомпозиция по техническим и организационным аспектам.
3. Организация разработки под MSA (1 ч.)
Организация команд под MSA;
Организация репозитория кода под MSA.
4. Интеграция микросервисов (3 ч.)
Паттерны взаимодействия;
Синхронные и асинхронные механизмы взаимодействия;
Оркестровка и хореография;
Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.);
Взаимодействие с внешними системами (API Gateway, BFF);
Реактивные системы;
Архитектуры управляемые событиями;
Разделение команды и запроса.
5. Организация работы с данными в MSA (3 ч.)
Паттерны работы с данными;
Порождение событий;
Справочные данные в MSA;
Единый источник истины (Source of Truth) в MSA.
6. Основные шаблоны МСА (9 ч.)
Модифицируемость.
Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
Масштабируемость.
Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
Производительность.
Паттерны производительности в MSA (переборка, изящная деградация и пр.).
Согласованность.
Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
Надежность.
Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
Безопасность.
Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
Тестируемость.
Пирамида и квадрат тестирования. Особенность тестирования микросервисов.
Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
Удобство обслуживания.
Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
7. Развертывание микросервисов (2 ч.)
Паттерн «Deployment pipeline»;
Паттерны развертывания;
Использование технологий Docker и Kubernetes;
Использование сетки ISTIO;
Бессерверное развертывание;
Стратегии развертывания (сине-зеленые, канареечные и т.д.).
8. Стратегии миграции от монолита к MSA (2 ч.)
Стратегии перехода с монолита на микросервисы;
Удушение монолита (Strangler monolith);
Паттерны удушения;
Связь микросервиса с монолитом;
Миграция базы данных.
СКАЧАТЬ СЛИВЫ КУРСОВ
Однако, в процессе разработки МСА систем архитектор сталкивается со множеством вызовов, многие из которых заставляют новичков откатываться назад.
Ошибки декомпозиции могу привести к серьёзному увеличению сложности разработки. Производительность страдает из-за непреодолимых сетевых задержек. Распределенное хранение данных не позволяет использовать транзакционную согласованность. Большое количество взаимодействующих по сети компонент снижает надежность. Сложно обеспечивать безопасность. Кроме того, отдельного разговора требует тестирование и обслуживание распределенной системы.
Данный курс покажет преимущества и недостатки использования МСА. Поможет принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как Kubernetes, Istio, Histryx, Kibana, и многие другие).
Спойлер: Программа
1. Архитектурные стили (2 ч.)
Понятия монолита, SOA, MSA.
Сравнение и обоснование выбора.
2. Паттерны декомпозиции MSA (2 ч.)
Оптимальный размер микросервиса;
Разбиение на сервисы по бизнес-возможностям;
Разбиение на сервисы по проблемным областям;
Практики определения предметных областей;
Декомпозиция по техническим и организационным аспектам.
3. Организация разработки под MSA (1 ч.)
Организация команд под MSA;
Организация репозитория кода под MSA.
4. Интеграция микросервисов (3 ч.)
Паттерны взаимодействия;
Синхронные и асинхронные механизмы взаимодействия;
Оркестровка и хореография;
Основные протоколы и технологии (REST, gRPC, GraphQL, Kafka, RabbitMQ и др.);
Взаимодействие с внешними системами (API Gateway, BFF);
Реактивные системы;
Архитектуры управляемые событиями;
Разделение команды и запроса.
5. Организация работы с данными в MSA (3 ч.)
Паттерны работы с данными;
Порождение событий;
Справочные данные в MSA;
Единый источник истины (Source of Truth) в MSA.
6. Основные шаблоны МСА (9 ч.)
Модифицируемость.
Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
Масштабируемость.
Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
Производительность.
Паттерны производительности в MSA (переборка, изящная деградация и пр.).
Согласованность.
Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
Надежность.
Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
Безопасность.
Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
Тестируемость.
Пирамида и квадрат тестирования. Особенность тестирования микросервисов.
Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
Удобство обслуживания.
Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
7. Развертывание микросервисов (2 ч.)
Паттерн «Deployment pipeline»;
Паттерны развертывания;
Использование технологий Docker и Kubernetes;
Использование сетки ISTIO;
Бессерверное развертывание;
Стратегии развертывания (сине-зеленые, канареечные и т.д.).
8. Стратегии миграции от монолита к MSA (2 ч.)
Стратегии перехода с монолита на микросервисы;
Удушение монолита (Strangler monolith);
Паттерны удушения;
Связь микросервиса с монолитом;
Миграция базы данных.
СКАЧАТЬ СЛИВЫ КУРСОВ
Для возможности скачивать складчины и сливы курсов нужно зарегистрироваться
Возможно, Вас ещё заинтересует:
- Интервальное голодание 20/4. Протокол "Хищник" — минус 12 кг за 30 дней без подсчета калорий [Артур Хейз]
- Недвижимость, депозит или фондовый рынок [Владимир Савенок]
- Получите готовые таблицы выбора витамина Д, К2 и магния и не тратьте время на самостоятельный поиск [Александра Бонина]
- [Лепка] Клубника в разрезе 2.0 [Юлия Козина]
- Строительство дома. В два раза дешевле [Григорий Жадько] + Полное руководство по выбору и установке солнечных панелей для дачи [Роман Сюжетов]
- Как лучше сеять семена: корнем вниз, боком или корнем вверх? Азбука садовода [Валерий Зимин] + Огурцы по умному [Аня Лаврова]
- 10 идей бизнеса в сфере цифровых услуг [Анна Соколова]
- Код привычки. Почему сила воли не работает и что с этим делать [Артем Шапкун]
- 15 методик исполнения желаний [Твоя Вселенная]
- Настольная книга плиточника [Иван Старостин]