Od monolitu do mikroserwisów - przegląd podejść architektonicznych
Czas trwania szkolenia:2 dni (16h)
Kod kursu:ARCH/C/AZURE
Poziom zaawansowania:
O szkoleniu Od monolitu do mikroserwisów - przegląd podejść architektonicznych
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
Dla kogo?
- Managerów
- Początkujących architektów
- Osób reprezentujących sferę biznesową w organizacji
- Technicznych członków zespołów chcących odświeżyć swoją wiedzę (poziom podstawowy)
Wymagania
- Podstawowa znajomość zagadnień z infrastruktury i komponentów IT
- Podstawowa znajomość Javy (nie będziemy pisać od zera, a jedynie wspólnie edytować istniejący projekt)
- Kod aplikacji do analizy podczas kursu: https://github.com/chrosciu/taskmanager-lite
Zalety
- Niezbędna dawka teorii potrzebna dla zrozumienia podstawowych koncepcji
- Warsztatowy charakter szkolenia dający szansę na uaktualnienie własnej wiedzy i skonfrontowanie własnych doświadczeń i przypadków
- Kompleksowa prezentacja najważniejszych modeli architektonicznych
- Możliwość przećwiczenia razem z grupą wspólnej tranzycji aplikacji z monolitu do mikroserwisów
Cele szkolenia
- Prezentacja podstawowych podejść architektonicznych
- Omówienie sposobów wdrażania podejść w chmurze i środowisku on-premise
- Wspólna analiza kodu aplikacji i omówienie przejścia od architektury monolitycznej do mikroserwisowej
Program
Wprowadzenie oraz pomoc w organizacji środowiska
Czym jest architektura i jakie ma znaczenie
Co wyróżnia „dobrą” architekturę i jakie atrybuty definiują jej jakość
Odpowiedzialność architekta w procesie wytwarzania oprogramowania
Rodzaje architektur (software/system/enterprise/inne)
Analiza wybranych podejść architektonicznych (wraz z ich mocnymi stronami, ograniczeniami i przykładami użycia)
- N-Tier
- Monolit
- Microkernel
- SOA
- Mikroserwisy i nanoserwisy
- Message based
- Event based (reactive)
Sposoby wdrażania rozwiązania:
- Maszyna wirtualna
- Kontenery i Kubernetes
- Usługa typu PaaS lub SaaS (np. Azure AppService)
- ServerLess
Wspólna analiza i refactoring kodu z architektury monolitycznej do mikroserwisów (Java)
- Stworzenie testów czarnej skrzynki w celu bezpiecznej refaktoryzacji
- Reorganizacja pakietów w celu odkrycia potencjalnych domen / serwisów
- Wprowadzenie fasady jako jedynego punktu wejścia do serwisu
- Separacja serwisów na poziomie warstwy utrwalania
- Podział na rozkazy i zapytania (CQRS)
- Użycie uproszczonej encji w celu eliminacji powiązań bazodanowych
- Eliminacja bezpośrednich powiązań między serwisami za pomocą eventów Springa
- Wykorzystanie zewnętrznego brokera do przesyłania eventów - RabbitMQ
- Końcowa zamiana monolitu na oddzielne aplikacje per serwis