◐ Shell
clean mode source ↗

CloudJava - курс Микросервисы

Список используемых технологий:

  • Основной функционал:
    • Spring Boot 3
    • Spring MVC, REST API - веб императивный стек
    • Project Reactor, Spring WebFlux, REST API - веб реактивный стек
  • Хранение и работа с данными
    • Postgres - основная БД
    • Spring Data Jpa / Hibernate - ORM, доступ к данным
    • Flyway - инструмент миграций БД
    • R2DBC - доступ к данным по реактивному драйверу
    • Redis - хранение сессий, Redis RateLimiter
  • Инструменты Kafka
    • Kafka - распределенное хранилище данных
    • Kafka Connect + Debezium Postgres Connector
    • Avro - сериализация данных для Kafka
    • Confluent Schema Registry - хранение схем данных для Kafka
    • TestContainers Kafka - тестирование
  • Стек Spring Cloud
    • Spring Cloud Resilience4j - RateLimiter, Circuit Breaker, Retry
    • Spring Cloud Config Server - хранение конфигураций
    • Spring Cloud Netflix Eureka (Service Discovery) - обнаружение микросервисов
    • Spring Cloud Gateway - единая точка входа в приложение
  • Тестирование
    • TestContainers - тестирование с помощью контейнеров Docker
    • WireMock - интеграционное тестирование, имитации реального API
    • MockWebServer (OkHttp) - интеграционное тестирование HTTP-запросов
    • Awaitility - тестирования асинхронных операций
  • Сборка, развертывание, управление
    • Gradle - сборка ПО
    • Docker / Docker Compose - контейнеризация приложений
    • Github Actions - простые пайплайны CI
  • Аутентификация и авторизация
    • KeyCloak - сервер автризации и аутентификации
    • JWT - JSON Web Tokens
    • OAuth 2.0 - авторизация
    • Защита от CSRF-атак
    • OpenID Connect - аутентификация
    • TestContainers Keycloak - тестирование KeyCloak
  • Логирование и мониторинг
    • Micrometer - инструментация микросервисов для получения метрик
    • Zipkin - распределенные трассировки
    • OpenZipkin Brave - расширение инструментирования Micrometer для Zipkin
    • Prometheus - сбор, аггрегация и хранение метрик
    • Tempo - распределенные трассировки (после Zipkin в образовательных целях)
    • Loki - сбора и анализа логов
    • Grafana - визуализация данных (трассировок, метрик, логов)

Из трансляции с Александром ответ на вопрос:
насколько темы на курсе охватывают те знания, которые необходимы для вашей текущей работы

Схема микросервисов

Структура проекта

Скидка 35%
34000 21950 руб.

Вы получаете:

  • Доступ навсегда ко всем материалам занятий и репозиториям микросервисов
  • Персонализированную поддержку и живое общение в ТГ-группе с темами на каждое занятие.
    В том числе после завершения обучения
  • Домашние задания для самостоятельного выполнения с разбором решения
  • Практику и примеры применения более 30-ти технологий на стеке Spring Cloud
  • Огромный стек технологий в резюме и группа проектов в портфолио
  • Повышенная ценность, как Java-разработчика и новый уровень дохода
  • Полное понимание компонентов микросервисов и их взаимодействия
  • После прохождения – электронный сертификат об окончании курса
Время прохождения не ограничено, материалы даются навсегда

CloudJava + K8s/Helm + проект Rescue Service + TopKotlin

CloudJava + K8s/Helm + проект Rescue Service + DocJava

Скидки на пакеты

CloudJava + Многомодульный Maven, многопоточность, JavaEE

CloudJava + Веб-проект для бизнеса и Командная разработка

Всем участникам предоставляются:

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

Общение с нашими выпускниками в специальной группе Slack и канале Telegram

Свежие вакансии для начинающих разработчиков, помощь с Java, отзывы о работодателях, события IT, интересные видео...

Доступ ко всем материалам навсегда, без привязки ко времени и местоположению

Все видео доступны для просмотра онлайн и скачивания в любое время и без ограничения по срокам. Записи разбиты по темам и тщательно отредактированы. Большое количество подобранных ресурсов для углубления в детали.

Специальные цены участника на все наши проекты

Способы оплаты:

Возврат стоимости неактивированных курсов (при покупке пакета) и непроверенных уроков в течение месяца со дня оплаты

Обучение по договору с вашей организацией и оплатой по безналичному расчету (договор, счет, акт приемки). Скидка на каждого сотрудника от 3000 до 7000 руб. в зависимости от количества участников.

Образец договора на курс CloudJava

Начать обучение бесплатно:

Вводная часть

  • Назначение и задачи проекта
  • Манифест от Heroku “12-факторное приложение
  • Паттерны проектирования микросервисной архитектуры
  • Схема и стек приложения
  • Назначение и API микросервисов

Работа с проектом и инструменты

  • Работа с проектом
  • Работа с Gradle
  • Установка Docker

1. Menu Service: управление меню

Вся программа

  • Разработка сервисного слоя
    • Создание сервиса и DTO
    • Тестирование
    • ДЗ-3.1: добавление тестов
    • ДЗ-3.2: реализация сервиса
  • Разработка слоя REST-контроллеров
    • ДЗ-4: реализация контроллера
    • Валидация
    • Обработка HTTP API ошибок
    • OpenAPI документация
    • Тестирование через WebTestClient
    • ДЗ-5: добавление тестов
    • Кэширование Spring-контекста
  • Контейнеризация приложения
    • Создание образа через Dockerfile
    • Запуск образа приложения
    • Volumes. Подключение к контейнеру
    • Контейнеризация через Gradle и Cloud Native Buildpacks
  • Github Actions и рефакторинг
    • Github Actions
    • Дополнение API и рефакторинг

2. Orders Service: формирование заказов

  • Назначение, API, инициализация приложения
    • Реактивный стек (Spring WebFlux/Project Reactor, R2DBC)
  • Разработка слоя данных
    • Миграция DB c Flyway
    • ДЗ-1: создание JPA-модели и репозитория
    • Тестирование
    • ДЗ-2: добавление тестов
    • Подготовка Docker/Docker Compose окружения
  • Разработка сервисного слоя
    • Создание сервиса, DTO, неблокирующего MenuClient, сортировка и пагинация
    • Тестирование с помощью OkHttp и Wiremock
    • ДЗ-3.1: добавление тестов
    • ДЗ-3.2: реализация сервиса
  • Разработка слоя REST-контроллеров
    • Подготовка к реализации контроллера
    • Обработка HTTP API ошибок для WebFlux
    • Тестирование через WebTestClient
    • ДЗ-4.1: добавление тестов
    • ДЗ-4.2: реализация контроллера
  • Контейнеризация приложения и GitHub Actions
    • Создание образа
    • Запуск сервисов с помощью docker-compose
    • Тестирование с помощью утиллиты curl и Postman
    • GitHub Actions

3. Reviews Service: управление отзывами к блюдам

  • Назначение, API, инициализация приложения
    • Проблема расчета рейтинга блюда. Биномиальное распределение
  • Разработка слоя данных
    • Миграция DB c Flyway. Функции и триггеры в Postgres
    • ДЗ-1: создание JPA-модели
    • Создание репозиториев и тестирование
    • ДЗ-2.1: добавление тестов
    • ДЗ-2.2: реализация RatingRepository через JPQL и нативный SQL
    • Подготовка Docker/Docker Compose окружения
  • Разработка сервисного слоя
    • Создание интерфейсов, маппера, DTO
    • Тестирование
    • ДЗ-3.1: добавление тестов
    • ДЗ-3.2: реализация сервисов
  • Разработка слоя REST-контроллеров
    • Подготовка к реализации контроллера
    • Тестирование через WebTestClient
    • ДЗ-4.1: добавление тестов
    • ДЗ-4.2: реализация контроллера
  • Контейнеризация приложения и GitHub Actions
    • Создание образа
    • Запуск сервисов с помощью docker-compose
    • Тестирование через Postman
    • GitHub Actions

4. Menu Aggregate Service: получение агрегированных данных

  • Назначение, API, инициализация приложения
  • Подготовка DTO
  • Реализация клиента для связи с внешними сервисами
    • Конфигурирование и общая логика
    • Реализация Menu и Review Service Client
    • Resilience4j: добавляем CircuitBreaker и Retry
    • Тестирование
    • ДЗ-1.1: добавление тестов
    • ДЗ-1.2: реализация ReviewsClient
  • Разработка сервисного слоя
  • Разработка слоя REST-контроллеров
    • Подготовка к реализации контроллера
    • Обработка HTTP API ошибок для WebFlux
    • Тестирование MenuAggregateController
    • ДЗ-3.1: добавление тестов
    • ДЗ-3.2: реализация контроллера
  • Контейнеризация приложения и GitHub Actions
    • ДЗ-4: Создание образа и тестирование через Postman
    • GitHub Actions

5. Config Server: хранение конфигурации во внешнем сервисе

  • Spring Cloud Config
    • Spring Environment
    • Spring Cloud Config
    • Config Server Git-репозиторий
  • Развертываем Spring Cloud Config Server
    • Микросервис Config Server
    • Собираем образ Docker
  • Настраиваем Spring Cloud Config Client в микросервисах
    • Конфигурируем Menu Service
    • Контейнеризируем Menu Service для prod-среды
    • ДЗ: добавляем Config Client к остальным микросервисам

6. Интеграция с Kafka I. Паттерн Transactional Outbox

  • Общая информация по Apache Kafka
    • Кластер с брокерами сообщений
    • Топики, партиции и репликация данных
    • Консьюмеры
    • Продъюсеры
    • Управление кластерной конфигурацией
    • Дополнительные материалы
  • Transactional Outbox: используемые технологии
    • Kafka Connect
    • Debezium Postgres Connector
    • Сериализация / десериализация. Avro
    • Confluent Schema Registry
  • Transactional Outbox: реализация
    • Схема взаимодействия
    • Запуск Postgres в одном контейнере
    • Контейнеры для Kafka, Confluent Schema Registry, Kafka Connect
    • Сохранение в таблице Outbox
    • Настройки Debezium Postgres Connector
    • Регистрируем и проверяем работоспособность коннектора

7. Интеграция с Kafka II. Dispatcher Service


8. Интеграция с Kafka III. Orders Service

  • Интеграция Orders Service и Kafka
    • Обновляем зависимости, подготавливаем ДЗ
    • Тестируем интеграцию с Kafka
    • ДЗ: реализация интеграции с Kafka
    • Обновляем конфигурации для Config Server и Docker Compose
  • Docker Deployment всех микросервисов

9. Service Discovery (Netflix Eureka)

  • Развертываем Eureka Server
    • Микросервис Discovery Service (Netflix Eureka)
    • ДЗ: интеграция с Config Server
  • Настраиваем Eureka Client в микросервисах
    • Конфигурируем Menu Service
    • Контейнеризируем Menu Service
    • Настраиваем Orders Service
    • ДЗ: настраиваем и контейнеризируем Review Service
    • Настраиваем и контейнеризируем Menu Aggregate Service
  • Eureka Server API
  • Обновление Docker Deployment всех микросервисов

10. Gateway Service I. Единая точка входа в приложение

  • Основные компоненты и принципы работы
  • Настройка Spring Cloud Gateway
    • ДЗ: интеграция с Config и Eureka серверами
    • Настройка таймаутов
    • Настройка CircuitBreaker
    • Маршрутизация запросов
  • Настройка фильтров по умолчанию
    • Фильтр Retry
    • Фильтр RequestRateLimiter, подключение Redis

11. Gateway Service II. Распределенная трассировка запросов

  • Основные компоненты и принципы работы
  • Конфигурирование трассировок для Zipkin
    • Настройка трассировок в Gateway Service
    • Настройка трассировок в микросервисах
  • Просмотр трассировок в Zipkin

12. Security, Authorization и Authentication (Keycloak)


13. Observability и Monitoring

  • Общая информация
    • Основные определения
    • Micrometer
    • Prometheus
    • Tempo
    • Loki
    • Grafana
  • Настройка микросервисов
    • Настройка Gateway Service
    • ДЗ: настройка остальных микросервисов
  • Настройка окружения в Docker Deployment
    • Prometheus
    • Tempo
    • Loki
    • Grafana
  • Запуск микросервисов и работа с дашбордами
    • Запуск микросервисов
    • Grafana, вкладка Explore
      • Логи
      • Трассировки
      • Метрики
      • Использование готовых панелей мониторинга
      • Дашборд для Kafka
      • Визуализация показателей Kafka Consumer
      • Визуализация показателей Kafka Producer

14. Обновление до Spring Boot 4 / JDK 25

  • Menu Service
  • Orders Service
  • Gateway Service
  • Config Server
  • Остальные сервисы
  • Config Repository
  • Docker Deployment
  • Заключение
  • Идеи для развития проекта

На текущий момент мы вручную управляем контейнерами с инфраструктурой и микросервисами, что не очень удобно, хотя и возможно, но до тех пор, пока количество микросервисов мало. Когда микросервисов становится гораздо больше, требуется система управления контейнерами.
В современных реалиях де-факто стандартом такой системы является Kubernetes.

Ждем на 2-й части курса по специальной цене:

CloudJava-2: Деплой микросервисов в Kubernetes. Helm

Отзывы участников