Szkolenie z Architektury mikroserwisów
Poziom
ZaawansowanyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie z Architektury mikroserwisów
Zaawansowane szkolenie poświęcone świadomemu projektowaniu systemów mikroserwisowych oraz etapowej dekompozycji istniejących aplikacji. Uczestnicy przeanalizują granice domenowe, kontrakty API, modele danych, komunikację synchroniczną i asynchroniczną, odporność na awarie, mechanizmy platformowe oraz strategie niezależnego wdrażania usług. Zakres obejmuje REST API, NoSQL, CQRS, Event Sourcing, Domain-Driven Design, service discovery, service mesh oraz CI/CD. Szkolenie uwzględnia również obserwowalność, bezpieczeństwo zależności i kontrolę jakości kodu generowanego przy wsparciu AI.
Dla kogo jest szkolenie z Architektury mikroserwisów?
Dla doświadczonych programistów i architektów oprogramowania, którzy projektują aplikacje webowe oraz znają zasady programowania obiektowego, REST API, relacyjne bazy danych i testy automatyczne
Dla liderów technicznych odpowiedzialnych za granice modułów, integrację systemów, kontrakty usług oraz dobór mechanizmów odporności i skalowania.
Dla zespołów rozważających etapowe wydzielanie mikroserwisów z monolitu lub rozwój monolitu modularnegorozważających wydzielanie mikroserwisów z istniejącej aplikacji.
Dla osób znających podstawy Spring, Git, konteneryzacji i procesów CI/CD, które chcą uporządkować decyzje dotyczące architektury systemów rozproszonych
Czego nauczysz się na szkoleniu z Architektury Mikroserwisów?
- Przygotujesz podział przykładowego systemu na moduły i mikroserwisy oraz uzasadnisz granice odpowiedzialności na podstawie domeny, danych i częstotliwości zmian
- Zaprojektujesz kontrakt REST API z właściwą semantyką HTTP, obsługą błędów, wersjonowaniem i zasadami kompatybilności
- Dobierzesz relacyjną lub nierelacyjną bazę danych oraz ocenisz konsekwencje modelu spójności, dostępności i skalowania
- Porównasz CQRS, Event Sourcing i klasyczny model zapisu oraz określisz ich koszty, ograniczenia i uzasadnione zastosowania
- Zaprojektujesz komunikację synchroniczną i asynchroniczną z uwzględnieniem idempotencji, timeoutów, ponowień, circuit breakerów i kontrolowanej degradacji
- Przygotujesz koncepcję niezależnego wdrażania usług obejmującą kontenery, service discovery, konfigurację, obserwowalność i strategię publikacji zmian
Program szkolenia
Dzień 1
Dobre praktyki w projektowaniu i implementacji REST API
- HTTP, RPC i HATEOAS – modele komunikacji, poziomy dojrzałości API i kryteria doboru
- GET, POST, PUT, PATCH i DELETE – semantyka metod, idempotentność, bezpieczeństwo i obsługa ponowień
- Statusy odpowiedzi – kategorie kodów HTTP, spójny model błędów i informacje diagnostyczne
- Content negotiation – parametry zapytania, nagłówki, reprezentacje zasobów i wersjonowanie kontraktów
- SOAP i GraphQL – charakterystyka, kompromisy i scenariusze zastosowania względem REST
- Implementacja w Spring – kontrolery, walidacja, dokumentacja OpenAPI, obsługa błędów i testy kontraktowe
Przegląd baz danych NoSQL
- Twierdzenie CAP i model PACELC – spójność, dostępność, tolerancja podziału sieci i opóźnienia
- Redis, MongoDB i Neo4j – modele danych, charakterystyka obciążeń i kryteria zastosowania
- Spring Data – repozytoria, mapowanie danych, transakcje i ograniczenia abstrakcji
- Rozproszone bazy SQL i NewSQL – skalowanie, spójność transakcyjna i kompromisy operacyjne
CQRS i Event Sourcing
- Command i Query – rozdzielenie modeli zapisu i odczytu, walidacja oraz spójność ostateczna
- Zdarzenia domenowe – niezmienność, wersjonowanie, idempotencja, projekcje i odtwarzanie stanu
Domain-Driven Design
- Podział na moduły – bounded contexts, agregaty, własność danych, język domenowy i mapowanie zależności
Dzień 2
Techniki i frameworki pozwalające skalować systemy rozproszone
- Złudzenia systemów rozproszonych – zawodność sieci, opóźnienia, częściowe awarie i brak globalnego czasu
- Odporność na awarie – kontrolowana degradacja, obserwowalność, health checks i scenariusze odtwarzania
- Komunikacja asynchroniczna i synchroniczna – sprzężenie czasowe, kolejki, zdarzenia, kontrakty i semantyka dostarczenia
- Frameworki i biblioteki – kryteria doboru, cykl życia zależności oraz kontrola kodu generowanego przy wsparciu AI
Mikroserwisy
- Modularność i rozproszenie – granice usług, autonomia zespołów, koszt operacyjny i przesłanki pozostania przy monolicie modularnym
- Infrastruktura i kolejki – broker komunikatów, niezawodność dostarczenia, kolejki błędów i kontrola przeciążenia
- Baza danych i kontrakty nowych mikroserwisów – własność danych, kompatybilność, migracje i niezależność wdrożeń
Service registration and discovery, routing, distributed configuration
- Service discovery – rejestr usług, mechanizmy klienckie i serwerowe, routing oraz aktualność informacji o instancjach
- Konfiguracja rozproszona – centralizacja parametrów, sekrety, wersjonowanie i bezpieczna propagacja zmian
Load balancing, Circuit Breakers
- Zabezpieczenia przed dużym ruchem – równoważenie obciążenia, limity ruchu, timeouty, retry, circuit breaker i bulkhead
Service mesh
- Natywne wsparcie mikroserwisów – zarządzanie ruchem, szyfrowanie komunikacji, polityki i telemetria
- Proxy – modele sidecar i ambient, koszty zasobów, złożoność operacyjna i granice zastosowania
Continuous Integration i Continuous Deployment w kontekście mikroserwisów
- Konteneryzacja – obrazy minimalne, niezmienne artefakty, skanowanie zależności i konfiguracja poza obrazem
- Niezależne wdrożenie – autonomiczne pipeline’y, testy kontraktowe, zgodność wersji i strategie wycofania
- Blue-green deployment – środowiska równoległe, przełączanie ruchu, walidacja, rollback i porównanie z wydaniem canary