Tworzenie Microservices z użyciem Spring Boot

Opis

Architektura Microservices to coraz bardziej popularne podejście do tworzenia systemów, które mają duże wymagania związane ze skalowalnością i niezawodnością. Podejście to dostarcza wiele korzyści – rozluźnia zależności pomiędzy częściami systemu, które można niezależnie skalować. Z drugiej strony to architektura rozproszona, która niesie ze sobą wiele wyzwań związanych ze złożonością komunikacji i monitoringiem zachodzących w systemie zdarzeń. Szkolenie to praktyczne zastosowanie narzędzi i wzorców z użyciem Spring Boot/Cloud.

Podstawowy program

Moduł. 1
Wprowadzenie do Microservices
Moduł. 2
Tworzenie Microservices z użyciem Spring Boot
Moduł. 3
Praktyki implementowania Microservices
Moduł. 4
Przykładowy projekt
Moduł. 5
Skalowanie z Spring Cloud
Moduł. 6
Autoskalowanie Microservices
Moduł. 7
Logowanie i monitoring
Moduł. 8
Konteneryzacja
Moduł. 9
Zarządzanie kontenerami z Kubernetes
Moduł. 10
Praktyki procesu wytwarzania oprogramowania związane z Microservices

Szczegółowy program

Moduł. 1
Wprowadzenie do Microservices
  • Definicja Microservices
  • Główne założenia Architektury Microservices (MSA)
  • MSA a SAO
  • Modularyzacja, time-to-market, skalowanie
  • Continuous Delivery a MSA
  • Czy Twoja organizacja jest już gotowa na MSA?
  • Ewolucja w stronę Microservices
  • Charakterystyka systemów typu MSA
  • Główne korzyści MSA
  • MSA a wartość biznesowa
  • Spójność i modularność
  • Modej dojarzałości MSA
Moduł. 2
Tworzenie Microservices z użyciem Spring Boot
  • Omówienie środowiska i narzędzi
  • Tworzenie projektu z użyciem CLI, STS oraz Spring Initializr
  • Konfiguracja
  • Automatyczna konfiguracja
  • Zmiana wbudowanego serwera
  • Implementacja bezpieczeństwa podstawowego i OAuth2
  • Spring Boot Messaging
  • Monitoring z użyciem JConsole i SSH
  • Tworzenie własnych metryk
  • Dokumentowanie Microservices
Moduł. 3
Praktyki implementowania Microservices
  • Wzorce i główne decyzje projektowe
  • Definiowanie granic usług
  • Komunikacja synchroniczna i asynchroniczna
  • Orkiestracja Microservices
  • Silniki reguł
  • BPM a Microservices
  • Granice transakcji
  • Microservices a współdzielenie danych
  • Transakcje rozproszone
  • Microservices zorientowane na komunikaty (message-oriented)
  • Microservices po HTTP
  • Współdzielone biblioteki
  • Interfejs użytkownika
  • API Gateways
  • ESB a Microservices
  • Wersjonowanie usług
  • Logowanie i monitoring
  • Zarządzanie zależnościami
  • Kultura organizacyjna
  • Testowanie
Moduł. 4
Przykładowy projekt
  • Proces projektowania
  • Baza danych
  • Natywne zapytania i procedury składowane
  • Granice dziedzinowe
  • Granice usługi
  • Analiza zależności
  • Wprowadzenie zdarzeń
  • Priorytetyzowanie usług w kontekście migracji
  • Synchronizacja danych w czasie migracji
  • UI i aplikacje web
  • Sesja i bezpieczeństwo
  • Strategie testowania
  • Warstwa pośrednia
  • Obsługa wyjątków
Moduł. 5
Skalowanie z Spring Cloud
  • Czym jest Spring Cloud?
  • Komponenty Spring Cloud
  • Konfiguracja serwera
  • Dostęp do serwera z klienta
  • Obsługa zmian w konfiguracji
  • Monitorowanie stanu serwera
  • Stworzenie klienta REST
  • Ribbon do load balancingu
  • Eureka dla Service Registration and Discovery
  • Konfigurowanie Eureki
  • Skalowanie Eureki
  • Zuul proxy oraz Spring Cloud Gateway jako API Gateway
Moduł. 6
Autoskalowanie Microservices
  • Koncept autoskalowania
  • Korzyści autoskalowania
  • Modele autoskalowania
  • Autoskalowanie aplikacji
  • Autoskalowanie infrastruktury
  • Autoskalowanie w chmurze
  • Skalowanie z ograniczeniami zasobów
  • Skalowanie w wybranych momentach czasowych
  • Skalowanie w oparciu o długość kolejki komunikatów
  • Zarządzanie cyklem życia Microservices
Moduł. 7
Logowanie i monitoring
  • Wyzwania związane z logowaniem
  • Zcentralizowanie logowanie
  • Różne rozwiazania związane z logowaniem
  • Log shippers
  • Log stream processors
  • Log storage
  • Dashboards
  • Spring Cloud Sleuth
  • Zipkin
  • Monitoring microservices
  • Stos ELK
  • Spring Cloud Hystrix
  • Agregacja strumieni Hystrixowych
Moduł. 8
Konteneryzacja
  • Czym są kontenery?
  • Różnica miedzy kontenerem a VM
  • Korzyści z użycia kontenerów
  • Microservices a kontenery
  • Wprowadzenie do Dockera
  • Kluczowe komponenty Dockera
  • Demon Dockerowy
  • Klient Dockerowy
  • Kontenery Dockerowe
  • Wdrażanie Microservices na Dockerze
  • Uruchomienie RabbitMQ na Dockerze
  • Użycie rejestru Dockera
  • Konfiguracja Docker Huba
  • Publikowanie usług w Docker Hubie
Moduł. 9
Zarządzanie kontenerami z Kubernetes
  • Zarządzanie klastrem
  • Powiązania z Microservices
  • Powiązania z wirtualizacją
  • Kubernetes
  • Architektura Kubernetesa
  • Pods
  • ReplicaSets
  • Deployments
  • Services
  • NodePort
  • NodeIP
  • LoadBalanced
  • Konfiguracja przykładowego systemu z użyciem Kubernetes
  • Stworzenie klastra i wdrożenie systemu z użyciem minikube
  • Wdrożenie na AWS EKS
Moduł. 10
Praktyki procesu wytwarzania oprogramowania związane z Microservices
  • DevOps
  • Automatyzacja każdego możliwego kroku
  • Value-driven delivery
  • Łączenie dewelopmentu i operations
  • Wykorzystanie chmury
  • Agile
  • Koncept Minimum Viable Product
  • Continuous monitoring i feedback
  • A/B testing, canary testing, blue-green deployment

Parametry szkolenia

Czas trwania
3 x 8h
Forma zajęć
Ćwiczenia - 60%, wykład - 40%
Kod
MSSB
Wielkość grupy
do 10 osób

1) Kiedy stosować architekturę microservices?

W świecie IT często panują różnego rodzaju mody. Zespoły często decydują się na podejście typu microservices, gdyż podejście to jest zwyczajnie modne. Nie zawsze jest to dobra motywacja. Z drugiej strony poprawnie podjęta decyzja, pozwoli stworzyć niezwykle skalowalny i dobrze skonstruowany system. Szkolenie Spring Boot umożliwia zapoznanie się z kluczowymi heurystykami decyzyjnymi biorącymi pod uwagę m. in.

  • wielkość i złożoność struktury zespołów tworzących system
  • posiadane kompetencje
  • ilość przetwarzanych żądań
  • złożoność organizacji biznesowej

W trakcie szkolenia Spring Boot poznasz również wytyczne, dzięki którym będziesz mógł zdecydować, których z narzędzi użyć, a które pominąć, żeby stworzyć efektywną architekturę m. in.

  • rejestr usług
  • Gateway API
  • Single-Sing On
  • serwer konfiguracji
  • load balancer

2) Na ile dojrzałym narzędziem jest Spring Boot?

Fundamentem dla Spring Boot jest powszechnie używany i sprawdzony w bojach Spring Framework, który istnieje już ponad 15 lat. Spring Framework a obecnie Spring Boot jest de facto standardem w świecie języka Java. Spring Boot pierwotnie zaadaptował narzędzia wspierające architekturę microservices udostępnione przez Netflixa, by po latach stać się rekomendowanym frameworkiem w samym Netflixie. Szkolenie Spring Boot nie tylko przedstawia narzędzia dostarczone przez framework, ale także sposoby ich praktycznego użycia np. poprzez omówienie różnych sposobów skalowania rejestru usług Eureka. Spring Boot to jeden z najczęściej pobieranych projektów open source, to stabilne rozwiązanie, za którym stoi firma Pivotal. Uczestnicy Szkolenia Spring Boot będą mogli w praktyce zaprojektować i skonfigurować system mikrousługowy z użyciem Spring Boot.

Jak zamówić

« lista szkoleń