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

[щопонеділка та щосереди]
Комплексний курс для Java-розробників, який навчить будувати складні мікросервісні архітектури з нуля або підтримувати роботу вже наявних систем завдяки інструментам Spring Cloud і Kubernetes.
щоби розібратися в шаблонах проєктування мікросервісів, опанувати інструменти 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.
- Дізнаєтесь, як захищати розподілену систему.
- Навчитесь організовувати доступ до системи на базі ролі.