Микросервисы Spring Cloud для Java
Виталий Куликов
IT Architect в UBS Business Solutions Poland
20 лет опыта в IT

[по понедельникам и средам]
Комплексный курс для Java-разработчиков, который научит строить сложные микросервисные архитектуры с нуля или поддерживать работу существующих систем благодаря инструментам Spring Cloud и Kubernetes. -3-
чтобы разобраться в шаблонах проектирования микросервисов, овладеть инструментами Spring Cloud и строить распределенные системы с последующим развертыванием в облачных средах
чтобы повысить квалификацию, оптимизировать процесс разработки благодаря переходу с монолита на микросервисы Spring Cloud, научиться работать со средой Kubernetes и реализовывать сложные проекты
имеете опыт коммерческой разработки на Java от 1 года
знаете, как работать с Gradle или Maven, и имели практический опыт использования
знаете, как управлять изолированными Linux-контейнерами с помощью Docker

Микросервисы — это подход к разработке, при котором большая система разбивается на независимые составные части, которые могут функционировать отдельно друг от друга. Это позволяет разработчикам быстро и просто развивать, поддерживать и масштабировать сложные проекты, не нарушая общую структуру. А Spring Cloud — инструмент, благодаря которому все это можно реализовать.
На курсе мы начнем с разбора паттернов микросервисов, а затем шаг за шагом овладеем каждым инструментом Spring Cloud для построения и поддержки системы микросервисов в облачной среде. Далее — научимся пользоваться платформой Kubernetes, что позволит оптимизировать процесс мониторинга, автоматизации поставок данных и управления сервисами. Навыки, полученные во время курса, позволят построить систему микросервисов с нуля, быстро масштабировать системы и имплементировать их в облако.
· поймете, какие принципы лежат в основе распределенных систем
· узнаете, как оптимизировать процесс разработки с помощью микросервисов в
· рассмотрите этапы миграции систем в облачные сервисы
· овладеете инструментами Spring Cloud для оптимизации процесса построения микросервисной архитектуры
· научитесь взаимодействовать с платформой Kubernetes для управления сервисами
· будете работать с Apache Kafka, Docker, PostgreSQL, IntelliJ IDEA и т. д.
· научитесь адаптировать продукт под нужды инфраструктуры
· сможете быстро масштабировать системы и имплементировать их в облако
· построите систему микросервисов с нуля
· оптимизируете время на разработку сложного функционала
· научитесь писать микросервисы на Java с помощью Spring Cloud
· откроете новые карьерные возможности

Куликов
- Рассмотрите примеры архитектурных шаблонов микросервисов.
- Поймете, что такое Spring Cloud и зачем его используют.
- Научитесь настраивать локальную среду для выполнения тестового проекта на базе системы Kubernetes (K3s).
- Научитесь создавать проект Spring Cloud с нуля.
- Узнаете, как настроить приложение с помощью внешней конфигурации и активировать профили в зависимости от облачной среды.
- Создадите Docker Image для дальнейшей работы.
- Узнаете, как безопасно передать пароли, ключи, сертификаты с использованием Secret в Kubernetes.
- Научитесь пользоваться Helm для быстрого запуска готовых приложений в Kubernetes.
- Научитесь пользоваться HashiCorp Vault ― инструментом с открытым исходным кодом, гарантирующим безопасное хранение и доступ к различным секретам.
- Запустите инфраструктуру для локальной разработки.
- Узнаете, как создать несколько сервисов и организовать взаимодействие между ними.
- Сможете производить обнаружение с помощью DNS и API.
- Научитесь запускать свои сервисы в Kubernetes.
- Создадите LoadBalanced RestTemplate.
- Узнаете, как происходит балансировка и как строить собственную стратегию балансировки.
- Настроите RestTemplate с балансировкой.
- Узнаете, как развернуть локальную инфраструктуру для распределенной системы.
- Рассмотрите принцип работы распределенной асинхронной обработки данных.
- Научитесь писать сервисы, выступающие в роли издателей данных.
- Научитесь писать сервисы, выступающие в роли потребителей данных.
- Узнаете, что такое Spring Cloud Gateway.
- Научитесь создавать полноценную распределенную систему.
- Узнаете, как создать шлюз API в этой системе.
- Рассмотрите паттерн проектирования Circuit Breaker.
- Узнаете, как прорабатывать ошибки.
- Научитесь создавать распределенные системы с высокой доступностью и устойчивостью к ошибкам.
- Рассмотрите примеры возможных сложностей, которые могут возникнуть в распределенных системах.
- Разберете настоящие кейсы проблем в распределенных системах.
- Узнаете, что такое одновременное обновление данных и дублирование сообщений.
- Научитесь выявлять проблемы и предотвращать их с помощью специальных инструментов.
- Узнаете, как можно исправить состояние сервиса.
- Научитесь пользоваться таким инструментом, как Spring Boot Actuator.
- Узнаете, как можно расширить actuator для отображения состояния бизнес-процессов.
- Прокачаете навыки работы со Spring Boot Actuator.
- Разберете метрики, доступные в Spring Boot Actuator.
- Научитесь проверять состояние Pod'а в Kubernetes.
- Узнаете, как сделать доступным состояние сервисов.
- Узнаете, как можно организовать глубокий мониторинг с помощью Spring Boot Admin.
- Научитесь настраивать уведомления в случае сбоя в системе с помощью Spring Boot Admin.
- Научитесь настраивать трекинг обработки данных в распределенных системах и контекст трекинга.
- Узнаете, как собрать и визуализировать трекинг в распределенных системах.
- Научитесь настраивать сбор метрик.
- Узнаете, как настроить Spring Boot Actuator для использования с Prometheus.
- Рассмотрите популярные практики, которые используются для обеспечения безопасности, и разберете реальные кейсы.
- Поймете разницу между Authentication и Authorization.
- Узнаете, как защищать распределенную систему.
- Научитесь организовывать доступ к системе на основе роли.