Микросервисная архитектура

Данный курс знакомит слушателей с основными концепциями микросервисной архитектуры (МСА). Вводится понятие микросервисной архитектуры, рассматривается её связь с «традиционными» методиками построения системы. Даются шаблоны микросервисной архитектуры, направленные на обеспечение качества разрабатываемой системы. Подробно рассматриваются вопросы развертывания и методы обеспечения значимых качеств МСА.
Курс: ARC-015
Длительность: 24 ч.

Описание

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

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

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

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

В курсе рассматриваются основные проблемы, связанные с реализацией микросервисной архитектуры. Стратегии, механизмы, паттерны, решающие озвученные выше задачи. По каждой рассматриваемой проблеме будут представлены наиболее распространённые инструменты (такие, как 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 часов).
  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);
  • Паттерны удушения;
  • Связь микросервиса с монолитом;
  • Миграция базы данных.

Цели

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

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

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

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

Опыт разработки программных систем.
Желательно опыт разработки архитектуры или прохождение курса ARC-001 «Основные практики архитектора ПО», знание подхода DDD или прохождение курса ARC-003 «Domain Driven Design».
После окончания курса выдаётся сертификат на бланке Luxoft Training
Тренер в Онлайн
Круглов Геннадий Специалист в области архитектуры и разработки ПО
Геннадий – кандидат технических наук, сертифицированный SOA-архитектор, занимается разработкой ПО с 2003 г.

Участвовал в разработке корпоративных и веб-приложений в области автоматизации медицины, банковской сферы, страхования и онлайн-бизнеса, занимая различные должности: от разработчика до архитектора и руководителя.

Разработанные Геннадием решения работают в крупном российском банке, поликлиническом звене Москвы, лидирующем финансовом онлайн-проекте, известной страховой компании.

С 2008 г. выполняет решения на платформе Java.

С 2010 г. преподает дисциплины, связанные с разработкой ПО, имеет опыт проведения авторских курсов и семинаров.

Геннадий увлекается проектированием ПО, имплементацией SOA в различных приложениях, построением команд и управлением разработкой.

Волошин Дмитрий Эксперт в области архитектуры ПО

Действующий архитектор в компании Luxoft.

Сертифицированный Professional Google Cloud Architect.

С 2011 года занимается разработкой приложений enterprise уровня.

Раcписание курса в Цены
Данный курс запланирован в городах: Онлайн
18.10.2021 - 22.10.2021
Время: 10:00-15:00
Локация: Онлайн
Длительность: 24 ч.
Тренер
Круглов Геннадий
Специалист в области архитектуры и разработки ПО
42 500 руб.
12 500 грн.

18.10.2021 - 22.10.2021

08.11.2021 - 15.11.2021
Время: 09:00-13:00
Локация: Онлайн
Длительность: 24 ч.
Тренер
Волошин Дмитрий
Эксперт в области архитектуры ПО
42 500 руб.
12 500 грн.

08.11.2021 - 15.11.2021

17.12.2021 - 24.12.2021
Время: 09:00-13:00
Локация: Онлайн
Длительность: 24 ч.
Тренер
Волошин Дмитрий
Эксперт в области архитектуры ПО
42 500 руб.
12 500 грн.

17.12.2021 - 24.12.2021

18.10.2021 - 22.10.2021
Время: 10:00-15:00
Локация: Онлайн
Длительность: 24 ч.
Тренер
Круглов Геннадий
Специалист в области архитектуры и разработки ПО
42 500 руб.
12 500 грн.
08.11.2021 - 15.11.2021
Время: 09:00-13:00
Локация: Онлайн
Длительность: 24 ч.
Тренер
Волошин Дмитрий
Эксперт в области архитектуры ПО
42 500 руб.
12 500 грн.
17.12.2021 - 24.12.2021
Время: 09:00-13:00
Локация: Онлайн
Длительность: 24 ч.
Тренер
Волошин Дмитрий
Эксперт в области архитектуры ПО
42 500 руб.
12 500 грн.
Не подходят даты, время или хотите заказать корпоративное обучение для команды?
+
Предложите свой вариант
Онлайн 42 500 руб.
12 500 грн.
Связанные курсы:
ARC-003
24 ч.
:
24.11.2021-26.11.2021
:
14.03.2022-18.03.2022
:
08.11.2021-12.11.2021
:
14.02.2022-18.02.2022
array (
  0 => 
  array (
    'NAME' => 'Микросервисная архитектура',
    'CODE' => 'ARC-015',
    'DATE' => '18.10.2021 - 22.10.2021',
    'DATE_BEGIN' => '18.10.2021',
    'EVENT_CITY' => 'Онлайн',
    'ID_TIME' => '113254',
  ),
  1 => 
  array (
    'NAME' => 'Микросервисная архитектура',
    'CODE' => 'ARC-015',
    'DATE' => '08.11.2021 - 15.11.2021',
    'DATE_BEGIN' => '08.11.2021',
    'EVENT_CITY' => 'Онлайн',
    'ID_TIME' => '110992',
  ),
  2 => 
  array (
    'NAME' => 'Микросервисная архитектура',
    'CODE' => 'ARC-015',
    'DATE' => '17.12.2021 - 24.12.2021',
    'DATE_BEGIN' => '17.12.2021',
    'EVENT_CITY' => 'Онлайн',
    'ID_TIME' => '112131',
  ),
)

Записаться на курс

Выбрать дату
Если Вам не подходят дата и место проведения тренинга, Вы можете оставить заявку на участие в нем в любом из городов, где представлены филиалы Luxoft Training. Для этого выберите вариант "Открытая дата" и укажите желаемое место проведения курса.
Желаемое место проведения курса
Вы можете оставить заявку на корпоративное обучение сотрудников Вашей компании в любом городе России или Украины, выбрав вариант "Другой город"
Фамилия *

Имя *

Отчество

Контактный E-mail *

Компания *

Телефон *

Город *

Комментарий
Оценка и обучение ИТ-специалистов по ключевым направлениям разработки программного обеспечения. Курсы от экспертов-практиков по языкам программирования, системному и бизнес-анализу, архитектуре ПО, ручному и автоматизированному тестированию ПО, Big Data и машинному обучению, управлению проектами и Agile. Luxoft Training – первый учебный центр в России, авторизованный IIBA. Действует скидка 10% на обучение физических лиц.
Остались вопросы?
Связаться с нами
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.