Kod: ARC-015
Czas trwania: 24 godzin
Czas trwania: 24 godzin
Opis szkolenia
Architektura mikrousług (MSA) stała się ostatnio jednym z najpopularniejszych podejść architektonicznych, ponieważ zapewnia liczne korzyści na różnych etapach cyklu życia produktu. W szczególności MSA pozwala skrócić czas reakcji, jeśli chodzi o wymagania biznesowe.Jednak w procesie rozwoju systemu MSA architekci stają przed wieloma wyzwaniami, które często zmuszają tych, którzy są nowicjuszami w tej dziedzinie, do wycofania się. Niektóre z nich to:
- Błędy w dekompozycji, które mogą znacznie utrudnić rozwój
- Spadek wydajności z powodu poważnych opóźnień w sieci
- Rozproszone przechowywanie danych uniemożliwiające nam korzystanie ze spójności transakcyjnej
- Duża liczba komponentów komunikujących się w sieci zmniejszająca niezawodność systemu
- Trudności w zapewnieniu bezpieczeństwa
Nie wspominając o tym, że testowanie i utrzymanie systemu rozproszonego wymaga dodatkowych wysiłków. To szkolenie pomoże Ci zrozumieć zalety i wady MSA, abyś mógł zdecydować o wykonalności korzystania z MSA w zależności od potrzeb biznesowych i możliwości zespołu.
Zajmiemy się najważniejszymi wyzwaniami związanymi z wdrażaniem architektury mikrousług i zapewniamy strategie, mechanizmy i wzorce ich rozwiązania. Przyjrzymy się także najpopularniejszym narzędziom (takim jak Kubernetes, Istio, Histryx, Kibana i wielu innym) używanym w architekturze mikrousług.
Plan szkolenia
a:2:{s:4:"TEXT";s:3484:"Style architektoniczne- Pojęcie monolith, SOA, MSA
- Porównanie i wybór
Wzorce dekompozycji MSA
- Optymalny rozmiar mikrousługi
- Podział na usługi według możliwości biznesowych
- Podział na usługi według dziedzin problemowych
- Praktyki identyfikacji domen
- Rozkład według aspektów technicznych i organizacyjnych
Organizacja rozwoju dla MSA
- Organizacja zespołu dla MSA
- Organizacja repozytorium kodu dla MSA
Integracja mikrousług
- Wzorce komunikacji
- Synchroniczne i asynchroniczne mechanizmy komunikacji
- Orkiestracja i choreografia
- Główne protokoły i technologie (REST, gRPC, GraphQL, Kafka, RabbitMQ itp.)
- Komunikacja z systemami zewnętrznymi (API Gateway, BFF)
- Systemy reaktywne
- Architektury Event-driven
- Segregacja command query
Obsługa danych w MSA
- Wzorce obsługi danych
- Pozyskiwanie zdarzeń
- Dane referencyjne w MSA
- Jedno źródło prawdy w MSA
Główne wzorce MSA
- Modyfikowalność. Wysoka rozdzielczość problemu "sprzężenia”. Wersjonowanie interfejsów i zdarzeń. Rodzaje umów. Zmiana modelu wydarzenia. Zapytanie o wzorce organizacji. Microservice chassis, Service mesh
- Skalowalność. Wzorce równoważenia obciążenia. Usługi i wzorce wyszukiwania
- Wydajność. Wzorce wydajności w MSA (Bulkheads, Graceful Degradation, itp.)
- Konsystencja. Problemy ze spójnością w MSA. Twierdzenie CAP. Rozwiązywanie problemów ze spójnością. Zatwierdzenia dwufazowe. Wzór SAGA. Zmniejszanie poziomu spójności
- Niezawodność. Mechanizmy odporności na awarie. Circuit Breaker, Throttling, Dependent Timeouts i inne wzorce
- Bezpieczeństwo. Mechanizmy bezpieczeństwa w MSA. Authentication. Authorization. Perimeter defense. Communication channel defense. Main protocols and patterns (OAUTH2, JWT, Gatekeeper, Valet Key, etc.)
- Testowalność. Piramida testowa i kwadrant. Specyfika testowania mikrousług. Testów jednostkowych. Testy integracyjne. Testowanie komponentów. Testowanie E2E. Wzorce testowania MSA.
- Łatwość maintenance. Obserwowalność. Wzorce obserwacji (śledzenie rozproszone, agregacja dzienników itp.). Monitorowanie i logowanie. Konfiguracja mikrousług. Eksternalizacja konfiguracji. Wsparcie systemowe
- Wdrożenie mikrousług. Wzorzec potoku wdrażania. Wzorce wdrożeń. Korzystanie z Dockera i Kubernetes. Korzystanie z siatki ISTIO. Wdrażanie bezserwerowe. Strategie wdrożeniowe (niebiesko-zielone, kanarek itp.)
- Strategie migracji z monolith do MSA. Strategie przechodzenia od monolith do mikrousług. Strangler monolith. Strangle patterns. Microservice link to monolith. Database migration
Cele
- Przedstawienie przeglądu MSA i jego relacji z innymi architekturami systemów
- Przedstawienie przeglądu projektowania systemów MSA
- Ćwiczenie umiejętności projektowania systemów MSA.
- Zapoznanie uczestników szkolenia z najpopularniejszymi wzorami MSA
Grupa docelowa
- Architekci oprogramowania
- Specjaliści DevOps
- Główni programiści
- Kierownicy ds. Rozwoju
Wymagania
- Doświadczenie w tworzeniu systemów oprogramowania
- Doświadczenie w tworzeniu architektury lub udział w Key Concepts of Software Architecture
- Znajomość DDD lub zaliczenie kursu Domain Driven Design