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.
3905 PLN+23% VAT (4803 PLN brutto / 1 os.)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
Architektura kodu, a infrastruktury
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
Jak definiować serwisy
Operacje systemowe: komendy i zapytania
Business Capabilities
Przegląd wzorców strategicznych Domain Driven Design
Ubiquitous Language
Wprowadzenie do Event Storming
Bounded Context
Aggregate as a Service
Przegląd wzorców taktycznych Domain Driven Design
Wyzwania związane ze stosowaniem DDD
Context Mapping - wzorce mapowań kontekstów
Formalne podejście w modelowanie mikroserwisów z wykorzystaniem języków formalnych
Loosely-Coupled Architecture
Loose Coupling & High Cohesion
Abstrakcyjność i niestabilność
Komunikacja pomiędzy serwisami
Backward i Forward Compatibility
Shared libraries
Podejmowanie decyzji
Architecture Decision Record
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
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
GraphQL
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
Jak podejmować decyzje?
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
Wydajność agregatów
Testowanie
Jakość oprogramowania
Piramida testów
Testy E2E
TestContainers
Gherkin i Cucumber
Consumer-Driven Contract na przykładzie Pact
A/B testing
Chaos testing
Production Ready
Bezpieczeństwo komunikacji międzyserwisowej
Configurability i modele dystrybucji konfiguracji
Observability
Health Check API z wykorzystaniem Consul
Log aggregation z wykorzystaniem stosu ELK
Distributed tracing z wykorzystaniem Open Telemetry i Jaeger,
Alerty
Metryki aplikacyjne
Deployment
Podstawy Kubernetes
Omówienie modeli wdrażania
Metryki DORA
Deployment vs Release separation
Blue Green Deployments
Canary releases
Feature toggles
Mikroserwisy, a organizacja pracy zespołów
Prawo Conway’a
Komunikacja pomiędzy zespołami
Autonomia
Transformacja istniejących aplikacji do mikroserwisów
Minimalizacja ryzyka
Znajdowanie potencjalnych serwisów
Anti-Corruption Layer
Strangler Pattern
Wzorce pomocnicze
Wzorce weryfikacji poprawności migracji funkcjonalności do mikroserwisów