Plan Szkolenia
Wprowadzenie
- Architektura systemu i usług, PaaS i projektowanie cloud-native
Przegląd architektury systemu monolitycznego
- Uruchamianie całej funkcjonalności aplikacji monolitycznej w jednym procesie
- Skalowalność poprzez replikację na wielu serwerach
- Protokoły używane w systemach monolitycznych: EAI, CORBA itp.
Przegląd usług internetowych
- 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 we wdrażaniu SOA
- Przekazywanie wiadomości i ESB
- Infrastruktura i narzędzia wspierające SOA
Jak mikrousługi implementują koncepcje usług internetowych
- Rób jedną rzecz i rób to dobrze
- DevOps
- Ciągłe wdrażanie i dostarczanie (Continuous Integration, Continuous Build Process itp.)
- Lekkie protokoły
Protokoły i standardy mikrousług
- HTTP, JMS, AMQP, Websockets, JSON itp.
Frameworki do budowania 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 programistycznego 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
Scentralizowane, 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 obwodowych 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
- Wdrażanie 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 dla aplikacji korporacyjnych
Podsumowanie i zakończenie
Wymagania
- Zrozumienie inżynierii oprogramowania i systemów
- Doświadczenie w programowaniu w Javie
- Doświadczenie z frameworkiem Spring
Grupa docelowa
- Programiści Java chcący szybko budować i wdrażać mikrousługi
- Architekci systemów 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.