Microservices Patterns - wzorce projektowe w systemach mikrousługowych
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 Microservices patterns - przedstawia zbiór sprawdzonych wzorców projektowych związanych z tą architekturą przedstawionych w praktycznej formie.
Szczegółowy program
Moduł 1.
Wprowadzenie do Microservices Patterns
- Czy jest architektura Microservices (mikrousługowa)
- Wady i zalety architektury
- Język wzorców dla architektury Microservices
- Wzorce organizacyjne niezbędne w przypadku Microservices
Moduł 2.
Wydzielanie usług
- Identyfikacja funkcji systemu
- Wydzielanie usług na podstawie podziału biznesu
- Wydzielanie usług na podstawie poddomen - Bounded Contexts
- Wprowadzenie do DDD
Moduł 3.
Komunikacja między usługami
- Komunikacja synchroniczna
- REST API
- gRPC
- Circuit Breaker
- Service Discovery
- Komunikacja asynchroniczna
- Messaging
- Message Broker
- Competing Receiver
- Kolejność komunikatów
- Duplikacja komunikatów
- Spójność w messagingu
Moduł 4.
Spójność danych i Sagi
- Problem z transakcjami rozproszonymi
- Saga oparta na choreografii
- Saga oparta na orkiestracji
- Brak izolacji i jego obsługa
- Przykładowa implementacja Sagi
Moduł 5.
Domena i logika biznesowa
- Domain model, Anemic model
- Monolithical model, Federated model
- Agregaty
- Reguły agregatów
- Zdarzenie domenowe
- Generowanie i publikowanie zdarzeń
- Konsumowanie zdarzeń
- Przykładowe agregaty i usługi
- Koncepcja event sourcing
- Agregaty oparte o event sourcing
- Implementacja event store
- Gotowe implementacje event store
Moduł 6.
Udostępniania API Microservices
- Kompozycja API
- Gateway API
- Implementacja Gateway API
- Gotowe implementacje
- Wzorzec CQRS
- Projektowanie widoków z CQRS
Moduł 7.
Testowanie
- Testy jednostkowe
- Testy integracyjne
- Testy komponentowe
- Testy end-to-end
- Pragmatyka testów
Moduł 8.
Otoczenie usług
- Bezpieczeństwo
- BezpieczeństwoWzorzec External configuration
- BezpieczeństwoWzorzec Health Check
- BezpieczeństwoWzorzec Log aggregation
- BezpieczeństwoWzorzec Distributed tracing
- BezpieczeństwoWzorzec Application metrics
- BezpieczeństwoWzorzec Exception tracking
- BezpieczeństwoWzorzec Audit logging
Moduł 9.
Wdrażanie usług
- Konteneryzacja z Dockerem
- Wirtualizacja infrastruktury z Kubernetes