Микросервисная архитектура
Данный курс знакомит слушателей с основными концепциями микросервисной архитектуры (МСА). Вводится понятие микросервисной архитектуры, рассматривается её связь с «традиционными» методиками построения системы. Даются шаблоны микросервисной архитектуры, направленные на обеспечение качества разрабатываемой системы. Подробно рассматриваются вопросы развертывания и методы обеспечения значимых качеств МСА.
24 ак.ч.
Онлайн
ARC-015
Микросервисная архитектура
Записаться на курс
Длительность
24 ак.ч.
Локация
Онлайн
Код
ARC-015
Расписание и цены
04.07.2022 - 13.07.2022
01.08.2022 - 10.08.2022
22.08.2022 - 29.08.2022
44 900 руб.
Планируете обучить команду из 7-8 или более человек?
Закажите корпоративное обучение с учетом ваших потребностей
Микросервисная архитектура
Записаться на курс
Длительность
24 ак.ч.
Локация
Онлайн
Код
ARC-015
Расписание и цены
04.07.2022 - 13.07.2022
01.08.2022 - 10.08.2022
22.08.2022 - 29.08.2022
44 900 руб.
Планируете обучить команду из 7-8 или более человек?
Закажите корпоративное обучение с учетом ваших потребностей

Описание

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

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

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

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

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

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

Цели

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

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

  • Архитекторы;
  • 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писание курсов
Вид:
04.07.2022 - 13.07.2022
10:00-15:00
Локация:Онлайн
Длительность:24 ак.ч.
Время:10:00-15:00
44 900 руб.
Записаться
01.08.2022 - 10.08.2022
10:00-15:00
Локация:Онлайн
Длительность:24 ак.ч.
Время:10:00-15:00
44 900 руб.
Записаться
22.08.2022 - 29.08.2022
10:00-14:00
Локация:Онлайн
Длительность:24 ак.ч.
Время:10:00-14:00
44 900 руб.
Записаться
Смотреть полное расписание
Тренеры
Круглов Геннадий
Специалист в области архитектуры и разработки ПО
Геннадий – кандидат технических наук, сертифицированный SOA-архитектор, занимается разработкой ПО с 2003 г.

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

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

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

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

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

Якунин Александр
Специалист в области разработки и архитектуры ПО

Александр имеет более 10 летний опыт разработки ПО в корпоративных, государственных, финансовых отраслях, а также в автоматизации розничной торговли. Обладает широким кругозором в технологиях и процессах разработки программного обеспечения. Периодически участвует в публичных и внутренних технических мероприятиях в качестве спикера, а также в процессах найма сотрудников в качестве технического интервьюера.

В Luxoft с 2017 года. В настоящий момент работает на позиции Solution Architect.

Отзывы (8)
Курс хороший, лектор при возникновении вопросов всегда отвечал на них, разъяснял, приводил множество примеров. Понравились структура материала, широта охвата предметной области, стройность подхода к выбору архитектуры и проектированию микросервисов, а также упор на поиск компромиссов, DDD.
Участник тренинга
Хороший тренер, помог нам лучше понять основные концепции. Было интересно разделиться на группы и проводить мозговой штурм. Больше всего понравилась информация про архитектуру и дизайн микросервисов, а также задание, которое дали нашей группе для решения. Единственное, показалось, продолжительность курса мала для такого объема информации.
Участник тренинга
Тренинг мне очень понравился, особенно могу отметить качество подготовленного материала, навыки лектора и широкий охват тем для повышения кругозора. Самой полезной частью курса для меня стало описание взаимодействия микросервисов в МСО и примеры из реального опыта. Спасибо за такую возможность!
Участник тренинга
Понравились объем и широта охвата тем, в результате есть «helicopter view» по MSA и стало видно, в каком направлении двигаться дальше, как спроектировать архитектуру приложения на основе микросервисов, преобразовать монолитное приложение в приложение с микросервисами. В качестве рекомендации: разбавить теорию примерами из практики и добавить больше практических заданий.
Участник тренинга
Тренер произвел впечатление очень высококвалифицированного и опытного специалиста, он был готов всегда ответить на вопросы. Понравилось обилие материалов и информации, задание на построение микросервиса, материалы о построении и использовании МСА (в т. ч. безопасность, развертывание и сопровождение). Понравилось изложение материала, в частности наличие на слайдах англоязычных терминов и их перевода на русский.
Участник тренинга
Хорошо подобран и преподнесен курс. Тренер пытался максимально доступно рассказать про каждую тему. Понравилось, что много паттернов и практик в одном курсе, весь цикл разработки исчерпывающе покрыт, были интересные кейсы и практические задания, особенно практическое занятие по построению доменной модели.
Участник тренинга
Понравились учебная литература и материалы (про архитектуру приложений, BigData, сравнение плюсов и минусов реализаций MSA, кубернетес), как скомпонован материал, что есть большое количество примеров и тренер, который помогал и отвечал на все вопросы. Хорошо, что информация собрана теперь в одном месте в виде презентаций, за это отдельное спасибо.
Участник тренинга
Широкий охват концепций, решений, технологий, платформ, используемых при проектировании микросервисной архитектуры. Автор постарался представить все современные подходы в строительстве МСА. Кроме того, в ходе обучения были получены подробные чеклисты по пр. В целом, впечатление хорошее, спасибо!
Участник тренинга
Показать все отзывы
Связанные курсы
Domain Driven Design
Предметно-ориентированное проектирование (DDD) предлагает общий подход к обеспечению большей гибкости и модифицируемости программных систем на основе более тщательного исследования предметной области и отражения ее структуры в разрабатываемой системе. Участники курса узнают, как DDD помогает в построении корпоративных систем со сложной бизнес-логикой и применят стратегические паттерны для декомпозиции сначала предметной области, а затем разрабатываемой системы. Для дальнейшего проектирования и реализации выделенных в результате декомпозиции компонентов, “ограниченных контекстов” в терминологии DDD, используем тактические паттерны DDD, в первую очередь Агрегаты. Рассматриваются разные варианты архитектуры, в том числе многослойная, шестиугольная (гексагональная), сервисно-ориентированная (SOA), событийная (EDA), CQRS, Event Sourcing. В основе материалов курса лежат реальные примеры разработанных систем.
Онлайн:
11.08.2022 - 18.08.2022
Интеграция в корпоративных системах
Современные компании используют десятки и сотни программных систем, которые обращаются друг к другу и обмениваются данными. Организация взаимодействия систем и приложений называется интеграцией. Выработано множество способов интеграции – обмен файлами, использование общих баз данных, удаленный вызов процедур, обращение к сервисным REST и SOAP интерфейсам, обмен сообщениями, использование интеграционных шин и не только. На тренинге мы рассмотрим спектр возможных решений, их области применимости, сильные и слабые стороны. Разберемся в стандартах семейства WebService (SOAP/WSDL/WS-*) и не совсем стандартах, описывающих REST. Подробно рассмотрим состав требований к проекту интеграции. Основной акцент сделан на асинхронном обмене сообщениями через очереди и паттернах интеграции, описывающий базовые элементы решений, построенных как на классических очередях сообщений, таких, как IBM MQ, ActiveMQ, RabbitMQ, так и современных инструментах типа Kafka и Pulsar. Из интеграционных шин рассмотрим IBM AppConnect (бывшая IBM Integration Bus), Mule ESB и Apache Camel (в виде отдельного фреймворка и в составе ServiceMix и Red Hat Fuse ESB).
Онлайн:
15.08.2022 - 19.08.2022
Архитектура в Agile-проектах
Данный курс знакомит слушателей с основными архитектурными практиками в контексте Agile. Каким образом концепции Agile и архитектурные практики дополняют друг друга, к чему могут приводить перекосы в ту или иную сторону и как практически можно и нужно адаптировать работу архитектора в Agile-проектах.
Смотреть каталог
Ваши преимущества
Экспертность
Тренеры-эксперты из реальных проектов крупнейших компаний, лидеров в своей отрасли
Живое обучение
“Живая” коммуникация с тренером даже в онлайн-формате
Практика
Максимально наполненные практикой занятия, работа в группах, выполнение домашних заданий
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.