Микросервисная архитектура
Длительность
24 ак.ч.
Локация
Онлайн
Код
ARC-015
02.12.2024 - 11.12.2024
24.02.2025 - 05.03.2025
48 900 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей
Описание
Микросервисная архитектура (МСА) сравнительно недавно завоевала славу самого популярного архитектурного подхода. Ее использование обеспечивает множество преимуществ на различных этапах жизненного цикла продукта. В частности, МСА позволяет получить меньшее время реакции на требования бизнеса, что зачастую обеспечивает ее превосходство над прочими архитектурными стилями.Однако, в процессе разработки МСА систем архитектор сталкивается со множеством вызовов, многие из которых заставляют новичков откатываться назад.
Ошибки декомпозиции могу привести к серьёзному увеличению сложности разработки. Производительность страдает из-за непреодолимых сетевых задержек. Распределенное хранение данных не позволяет использовать транзакционную согласованность. Большое количество взаимодействующих по сети компонент снижает надежность. Сложно обеспечивать безопасность. Кроме того, отдельного разговора требует тестирование и обслуживание распределенной системы.
Данный курс покажет преимущества и недостатки использования МСА. Поможет принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.
В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как Kubernetes, Istio, Histryx, Kibana, и многие другие).
Практические упражнения позволят приобрести навык самостоятельного проектирования МСА систем.
После прохождения курса выдается
удостоверение о повышении квалификации государственного образца
удостоверение о повышении квалификации государственного образца
Цели
- Дать представление о МСА и о её связи с остальными архитектурами системы;
- Дать представление о проектировании МСА систем;
- Выработать практический навык проектирования МСА систем;
- Познакомить слушателей с наиболее распространёнными шаблонами МСА;
Целевая аудитория
- Архитекторы;
- DevOps специалисты;
- Ведущие разработчики;
- Руководители разработки.
Предварительная подготовка
Опыт разработки программных систем.
Желательно опыт разработки архитектуры или прохождение курса ARC-001 «Основные практики архитектора ПО», знание подхода DDD или прохождение курса ARC-003 «Domain Driven Design».
Желательно опыт разработки архитектуры или прохождение курса ARC-001 «Основные практики архитектора ПО», знание подхода DDD или прохождение курса ARC-003 «Domain Driven Design».
Разбираемые темы
-
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);
- Паттерны удушения;
- Связь микросервиса с монолитом;
- Миграция базы данных.
Раcписание курсов
Вид:
Тренеры
Овчаренко Дмитрий
Специалист в области архитектуры ПО
IT Архитектор с обширным опытом в сфере интеграции: SOA, BPM, Веб-Сервисы, Системы ориентированные на сообщения, Микросервисы.
IT Архитектор с обширным опытом в сфере интеграции: SOA, BPM, Веб-Сервисы, Системы ориентированные на сообщения, Микросервисы.
Работал с существующими системами и участвовал в разработке систем с нуля.
Отзывы (8)
Курс хороший, лектор при возникновении вопросов всегда отвечал на них, разъяснял, приводил множество примеров. Понравились структура материала, широта охвата предметной области, стройность подхода к выбору архитектуры и проектированию микросервисов, а также упор на поиск компромиссов, DDD.
Хороший тренер, помог нам лучше понять основные концепции. Было интересно разделиться на группы и проводить мозговой штурм. Больше всего понравилась информация про архитектуру и дизайн микросервисов, а также задание, которое дали нашей группе для решения. Единственное, показалось, продолжительность курса мала для такого объема информации.
Тренинг мне очень понравился, особенно могу отметить качество подготовленного материала, навыки лектора и широкий охват тем для повышения кругозора. Самой полезной частью курса для меня стало описание взаимодействия микросервисов в МСО и примеры из реального опыта. Спасибо за такую возможность!
Понравились объем и широта охвата тем, в результате есть «helicopter view» по MSA и стало видно, в каком направлении двигаться дальше, как спроектировать архитектуру приложения на основе микросервисов, преобразовать монолитное приложение в приложение с микросервисами. В качестве рекомендации: разбавить теорию примерами из практики и добавить больше практических заданий.
Тренер произвел впечатление очень высококвалифицированного и опытного специалиста, он был готов всегда ответить на вопросы. Понравилось обилие материалов и информации, задание на построение микросервиса, материалы о построении и использовании МСА (в т. ч. безопасность, развертывание и сопровождение). Понравилось изложение материала, в частности наличие на слайдах англоязычных терминов и их перевода на русский.
Хорошо подобран и преподнесен курс. Тренер пытался максимально доступно рассказать про каждую тему. Понравилось, что много паттернов и практик в одном курсе, весь цикл разработки исчерпывающе покрыт, были интересные кейсы и практические задания, особенно практическое занятие по построению доменной модели.
Понравились учебная литература и материалы (про архитектуру приложений, BigData, сравнение плюсов и минусов реализаций MSA, кубернетес), как скомпонован материал, что есть большое количество примеров и тренер, который помогал и отвечал на все вопросы. Хорошо, что информация собрана теперь в одном месте в виде презентаций, за это отдельное спасибо.
Широкий охват концепций, решений, технологий, платформ, используемых при проектировании микросервисной архитектуры. Автор постарался представить все современные подходы в строительстве МСА. Кроме того, в ходе обучения были получены подробные чеклисты по пр. В целом, впечатление хорошее, спасибо!
Связанные курсы
Ключевые практики архитектора ПО
Курс является введением в системную архитектуру (архитектуру ПО) и знакомит с ключевыми практиками: выявление требований, проектирование, документирование, анализ и оценка архитектуры, а также даёт представление о месте архитектуры в жизненном цикле разработки ПО.
Онлайн:
02.12.2024 - 13.12.2024
Онлайн:
20.01.2025 - 31.01.2025
Онлайн:
03.02.2025 - 18.02.2025
Domain Driven Design
Предметно-ориентированное проектирование (DDD) предлагает общий подход к обеспечению большей гибкости и модифицируемости программных систем на основе более тщательного исследования предметной области и отражения ее структуры в разрабатываемой системе. Участники курса узнают, какие инструменты и практики DDD помогают в построении корпоративных систем со сложной бизнес-логикой и применят стратегические паттерны для декомпозиции предметной области, для разрабатываемой системы. Для дальнейшего проектирования и реализации выделенных в результате декомпозиции компонентов, “ограниченных контекстов” в терминологии DDD, используем тактические паттерны DDD, в первую очередь Агрегаты. В основе материалов курса лежат реальные примеры разработанных систем.
Онлайн:
16.12.2024 - 25.12.2024
Интеграция в корпоративных системах
Современные компании используют десятки и сотни программных систем, которые обращаются друг к другу и обмениваются данными. Организация взаимодействия систем и приложений называется интеграцией. Выработано множество способов интеграции – обмен файлами, использование общих баз данных, удаленный вызов процедур, обращение к сервисным интерфейсам, обмен сообщениями, использование интеграционных шин и не только.
На тренинге мы рассмотрим спектр возможных проблем и решений, их области применимости, сильные и слабые стороны. Также разберем состав требований к проекту интеграции. Немало внимания уделяется самому составу сообщения, как его форма влияет на то, как будет проходить интеграция и как это влияет на обеспечение надежности участников интеграции.
Основной акцент сделан на понимании требований к интеграции связанных шаблонов и последствиям решений. Современные системы предлагают много схожего функционала, однако маркетинг может вводить в заблуждение своими буклетами, поэтому надо понимать основы, на которых построены предлагаемые вендорами интеграционные решения.
Онлайн:
17.02.2025 - 26.02.2025
Архитектура в Agile-проектах
Данный курс знакомит слушателей с основными архитектурными практиками в контексте Agile. Каким образом концепции Agile и архитектурные практики дополняют друг друга, к чему могут приводить перекосы в ту или иную сторону и как практически можно и нужно адаптировать работу архитектора в Agile-проектах.