Szkolenie: Architektura Mikroserwisów na platformie Java
Podczas tego szkolenia dowiesz się, w jaki sposób projektować architektury mikroserwisów na przykładzie platformy Java oraz popularnych narzędzi i technologii używanych w praktyce w infrastrukturze mikroserwisowej. Nauczysz się, jak dobierać odpowiednie rozwiązanie mając na uwadze zarówno korzyści, jak i kompromisy poszczególnych wzorców architektonicznych.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:4 dni (32h)
Kod kursu:MICROSERVICES
Architektura Mikroserwisów na platformie Java
Cele szkolenia
projektowanie, implementowanie, testowanie i wdrażanie architektury mikroserwisów
poznanie wzorców architektonicznych niezbędnych dla poprawnie działającego systemu mikroserwisowej
przegląd popularnych narzędzi i ich zastosowanie w infrastrukturze mikroserwisowej
podejmowanie decyzji umożliwiających ciągły rozwój mikroserwisów oraz migrację istniejącego monolitu do architektury mikroserwisów
Dla kogo?
Doświadczonych programistów oraz architektów budujących i rozwijających systemy w języku Java
Zalety
Szkolenie "Architektura Mikroserwisów" ma charakter praktycznych warsztatów programistycznych realizowanych w języku Java z wykorzystaniem popularnego dla mikroserwisów frameworka w tym języku, czyli Quarkus
Praktyczne warsztaty pozwalają zapoznać się z wieloma popularnymi narzędziami i technologiami
Nauczysz się jak modelować serwisy, komunikację międzyserwisową oraz jak efektywnie zarządzać i utrzymywać produkcyjnie wdrożone serwisy
Dowiesz się, jakie są niezbędne charakterystyki mikroserwisów oraz jak o nie zadbać
Poznasz techniki wytwarzania testów niezbędnych w architekturze mikroserwisowej
Dowiesz się, jak podejść do migracji istniejących systemów monolitycznych oraz zadbać o wysoką jakość utworzonego rozwiązania
Wymagania
Podstawowa znajomość typowych wzorców architektonicznych
Podstawowa znajomość języka Java oraz dowolnego frameworka
Podstawowa znajomość zagadnień związanych z analizą i projektowaniem architektury oprogramowania
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Wprowadzenie
Szybki przegląd architektur infrastrukturalnych (monolit, modularny monolit, SOA, EDA, systemy aktorowe)
Korzyści i koszt wykorzystania mikroserwisów
Fallacies of Distributed Computing
Modelowanie mikroserwisów
Domeny biznesowe a mikroserwisy
Domain Driven Design i Bounded Context
Loosely-Coupled Architecture
Loose Coupling & High Cohesion
Abstrakcyjność i niestabilność
Kompatybilność Backward a Forward
Shared libraries
Dbanie o jakość architektury mikroserwisowej
ArchUnit jako sposób testowania architektury
JMolecules i DDD
Komunikacja międzyserwisowa
Omówienie problemu rzetelności komunikacji
Wzorce 1-1, 1-N, M-N
Komunikacja synchroniczna, a asynchroniczna
Komunikacja zdarzeniowa
Porównanie: Message Broker, Event Broker, Brokerless
Wyzwania komunikacji opartej na zdarzeniach
Wzorce transakcyjności obsługi wiadomości
Formaty wiadomości
Protocol Buffers
HTTP a REST
Client Driven API
Wzorce paginacji i projekcji danych
gRPC
Komunikacja, a niezawodność
HTTP Cache
Debezium jako narzędzie Change Data Capture
Load Balancing z wykorzysatniem Kafki
API
Zakres widoczności API
Abstrakcyjne typy interfejsów i operacji
Sposoby wersjonowania API
Wzorce rezyliencji: Circuit Breaker, Fallback, Timeout, Retry
Service Discovery na przykładzie Consula
API Gateway
Backend For Frontend
Wzorzec API Composition
Command Query Responsibility Segregation
Kiedy stosować CQRS
Command
Query
Różne sposoby implementacji
Bazy danych
Sharding
SQL i schemat relacyjny
Anomalie we współbieżnej modyfikacji danych
Poziomy izolacji
Wzorce transakcyjności
NoSQL
ACID vs CAP
Modele danych w bazach danych
Problem N+1 w komunikacji międzyserwisowej
OLAP w mikroserwisach
Edge functions
Uwierzytelnienie
Autoryzacja
Cache - buforowanie replikowane
Throttling - Rate Limits, Bulkhead
Metryki
Logowanie
Transakcje
Transakcje lokalne vs rozproszone
Omówienie algorytmu 2PC
Eventual consistency
Saga
Podtypy transakcji w Sagach
Choreografia, a orkiestracja
Wzorce izolacji Sag
Event Sourcing
Testowanie
Piramida testów w wersji dla mikroserwisów
Consumer-Driven Contract na przykładzie Pact
Production Ready (Opcjonalnie)
Bezpieczeństwo komunikacji międzyserwisowej
Observability
Health Check API z wykorzystaniem Consul
Log aggregation z wykorzystaniem stosu ELK
Distributed tracing z wykorzystaniem Open Telemetry i Jaeger,
Metryki aplikacyjne