Plan Szkolenia
Wprowadzenie
- Architektura systemowa i usługowa, PaaS oraz projektowanie cloud-native
Przegląd monolitycznej architektury systemowej
- Uruchamianie całej funkcjonalności monolitycznej aplikacji w jednym procesie
- Skalowalność poprzez replikację na wielu serwerach
- Protokoły używane w systemach monolitycznych: EAI, CORBA itp.
Przegląd usług sieciowych
- Architektura zorientowana na usługi (SOA) i architektura mikrousług
Architektura zorientowana na usługi (SOA)
- Korzyści i koszty SOA
- Sukcesy i porażki w implementacji SOA
- Komunikacja i ESB
- Infrastruktura i narzędzia wspierające SOA
Jak mikrousługi implementują koncepcje usług sieciowych
- Rób jedną rzecz i rób to dobrze
- DevOps
- Częste wdrażanie i dostarczanie (Ciągła integracja, ciągły proces budowania itp.)
- Lekkie protokoły
Protokoły i standardy mikrousług
- HTTP, JMS, AMQP, Websockets, JSON itp.
Frameworki do budowy mikrousług
- Frameworki oparte na Javie (Spring Cloud)
- Frameworki oparte na Javascript (Seneca)
Dekompozycja aplikacji monolitycznej
- Tworzenie niezależnie wdrażalnych aplikacji
- Organizowanie aplikacji mikrousługowych wokół możliwości biznesowych
- Studium przypadku: Migracja aplikacji monolitycznej do trzech podstawowych mikrousług
Konfiguracja środowiska deweloperskiego Spring Cloud
- Konfiguracja Docker i Docker Compose
- Ustawianie zmiennych środowiskowych
Przegląd Spring Cloud i Spring Boot
- Podprojekty Spring Cloud: Config Server & Bus, Eureka, Ribbon, Feign i Hystrix
- Spring Boot
Tworzenie aplikacji Spring Boot
Zcentralizowane, wersjonowane zarządzanie konfiguracją z Spring Cloud Config
Dynamiczne aktualizacje konfiguracji z Spring Cloud Bus
Odnajdywanie usług z Eureka
Równoważenie obciążenia z Ribbon
Stosowanie wyłączników z Hystrix
Deklaratywni klienci REST z Feign
Praca z API Gateway
Zabezpieczanie aplikacji mikrousługowej
Śledzenie mikrousług w celu wykrycia opóźnień
Wdrażanie mikrousług
- Kontenery (Docker, K8N, LXC itp...)
- Zarządzanie konfiguracją (Ansible itp...)
- Odnajdywanie usług
- Monitorowanie i zarządzanie mikrousługami
- Infrastruktura dla mikrousług
Chmura i automatyczne skalowanie mikrousług
- Nadmiarowość i fail-over mikrousług
- Skalowalność wydajności dla mikrousług
- Automatyczne skalowanie
- Implementacja mikrousług na OpenStack, AWS i innych platformach chmurowych
Rozwiązywanie typowych problemów aplikacji rozproszonych
- Złożoność ekosystemu
- Wydajność sieci
- Bezpieczeństwo
- Wdrażanie
- Testowanie
- Nano-usługi
Ostateczne uwagi dotyczące budowania systemów gotowych do produkcji
- Uproszczenie systemu dla początkujących
- Upewnienie się, że system jest kompletny, aby mógł służyć jako podstawa aplikacji korporacyjnych
Podsumowanie i zakończenie
Wymagania
- Zrozumienie inżynierii oprogramowania i systemów
- Doświadczenie w rozwoju Java
- Doświadczenie z Spring Framework
Grupa docelowa
- Programiści Java chcący szybko budować i wdrażać mikrousługi
- Architekci systemowi chcący wdrożyć architekturę mikrousług
Opinie uczestników (3)
Przekazywanie informacji w sposób zrozumiały nawet dla osób, które miały mały kontakt z architekturą Microservice, Zajęcia praktyczne, gdzie można było na żywo zobaczyć, jak coś działa, Wykorzystanie aktualnie wykorzystywanych narzędzi i technologii (InteliiJ, Docker Desktop, Java 17, Spring)
Szymon - Seth Software
Szkolenie - System Architecture, Service Architecture, and Microservice Architecture with Spring Cloud
Duża wiedza merytoryczna i praktyczna prowadzącego co przekłada się na wiedzę 'wyniesioną' ze szkolenia.
Tomasz Dworak - Seth Software
Szkolenie - System Architecture, Service Architecture, and Microservice Architecture with Spring Cloud
Sposób nauki, równoległa praca każdego uczestnika do materiału, który realizował i opisywał wykładowca.