Enterprise Spring Boot
Spring в больших кодовых базах: модульность, транзакции, безопасность и наблюдаемость.
Эта программа планируется и ещё не включена в расписание. Дата, цена и группа не объявлены. Если вы оставите интерес, мы свяжемся, когда программа будет запланирована, или чтобы обсудить индивидуальный формат.
Цель
Программа нацелена на грамотное использование Spring Boot от небольшого сервиса до большой долгоживущей кодовой базы. Конфигурация и модульность, транзакции и согласованность, безопасность на OAuth2/OIDC, версионирование API и наблюдаемость изучаются как единое целое. В конце участник может оценить существующее Spring-приложение и подготовить план улучшений.
Для кого
- Разработчики уровня middle на Spring Boot, отвечающие за общую кодовую базу
- Те, кто хочет глубоко, а не поверхностно понимать Spring Security и OAuth2/OIDC
- Инженеры, которым нужно безопасно обновить старое Spring-приложение
- Инженеры, набирающие глубину по Spring для роли senior backend
Для кого не подходит
- Те, кто впервые знакомится со Spring Boot: лучше подойдёт Java Backend Career Track
- Те, чья главная цель — глубина по JVM и concurrency: лучше подойдёт Advanced Java Backend
- Те, кто сосредоточен на фреймворках, отличных от Spring (Quarkus, Micronaut)
Требования
- Опыт REST-сервиса на Spring Boot и Spring Data JPA
- Понимание транзакций и реляционных баз данных
- Основы HTTP, JSON и аутентификации
- Работа с Maven или Gradle, Git
Что вы сможете делать
Что вы сможете делать
- Разделить большое Spring-приложение на модули с чёткими границами и управлять их зависимостями
- Корректно предсказывать поведение @Transactional (propagation, rollback, ограничения прокси)
- Настроить OAuth2/OIDC resource server на Spring Security и применить method security
- Версионировать API с сохранением обратной совместимости и возвращать ошибки в формате RFC 9457
- Связывать метрики, трейсы и логи через Micrometer и OpenTelemetry
- Осознанно выбирать и применять timeout, retry, circuit breaker и bulkhead
- Настраивать старт, память и пропускную способность на основе измерений
- Подготовить пошаговый план миграции на новую major-версию Spring Boot
Ни одна образовательная программа не может гарантировать трудоустройство или повышение.
Учебный план
Учебный план
- 01
Конфигурация и модульность
Как сохранить управляемыми контейнер Spring и конфигурацию по мере роста кодовой базы.
- Жизненный цикл bean и механизм auto-configuration
- @ConfigurationProperties и стратегия профилей
- Spring Modulith или границы модулей на уровне пакетов
- Направление зависимостей и устранение циклических зависимостей
- Написание собственного starter
Практическая лабораторная: Разделить монолит на модули с чёткими границами и добавить тест, автоматически выявляющий нарушения границ.
- 02
Транзакции и согласованность
Что на самом деле происходит за аннотацией транзакции и где она вводит в заблуждение.
- @Transactional на прокси и ловушка self-invocation
- Правила propagation и rollback
- Isolation, optimistic и pessimistic locking
- Риск внешних вызовов внутри транзакции
- События после коммита (@TransactionalEventListener)
Практическая лабораторная: Воспроизвести сценарий, где частично успешная операция оставляет неконсистентное состояние, и исправить границу транзакции.
- 03
Spring Security, OAuth2 и OIDC
Правильно строим проверку токенов и модель авторизации на стороне resource server.
- Security filter chain и порядок фильтров
- OAuth2 resource server и проверка JWT
- Потоки OIDC и типы токенов
- Method security (@PreAuthorize) и модель полномочий
- CORS, CSRF и политика сессий
- Тестирование безопасности
Практическая лабораторная: Построить resource server с защитой на JWT и проверить тестами method security на ролях и scope.
- 04
Дизайн и версионирование API
Отрабатываем, как развивать API, не ломая его потребителей.
- Моделирование ресурсов и семантика HTTP
- Правила обратно совместимых изменений
- Сравнение подходов к версионированию
- Модель ошибок на RFC 9457 problem details
- Проверка по OWASP API Security Top 10
- OpenAPI и contract-тесты
Практическая лабораторная: Изменить существующий endpoint, не ломая потребителей, и доказать совместимость contract-тестом.
- 05
Наблюдаемость
Делаем поведение системы видимым, связывая метрики, трейсы и логи.
- Метрики Micrometer и cardinality
- Трейсы OpenTelemetry и propagation контекста
- Structured logs и корреляция
- Health probe и защита Actuator
- Алертинг на основе SLI/SLO
Практическая лабораторная: Добавить в сервис трейсинг и метрики и собрать dashboard, прослеживающий один запрос от строки лога до трейса.
- 06
Устойчивость и производительность
Выясняем, как система ведёт себя при деградации зависимости и где находится узкое место.
- Бюджеты timeout, retry и backoff
- Circuit breaker и bulkhead (Resilience4j)
- Размер connection pool и thread pool
- Кэширование: что, где и на сколько
- Настройка старта и памяти
Практическая лабораторная: Смоделировать медленную зависимость и измерить нагрузочным тестом поведение сервиса с timeout и circuit breaker.
- 07
Стратегия обновления и миграции
Планируем смену major-версии и постепенную модернизацию старого кода с низким риском.
- Чтение release notes и migration guide
- Инвентаризация deprecated API
- Наращивание тестового покрытия перед миграцией
- Поэтапный переход и план отката
- Совместимость зависимостей и переход на Jakarta
Практическая лабораторная: Написать план major-обновления Spring Boot и реестр рисков для учебного приложения и выполнить первый этап.
Практические задания
- Архитектурный тест, проверяющий границы модулей
- Воспроизведение и исправление ошибки с транзакцией
- OAuth2 resource server с тестами безопасности
- Обратно совместимое изменение API с contract-тестом
- Отчёт о диагностике по трейсам и метрикам
Результаты для портфолио
- Учебное приложение, разделённое на модули
- OAuth2 resource server с тестами безопасности
- Dashboard наблюдаемости и краткий runbook
- План обновления Spring Boot с реестром рисков
Как оценивается обучение
- Code review ментором
- Защита решений по безопасности и транзакциям
- Письменная презентация плана обновления
- Практическая задача на диагностику
Инструменты и технологии
- Spring Boot 3
- Spring Security
- Spring Data JPA
- Micrometer
- OpenTelemetry
- Resilience4j
- Keycloak
- Testcontainers
- Prometheus и Grafana
- OpenAPI
Последовательность уровней
- До
- До этого: Advanced Java Backend или опыт уровня middle со Spring Boot.
- После
- После: Microservices and Distributed Systems, System Design.
- Длительность и формат
- Длительность и формат ещё не определены; программа планируется и не включена в расписание.
Частые вопросы
Частые вопросы
Доступна ли программа сейчас?
Нет. Программа планируется и пока не стоит в расписании. Даты и цены не объявлены. Вы можете оставить интерес или запросить консультацию.
Нужно ли сначала пройти Advanced Java Backend?
Это не обязательно, но рекомендуется. Если у вас есть реальный опыт Spring Boot и вы знаете основы JVM и JPA, можно присоединиться сразу. На консультации это можно оценить вместе.
Нужен ли опыт с Keycloak или другим identity provider?
Нет, заранее не требуется. Достаточно знать базовые понятия аутентификации; потоки OAuth2/OIDC разбираются в программе шаг за шагом.
Обещает ли программа сертификат или работу?
Нет. Ни сертификат, ни результат не обещаются. Оценка проходит в форме обратной связи ментора и защит и носит рекомендательный характер.
Статьи по теме программы
- Безопасность APIAPI security for backend engineers with the OWASP API Security Top 10
- ObservabilityObservability: logs, metrics and traces
- Spring BootLayering a Spring Boot application: controller, service, repository
- Spring SecurityJWT or server sessions in Spring Security
- Транзакции и согласованностьSpring @Transactional pitfalls: proxies, propagation and rollback rules
- Spring BootValidation and error responses in Spring Boot with ProblemDetail