Wzorce architektury mikrousługowej
Słowo mikroserwisy padło w tym roku na konferencjach i portalach branżowych w liczbie, która powinna znaleźć się w Księdze Guinessa. Czy ten nowy, eksplodujący na naszych oczach trend zmienia na zawsze naszą branżę, czy też przeminie jak wiele innych rozwiązań z kategorii „silver bullet”. Postaramy się podczas tego szkolenia odpowiedzieć na wiele pytań, wprowadzić podstawowe wzorce i przedstawić techniki projektowania mikrousług. Podzielimy się z Wami naszym doświadczeniami i obserwacjami z implementacji mikrousług i przestrzec przed czającymi się niebezpieczeństwami, a przede wszystkim wywołać dyskusję, która pozwoli odnaleźć Wam Waszą własną drogę w tej nowej architekturze.
Opis szkolenia
Podczas szkolenia poznasz najpopularniejsze wzorce architektury mikroserwisowej, ich warianty oraz przykłady zastosowania. Przećwiczysz możliwe implementacje wzorców w oparciu o najpopularniejsze na rynku narzędzia.
Szkolenie skierowane jest do programistów, projektantów oraz architektów pracujących w środowiskach rozproszonych (mikrousługowych), pragnących poznać narzędzia i techniki nadające strukturę wybranym elementom architektury.
Całość szkolenia przeprowadzana jest w formule wzorców projektowych: nazwania wzorca, opisu problemu, który stara się zaadresować (rozwiązać), przykładowych implementacji (wraz z demo, ćwiczeniem) oraz omówienia konsekwencji zastosowania wzorca.
Wychodząc od klasycznych praw i teorii (twierdzenie CAP, 8 błędów przetwarzania rozproszonego), analizowane są pojawiające się problemy, sposoby ich mitygowania oraz minimalizacja zasięgu błędów.
Omawiane wzorce
Wzorce architektoniczne określają strukturę rozwiązania pewnego problemu w obrębie systemu informatycznego. Nie inaczej jest w przypadku mikro usług, gdzie udało się wykształcić kilka wzorców. Podczas szkolenia ćwiczenia praktyczne opierają się właśnie o analizę m.in. następujących wzorców.
-
API Gateway
-
Circuit breakers
-
Load balancing
-
Service discovery and externalized configuration
-
Service orchestration and choreography
-
Consumer-driven contracts
-
Centralized loggings and monitoring
-
Authorisation and security
Program szkolenia
1. Podstawy teoretyczne architektury mikrousługowej
-
Różne podejścia do strukturyzowania architektury
-
Monolityczne aplikacje i Microservices
-
Prawo Conway’a
-
Architektura wokół funkcjonalności biznesowych
-
Dekompozycja domeny wykorzystując Domain-Driven Design, określanie granic mikro usług
Tip
|
Cel modułu
Odpowiadamy na pytania:
|
2. Projektowanie i implementacja mikrousług
-
Smart endpoints and dumb pipes
-
Zasoby REST i ich reprezentacja
-
Zasady projektowania URLi
-
Wersjonowanie i zarządzanie zasobami
-
Hypermedia as the Engine of Application State (HATEOAS)
-
-
Decentralizacja danych
-
Podział danych pod kątem mikrousług
-
Relacyjne i nierelacyjne bazy danych
-
Wolumen, szybkość, spójność - w odniesieniu do dostępnych źródeł danych (CAP Theorem)
-
Projektowanie modeli pod kątem odczytu (CQRS)
-
-
Elementy interfejsu użytkownika
-
Strategie refaktoryzacji systemów monolitycznych
Tip
|
Cel modułu
Odpowiadamy na pytania:
|
3. Komunikacja pomiędzy usługami
-
Komunikacja synchroniczna vs. asynchroniczna
-
Wprowadzenie do wzorca “Circuit Breaker” i konfiguracja bezpiecznika połączenia
-
-
Definiowanie zależności pomiędzy usługami oraz ich dokumentacja
-
Wprowadzenie do wzorca "API Gateway", "Service Discovery"
-
Modelowanie procesów w obrębie serwisów (orkiestracja i choreografia)
-
-
Kompatybilność usług, zmiany i kompatybilność wsteczna
-
Wprowadzenie do wzorca "Consumer Driven Contracts"
-
Testowanie usług w ujęciu end-to-end
-
Tip
|
Cel modułu
Bazując na zestawie gotowych mikrousług obserwujemy problemy które mogą się pojawiać:
|
4. Produkcyjne wdrożenie mikrousług
-
Continious Integration / Continious Delivery
-
Infrastruktura jako kod
-
Automatyzacja procesów budujących (Jenkins DSL)
-
Automatyzacja tworzenia infrastruktury (Ansible)
-
-
Wirtualizacja i konteneryzacja
-
Wykorzystanie chmury (IaaS, PaaS) i związane z tym koszty
-
Zarządzenie rozproszoną konfiguracją
Tip
|
Cel modułu
Odpowiadamy na pytania
|
5. Utrzymanie i zarządzanie usługami
-
Standardowe metryki usługi (Actuator)
-
Monitoring usług - centralizacja logowania
-
Śledzenie transakcji w obrębie systemu rozproszonego
-
Metryki biznesowe oraz techniczne
-
-
Śledzenie przepływu komunikacji
-
Skalowanie systemów rozproszonych
-
Skalowanie pionowe (scale-up) i poziome (scale-out)
-
Koncepcja automatycznego skalowania w środowiskach chmurowych
-
Tip
|
Cel modułu
Staramy się odpowiedzieć na pytanie "Jak zrozumieć co dzieje się w systemie rozproszonym"
|
Zapytaj o szkolenie
Jestem dla Ciebie dostępny poprzez: twitter, linkedin lub tradycyjnie przez email kuba.marchwicki at gmail.com