Основы работы с микросервисами
В этом видео мы пошагово разберём, почему реальные корпоративные системы значительно сложнее учебных проектов, и как правильно строить архитектуру приложений. В этом видео мы разбираемся: чем отличается "учебный" монолит от продакшн-системы; зачем нужна обсервабилити (метрики, логи, трейсы) и как её реализовать через Grafana, Prometheus, Loki, Tempo, Alloy; что такое деградация системы и как работают вертикальное и горизонтальное масштабирование; как реализовать распределённые транзакции с помощью паттерна Saga (оркестрация и хореография); как организовать безопасность с помощью Keycloak и API Gateway; как использовать OpenAPI + codegen для генерации DTO и Feign-клиентов; как настроить удобное окружение через Docker Compose + Makefile, Nexus и Spring Boot. В практической части мы создадим микросервисную систему: сервис `person-service` для работы с пользователями; API Gateway для регистрации и аутентификации; интеграцию с Keycloak; аудит изменений (Hibernate Envers); инфраструктурный стек мониторинга и логирования. В конце вы увидите полный цикл: запуск сервисов в Docker, проверка через Postman, метрики и трейсы в Grafana. Это видео - полноценный практикум по построению микросервисной архитектуры с нуля. Инженерное сообщество: https://t.me/esuleimanov
Ссылка на Github репозиторий: https://github.com/proselytear/prosel...
Видео по основам Keycloak • Основы Keycloak Видео по основам Docker и k8s • Docker и Kubernetes глазами разработчика Видео по основам WebFlux • Создание REST API с использованием Spring ... Видео по основам системного дизайна • Основы системного дизайна за 30 минут Видео по основам тестирования ПО • Тестирование ПО глазами разработчика Видео по основам observability распределенных систем (Prometheus, Grafana, Alloy, Loki, Tempo) • Основы observability распределенных систем... 00:00:00 Введение: почему реальные системы сложнее учебных 00:01:12 Стандартная архитектура учебного приложения 00:03:35 Обсервабилити: метрики, логи, трейсы 00:06:00 Масштабирование: вертикальное и горизонтальное 00:08:52 Проблема деградации системы под нагрузкой 00:14:54 Переход к микросервисной архитектуре 00:15:55 Распределённые транзакции: паттерн Saga 00:19:05 Безопасность и Keycloak 00:21:14 Общее описание целевой учебной системы 00:23:15 API Gateway и оркестрация запросов 00:24:11 Описание подхода к поднятию локального окружения 00:25:25 SDK и OpenAPI codegen: генерация DTO и клиентов 00:27:38 Настройка инфраструктуры: Docker Compose + Makefile 00:31:11 Рекомендация по работе с кодом 00:32:00 Создание нового проекта proselyte-system 00:32:45 Начало работы над блоком инфраструктуры 00:35:55 НАПИСАНИЕ КОДА - ВЕТКА STEP-1 (docker-compose.yml) 01:02:36 Краткое описание полученного docker-compose.yml файла 01:06:28 НАПИСАНИЕ КОДА - ВЕТКА STEP-1 (конфигурационные файлы для сервисов) 01:30:09 Демонстрация запуска инфраструктуры и сервисов 01:38:28 Описание системы в С4 нотации (диаграммы C4: контекст, контейнеры, sequence) 01:47:56 Проектирование Person Service (С4 component) 01:52:54 Создание нового сервиса person-service в проекте 01:54:50 Добавление OpenAPI для Person Service 01:57:00 НАПИСАНИЕ КОДА - ВЕТКА STEP-2 (build.gradle.kts с конфигурацией кодогенерации для person-service) 02:55:06 Краткое описание полученного build.gradle.kts и сгенерированных артефактов 03:01:50 НАПИСАНИЕ КОДА - ВЕТКА STEP-2 (настройка миграции для основной схемы и схемы аудита средствами Flyway) 03:32:10 Тестовый запуск person-service и проверка успешности выполнения миграций БД 03:33:35 НАПИСАНИЕ КОДА - ВЕТКА STEP-2 (реализация непосредственно логики person-service) 04:09:39 Запуск приложения и демонстрация полученного результата 04:10:20 НАПИСАНИЕ КОДА - ВЕТКА STEP-2 (добавление Dockerfile для person-service и создание Makefile для более удобного запуска системы) 04:32:05 Запуск приложения, выполнение тестовых запросов и демонстрация полученного результата 04:43:50 Создание каркаса сервиса api 04:46:14 Проектирование сервиса api (С4 container + component, sequence диаграммы) 04:52:40 НАПИСАНИЕ КОДА - ВЕТКА STEP-3 (создание api сервиса с использованием Spring WebFlux с кодогенерацией, импортом зависимости person-api и реализацией SAGA - оркестрация). 06:30:42 Описание реализации сервиса api 06:36:07 Запуск api сервиса и тестирование с использованием Postman. 06:38:28 Создание Dockerfile для сервиса api, изменение docker-compose.yml и запуск всей системы с помощью Makefile в docker. 06:42:40 Анализ observability стека (данные по метрикам, логам и трейсам) 06:45:58 Добавление интеграционных тестов с использованием Testcontainers (Keycloak + Wiremock) - ВЕТКА STEP-4 06:50:40 Сборка и запуск интеграционных тестов. 06:51:06 Подведение итогов