Szkolenie: Architektura Mikroserwisów na platformie Java
Szkolenie „Architektura Mikroserwisów na platformie Java” to intensywny, praktyczny warsztat poświęcony projektowaniu, wdrażaniu i utrzymywaniu systemów opartych na architekturze mikroserwisów. Uczestnicy poznają najlepsze praktyki i wzorce architektoniczne wykorzystywane w mikroserwisach, takie jak CQRS (Command Query Responsibility Segregation), DDD (Domain Driven Design) z Bounded Context, event-driven architecture oraz loosely-coupled architecture. Pracujemy w środowisku Java, z wykorzystaniem lekkiego i szybkiego frameworka Quarkus, dedykowanego do tworzenia nowoczesnych mikroserwisów w Javie.
- Trenerzy praktycy
- Kameralne grupy
Czas trwania szkolenia:4 dni (32h)
Kod kursu:MICROSERVICES
Architektura Mikroserwisów na platformie Java
Cele szkolenia
Nauka projektowania, implementowania i testowania architektury mikroserwisowej w środowisku produkcyjnym
Wprowadzenie do kluczowych wzorców architektonicznych i praktyk, takich jak CQRS, DDD, Event Sourcing, Saga Pattern, Loosely-Coupled Architecture
Umiejętność doboru odpowiednich narzędzi i technologii – w tym Quarkus Java, Kafka, gRPC, Debezium
Poznanie kompromisów związanych z wdrażaniem mikroserwisów i migracją z systemów monolitycznych
Praktyczne zrozumienie błędów projektowych w systemach rozproszonych poprzez Fallacies of Distributed Computing
Dla kogo?
Doświadczonych programistów Java i architektów systemów IT, którzy projektują lub rozwijają systemy oparte na architekturze mikroserwisów
Zespołów planujących migrację z monolitu do mikroserwisów
Osób zainteresowanych projektowaniem nowoczesnych systemów z wykorzystaniem takich technologii jak Quarkus, Kafka, gRPC, Spring, Debezium
Zalety
Praktyczne warsztaty z wykorzystaniem nowoczesnego frameworka Quarkus – lekkiego narzędzia do tworzenia szybkich mikroserwisów w Javie
Wiedza o tym, jak projektować mikroserwisy z dbałością o niezawodność, wydajność i spójność danych
Dogłębne poznanie zasad komunikacji międzyserwisowej, zarządzania transakcjami, kontraktami API oraz zapewnienia rezyliencji
Ćwiczenia z modelowania serwisów w kontekście Bounded Context zgodnie z zasadami Domain Driven Design
Wgląd w praktyki niezbędne do produkcyjnego utrzymania mikroserwisów: observability, monitoring, health check, distributed tracing
Wymagania
Podstawowa znajomość języka Java i przynajmniej jednego frameworka (np. Spring, Quarkus)
Zrozumienie ogólnych wzorców architektonicznych i zasad projektowania systemów IT
Doświadczenie w projektach programistycznych i znajomość zasad projektowania 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
Wybrane opinie
Przeczytaj pozytywne opinie pochodzące z ankiet satysfakcji z naszych szkoleń wypełnianych wyłącznie przez ich uczestników po realizacji usługi