Микросервисная архитектура
Данный курс знакомит слушателей с основными концепциями микросервисной архитектуры (МСА). Вводится понятие микросервисной архитектуры, рассматривается её связь с «традиционными» методиками построения системы. Даются шаблоны микросервисной архитектуры, направленные на обеспечение качества разрабатываемой системы. Подробно рассматриваются вопросы развертывания и методы обеспечения значимых качеств МСА.
24 ак.ч.
Онлайн
ARC-015
Микросервисная архитектура
Записаться на курс
Длительность
24 ак.ч.
Локация
Онлайн
Код
ARC-015
Расписание и цены
20.05.2024 - 29.05.2024
48 900 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей
Микросервисная архитектура
Записаться на курс
Длительность
24 ак.ч.
Локация
Онлайн
Код
ARC-015
Расписание и цены
20.05.2024 - 29.05.2024
48 900 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей

Описание

Микросервисная архитектура (МСА) сравнительно недавно завоевала славу самого популярного архитектурного подхода. Ее использование обеспечивает множество преимуществ на различных этапах жизненного цикла продукта. В частности, МСА позволяет получить меньшее время реакции на требования бизнеса, что зачастую обеспечивает ее превосходство над прочими архитектурными стилями.

Однако, в процессе разработки МСА систем архитектор сталкивается со множеством вызовов, многие из которых заставляют новичков откатываться назад.

Ошибки декомпозиции могу привести к серьёзному увеличению сложности разработки. Производительность страдает из-за непреодолимых сетевых задержек. Распределенное хранение данных не позволяет использовать транзакционную согласованность. Большое количество взаимодействующих по сети компонент снижает надежность. Сложно обеспечивать безопасность. Кроме того, отдельного разговора требует тестирование и обслуживание распределенной системы.

Данный курс покажет преимущества и недостатки использования МСА. Поможет принимать обоснованное решение о применимости МСА в зависимости от потребностей бизнеса и возможностей команды.

В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как Kubernetes, Istio, Histryx, Kibana, и многие другие).

Практические упражнения позволят приобрести навык самостоятельного проектирования МСА систем.

Цели

  • Дать представление о МСА и о её связи с остальными архитектурами системы;
  • Дать представление о проектировании МСА систем;
  • Выработать практический навык проектирования МСА систем;
  • Познакомить слушателей с наиболее распространёнными шаблонами МСА;

Целевая аудитория

  • Архитекторы;
  • DevOps специалисты;
  • Ведущие разработчики;
  • Руководители разработки.

Предварительная подготовка

Опыт разработки программных систем.
Желательно опыт разработки архитектуры или прохождение курса 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 ч.)

    1. Модифицируемость.
      • Решение проблемы высокой связанности. Версионирование интерфейсов и событий. Типы контрактов. Изменения событийной модели. Паттерны организации запросов. Микросервисное шасси (Microservice chassis). Сетки сервисов (Service Mesh).
    2. Масштабируемость.
      • Паттерны построения балансировщиков. Сервисы обнаружения и паттерны работы с ними.
    3. Производительность.
      • Паттерны производительности в MSA (переборка, изящная деградация и пр.).
    4. Согласованность.
      • Проблемы обеспечения согласованности в MSA. CAP теорема. Решения проблем согласованности. Двухфазные коммиты. Паттерн SAGA. Понижение уровня согласованности.
    5. Надежность.
      • Механизмы отказоустойчивости. Паттерны предохранитель (Circuit Breaker), дросселировка, зависимые таймауты и пр.
    6. Безопасность.
      • Механизмы обеспечения безопасности в MSA. Аутентификация. Авторизация. Защита периметра. Защита каналов связи. Основные протоколы и паттерны (OAUTH2, JWT, привратник, ключ камердинера и пр.).
    7. Тестируемость.
      • Пирамида и квадрат тестирования. Особенность тестирования микросервисов.
      • Модульное тестирование. Интеграционное тестирование. Компонентное тестирование. Тестирование E2E. Паттерны тестирования MSA.
    8. Удобство обслуживания.
      • Возможность наблюдения (Observability). Паттерны наблюдения (распределенная трассировка, агрегация журналов). Мониторинг и журналирование. Конфигурирование микросервисов. Вынесение конфигурации во вне. Поддержка системы.
  • 7. Развертывание микросервисов (2 ч.)

    • Паттерн «Deployment pipeline»;
    • Паттерны развертывания;
    • Использование технологий Docker и Kubernetes;
    • Использование сетки ISTIO;
    • Бессерверное развертывание;
    • Стратегии развертывания (сине-зеленые, канареечные и т.д.).
  • 8. Стратегии миграции от монолита к MSA (2 ч.)

    • Стратегии перехода с монолита на микросервисы;
    • Удушение монолита (Strangler monolith);
    • Паттерны удушения;
    • Связь микросервиса с монолитом;
    • Миграция базы данных.
  • Развернуть программу
Раcписание курсов
Вид:
20.05.2024 - 29.05.2024
10:00-13:00
Локация:Онлайн
Длительность:24 ак.ч.
Время:10:00-13:00
48 900 руб.
Записаться
Смотреть полное расписание
Тренеры
Лавыш Александр
Эксперт в области разработки и архитектуры ПО

Александр – эксперт с практическим опытом более 14 лет. За свою карьеру он успешно реализовал проекты в ведущих российских и мировых IT-компаниях.

О проектах:

В рамках проектов Александр занимался разработкой клиентских (Web и Desktop) и серверных приложений (SOA, MSA, Mono), разработкой архитектурных IT-систем, настройкой рабочих и IT процессов, анализом и оптимизацией проектов по сложности и стоимости.

Также Александр занимался разработка IT-стратегий для клиентов и утверждением архитектурных стандартов для приложений, участвовал в разработке бизнес-архитектуры.

Текущая сфера интересов - разработка распределенных систем с ограниченным уровнем доверия.

Курсы, сертификаты, членство в профессиональных организациях:

  • ICAgile Certified Professional

  • MongoDB M220 JavaScript

  • MongoDB M220 Java

Отзывы (8)
Курс хороший, лектор при возникновении вопросов всегда отвечал на них, разъяснял, приводил множество примеров. Понравились структура материала, широта охвата предметной области, стройность подхода к выбору архитектуры и проектированию микросервисов, а также упор на поиск компромиссов, DDD.
Участник тренинга
Хороший тренер, помог нам лучше понять основные концепции. Было интересно разделиться на группы и проводить мозговой штурм. Больше всего понравилась информация про архитектуру и дизайн микросервисов, а также задание, которое дали нашей группе для решения. Единственное, показалось, продолжительность курса мала для такого объема информации.
Участник тренинга
Тренинг мне очень понравился, особенно могу отметить качество подготовленного материала, навыки лектора и широкий охват тем для повышения кругозора. Самой полезной частью курса для меня стало описание взаимодействия микросервисов в МСО и примеры из реального опыта. Спасибо за такую возможность!
Участник тренинга
Понравились объем и широта охвата тем, в результате есть «helicopter view» по MSA и стало видно, в каком направлении двигаться дальше, как спроектировать архитектуру приложения на основе микросервисов, преобразовать монолитное приложение в приложение с микросервисами. В качестве рекомендации: разбавить теорию примерами из практики и добавить больше практических заданий.
Участник тренинга
Тренер произвел впечатление очень высококвалифицированного и опытного специалиста, он был готов всегда ответить на вопросы. Понравилось обилие материалов и информации, задание на построение микросервиса, материалы о построении и использовании МСА (в т. ч. безопасность, развертывание и сопровождение). Понравилось изложение материала, в частности наличие на слайдах англоязычных терминов и их перевода на русский.
Участник тренинга
Хорошо подобран и преподнесен курс. Тренер пытался максимально доступно рассказать про каждую тему. Понравилось, что много паттернов и практик в одном курсе, весь цикл разработки исчерпывающе покрыт, были интересные кейсы и практические задания, особенно практическое занятие по построению доменной модели.
Участник тренинга
Понравились учебная литература и материалы (про архитектуру приложений, BigData, сравнение плюсов и минусов реализаций MSA, кубернетес), как скомпонован материал, что есть большое количество примеров и тренер, который помогал и отвечал на все вопросы. Хорошо, что информация собрана теперь в одном месте в виде презентаций, за это отдельное спасибо.
Участник тренинга
Широкий охват концепций, решений, технологий, платформ, используемых при проектировании микросервисной архитектуры. Автор постарался представить все современные подходы в строительстве МСА. Кроме того, в ходе обучения были получены подробные чеклисты по пр. В целом, впечатление хорошее, спасибо!
Участник тренинга
Показать все отзывы
Связанные курсы
Ключевые практики архитектора ПО
Курс является введением в системную архитектуру (архитектуру ПО) и знакомит с ключевыми практиками: выявление требований, проектирование, документирование, анализ и оценка архитектуры, а также даёт представление о месте архитектуры в жизненном цикле разработки ПО.
Онлайн:
03.04.2024 - 24.04.2024
Онлайн:
24.06.2024 - 05.07.2024
Онлайн:
08.07.2024 - 19.07.2024
Domain Driven Design
Предметно-ориентированное проектирование (DDD) предлагает общий подход к обеспечению большей гибкости и модифицируемости программных систем на основе более тщательного исследования предметной области и отражения ее структуры в разрабатываемой системе. Участники курса узнают, какие инструменты и практики DDD помогают в построении корпоративных систем со сложной бизнес-логикой и применят стратегические паттерны для декомпозиции предметной области, для разрабатываемой системы. Для дальнейшего проектирования и реализации выделенных в результате декомпозиции компонентов, “ограниченных контекстов” в терминологии DDD, используем тактические паттерны DDD, в первую очередь Агрегаты. В основе материалов курса лежат реальные примеры разработанных систем.
Онлайн:
19.06.2024 - 28.06.2024
Онлайн:
12.08.2024 - 21.08.2024
Интеграция в корпоративных системах
Современные компании используют десятки и сотни программных систем, которые обращаются друг к другу и обмениваются данными. Организация взаимодействия систем и приложений называется интеграцией. Выработано множество способов интеграции – обмен файлами, использование общих баз данных, удаленный вызов процедур, обращение к сервисным интерфейсам, обмен сообщениями, использование интеграционных шин и не только. На тренинге мы рассмотрим спектр возможных проблем и решений, их области применимости, сильные и слабые стороны. Также разберем состав требований к проекту интеграции. Немало внимания уделяется самому составу сообщения, как его форма влияет на то, как будет проходить интеграция и как это влияет на обеспечение надежности участников интеграции. Основной акцент сделан на понимании требований к интеграции связанных шаблонов и последствиям решений. Современные системы предлагают много схожего функционала, однако маркетинг может вводить в заблуждение своими буклетами, поэтому надо понимать основы, на которых построены предлагаемые вендорами интеграционные решения.
Онлайн:
15.04.2024 - 24.04.2024
Онлайн:
03.07.2024 - 10.07.2024
Архитектура в Agile-проектах
Данный курс знакомит слушателей с основными архитектурными практиками в контексте Agile. Каким образом концепции Agile и архитектурные практики дополняют друг друга, к чему могут приводить перекосы в ту или иную сторону и как практически можно и нужно адаптировать работу архитектора в Agile-проектах.
Смотреть каталог
Ваши преимущества
Экспертность
Тренеры-эксперты из реальных проектов крупнейших компаний, лидеров в своей отрасли
Живое обучение
“Живая” коммуникация с тренером даже в онлайн-формате
Практика
Максимально наполненные практикой занятия, работа в группах, выполнение домашних заданий
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.