Microservices Architecture
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ć, wybrać inny stos technologiczny, który bardziej adekwatnie rozwiąże problemy dziedzinowe. 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 Architecture to pogłębiony przewodnik architektoniczny, który pozwoli uniknąć wielu pułapek czyhających na zespoły programistyczne korzystające z tego podejścia i przedstawiający najlepsze wzorce tworzenia Microservices.
Wymagane umiejętności
- Uczestnik zna podstawy klasycznych podejść architektonicznych (m. in. warstwy, DDD).
- Uczestnik ma co najmniej 2 lata doświadczenia w tworzeniu systemów informatycznych.
Szkolenie Microservices Architecture nie koncentruje się na konkretnej technologii, przykłady pochodzą z różnych stosów technologicznych. W ramach szkolenia dedykowanego istnieje możliwość dostosowania szkolenia do danego stosu technologicznego – w tym celu niezbędne będzie indywidualne ustalenie szczegółów.
Podstawowy program
Moduł. 1
Założenia Microservices
Moduł. 2
Projektowanie Architektury
Moduł. 3
Projektowanie usług
Moduł. 4
Projekt systemu i infrastruktury
Moduł. 5
Komunikacja pomiędzy usługami
Moduł. 6
Testowanie Microservices
Moduł. 7
Proces wprowadzania Microservices do organizacji
Szczegółowy program
Moduł. 1
Założenia Microservices
- Definicja Microservices
- Główne założenia Architektury Microservices (MSA)
- MSA a SAO
- Modularyzacja, time-to-market, skalowanie
- Continuous Delivery a MSA
- Czy Twoja organizacja jest już gotowa na MSA?
- Ewolucja w stronę Microservices
- Charakterystyka systemów typu MSA
- Główne korzyści MSA
- MSA a wartość biznesowa
- Spójność i modularność
- Modej dojarzałości MSA
Moduł. 2
Projektowanie Architektury
- Usługi
- Rozwiązania
- Procesy i narzędzia
- Organizacja
- Kultura
- Gotowość na zmiany
- Proces projektowania
- Cele optymalizacyjne
- Zasady rozwoju
- Szkic projektowy
- MSA a interfejs użytkownika
- Implementacja, analiza i doskonalenie
Moduł. 3
Projektowanie usług
- Rozmiar usług
- Granice usług
- Prawo Conwaya
- Usługi a Domain-Driven Design
- Bounded Context
- API dla Microservices - Message-Oriented, Hypermedia-Driven
- Usługi a model kanoniczny
- Event Sourcing
- CQRS
- Transakcje w Microservices
- Komunikacja asynchroniczna z użyciem komunikatów
- Zależności
Moduł. 4
Projekt systemu i infrastruktury
- Niezależność wdrożeń
- Niezawodność usług
- Wielość serwerów
- Kontenery
- Service Discovery
- Load balancing
- API Gateway
- Obsługa sytuacji awaryjnych
- Timeout
- Circuit breaker
- Bulkhead
- Steady State
- Handshaking
- Bezpieczeństwo
- Transformacje i orkiestracja
- Routing
- Skalowanie
- Monitoring i alerting
- Microservices a systemy odziedziczone
Moduł. 5
Komunikacja pomiędzy usługami
- Wzorce komunikacji z UI
- Single-Page Application
- HTML Applications
- Front-end server
- Klienci mobilni i klienci typu Rich
- HTML i JavaScript
- ROCA
- REST HATEOAS/HAL/XML/HTML/JSON
- SOAP i RPC
- Komunikacja oparta o komunikaty (messaging)
- Bezstanowość
- Replikacja danych
- Wewnętrzne i zewnętrzne interfejsy
- Wersjonowanie semantyczne
Moduł. 6
Testowanie Microservices
- Rola testów w Microservices
- Testy jednostkowe
- Testy integracyjne
- Testy UI
- Testy manualne
- Load testy
- Piramida testów
- Continuous Delivery Pipeline
- Testowanie całego systemu
- Testowanie pojedynczej usługi
- Consumer-Driven Contract Tests
Moduł. 7
Proces wprowadzania Microservices do organizacji
- Ile bug fixów i funkcjonalności w releasie?
- Kiedy transformacja się kończy?
- Jak rozpocząć zmianę?
- Co jeśli moja organizacja jest skupiona wokół projektów?
- Microservices i outsourcing
- Technologie i narzędzia
- Jakie praktyki i procesy inżynieryjne są potrzebne?
- Jak zarządzać systemem opartym o MSA?
- Jeden czy wiele języków?