Описание
Программа курса "Микросервисы на Java" включает 5 модулей, которые позволяют слушателям ознакомиться с концепциями и паттернами микросервисной архитектуры, а также применить эти знания на практике.
В первом модуле слушатели знакомятся с концепцией микросервисов, изучают архитектуру и компоненты микросервисов.
Во втором модуле студенты изучают декомпозицию системы на микросервисы с использованием трех методологий: принципов Объектно-Ориентированного проектирования, декомпозиции по бизнес-способностям и декомпозиции по поддоменам (на основе Domain Driven Design).
Третий модуль посвящен коммуникации между микросервисами, включая синхронную и асинхронную коммуникацию, использование RESTful API и использование Kafka.
В четвертом модуле слушатели изучают управление данными в микросервисной архитектуре, включая распределенные транзакции, CAP-теорему, паттерн SAGA, Event Sourcing, паттерн CQRS, паттерн Outbox. Также затрагивается вопрос управления миграцией данных на основе Liquibase.
В пятом модуле слушатели узнают о деплое микросервисов, включая контейнеризацию, упаковку приложений в Docker-контейнеры, настройку Kubernetes и автоматическое масштабирование.
Курс включает как теоретическую, так и практическую части. По окончании курса слушатели будут обладать навыками разработки и реализации микросервисов на языке Java, а также пониманием основных принципов и подходов в микросервисной архитектуре.удостоверение о повышении квалификации государственного образца
Цели
Целевая аудитория
Предварительная подготовка
Умение писать код на Java, понимание основных концепций объектно-ориентированного программирования, знание основных библиотек и фреймворков
Знание Spring Boot
Знание основных принципов веб-разработки, включая HTTP, REST, JSON
Понимание основных принципов работы с базами данных, знание SQL и опыт работы с реляционными базами данных
Опыт работы с инструментами разработки на Java, такими как Maven, Gradle, Git и IDEРазбираемые темы
-
1.Погружение в микросервисы [Теория 4 ч.]
-
Что такое микросервисы и как они связаны с Java?
-
Преимущества и недостатки микросервисной архитектуры
-
Основные принципы микросервисов
-
-
2.Декомпозиция на микросервисы [Теория 2 ч.; Практика 2 ч.]
-
Проектирование микросервисов на Java
-
Декомпозиция на основе принципов Объектно-Ориентированного Дизайна
-
Декомпозиция на основе принципов Бизнес-возможностей
-
Определение границ между сервисами
-
Использование Domain-Driven Design в микросервисной архитектуре
-
-
3.Коммуникация между микросервисами на Java [Теория 3 ч.; Практика 4 ч.]
-
Протоколы взаимодействия микросервисов на Java
-
Синхронное взаимодействие между микросервисами с помощью REST API
-
Использование message brokers для обмена данными между сервисами на Java
-
-
4.Управление данными в микросервисах на Java [Теория 3 ч.; Практика 5 ч.]
-
Хранение данных в микросервисах
-
Различные подходы к управлению данными
-
Стратегии персистентности в микросервисах
- Общая База Данных
- База Данных на Сервис
- Схема на Сервис
- CAP теорема
-
Eventual consistency
-
Распределенные транзакции
-
Паттерн SAGA
-
Паттерн Event Sourcing
-
Паттерн CQRS
-
Паттерн Outbox
-
Миграции данных с помощью Liquibase
-
-
5.Деплоймент микросервисов [Теория 3 ч.; Практика 4 ч.]
-
Использование Docker для контейнеризации микросервисов
-
Использование Kubernetes для деплоя и масштабирования микросервисов
-
-
6.Практические задания
-
Анализ предметной области и декомпозиция домена на поддомены, выделение микросервисов
-
Реализация микросервисов как независимых Spring Boot приложений
-
Реализация синхронной коммуникации между микросервисами с использованием REST API и OpenFeign
-
Реализация асинхронного обмена сообщениями между микросервисами с применением Kafka и Stream Cloud Stream.
-
Практика реализации распределенных транзакций с помощью SAGA
-
Практика реализации паттерна Outbox для надежной доставки сообщений
-
Практика миграции данных с помощью Liquibase
-
Контейнеризация микросервисов на Java с использованием Docker
-
Развертывание микросервисов в Kubernetes-кластере.
-
-
Итого на курс 30 часов: теория – 15 ч (50 %), практика – 15 ч (50%)