Szkolenie Cloud Native Development
Poziom
PodstawowyCzas
16h / 2 dniTermin
IndywidualnieCena
IndywidualnieSzkolenie Cloud Native Development
Intensywne, praktyczne szkolenie wprowadzające do tworzenia aplikacji zgodnych z podejściem cloud-native. W ciągu dwóch dni uczestnicy przygotują prototyp aplikacji opartej na mikrousługach, obrazy kontenerowe, manifesty Kubernetes, funkcję serverless oraz prosty potok CI/CD. Zakres obejmuje także komunikację między usługami, obserwowalność, odporność na awarie i podstawy bezpieczeństwa łańcucha dostarczania oprogramowania. Szkolenie koncentruje się na środowisku laboratoryjnym.
Dla kogo jest to szkolenie?
programistów
architektów oprogramowania
specjalistów DevOps, którzy chcą poznać podstawy tworzenia, konteneryzacji i automatyzacji dostarczania aplikacji cloud-native.
osób rozwijających tradycyjne aplikacje, które chcą zrozumieć praktyczne różnice między monolitem, mikrousługami, kontenerami, Kubernetes i architekturą serverless
Wymagane umiejętności technologiczne
- Umiejętność przygotowania i lokalnego uruchomienia prostej aplikacji lub interfejsu HTTP API w Pythonie albo JavaScript
- Podstawowa znajomość terminala, systemu Linux oraz formatów YAML i JSON
- Umiejętność wykonania podstawowych operacji Git: clone, add, commit, branch i push
- Znajomość podstaw HTTP, wirtualizacji oraz usług chmurowych, takich jak moc obliczeniowa, sieć i zarządzanie dostępem
Czego nauczysz się na szkoleniu Cloud Native Development?
- Wydzielisz granice przykładowych mikrousług, określisz ich odpowiedzialności i przygotujesz kontrakt komunikacji HTTP
- Zbudujesz obrazy kontenerowe aplikacji oraz uruchomisz je na lokalnym klastrze Kubernetes z użyciem zasobów Deployment, Service, ConfigMap i Secret
- Przygotujesz funkcję serverless reagującą na żądanie lub zdarzenie oraz zweryfikujesz jej działanie, uprawnienia i logi
- Skonfigurujesz prosty potok CI/CD obejmujący testy, budowę i kontrolę obrazu oraz sprawdzisz aplikację za pomocą logów, metryk i śladów
Program szkolenia
Dzień 1:
Wprowadzenie do Cloud Native Development
- Ewolucja architektury aplikacji: monolit, monolit modularny, mikrousługi oraz kompromisy dotyczące złożoności, skalowania i utrzymania
- Zasady cloud-native: automatyzacja, deklaratywna konfiguracja, bezstanowość, zewnętrzna konfiguracja, odporność, obserwowalność i bezpieczeństwo od etapu projektowania
Architektura mikrousług
- Granice mikrousług: odpowiedzialności, konteksty biznesowe, własność danych, kontrakty API, wersjonowanie i zgodność wsteczna
- Komunikacja między mikrousługami: protokoły synchroniczne, komunikacja asynchroniczna, broker zdarzeń, idempotencja, limity czasu i ponowienia
Konteneryzacja z Docker
- Obrazy i kontenery Docker: Dockerfile, warstwy, wieloetapowy proces budowy, rejestr obrazów, konfiguracja środowiska i konto bez uprawnień administratora
- Orkiestracja z Kubernetes: Pod, Deployment, Service, ConfigMap, Secret, zasoby obliczeniowe oraz sondy liveness i readiness
Warsztaty: Prototyp mikrousług i środowisko Kubernetes
- Prototyp aplikacji opartej na mikrousługach: podział odpowiedzialności, interfejs HTTP API, niezależna konfiguracja i test komunikacji
- Kontenery i lokalny klaster Kubernetes: obrazy aplikacji, manifesty Deployment i Service, konfiguracja, sekrety, sondy oraz walidacja stanu zasobów
Dzień 2:
Serverless Computing
- Architektura serverless i model FaaS: funkcje bezstanowe, wyzwalacze HTTP i zdarzeniowe, skalowanie, zimny start, limity wykonania oraz model kosztowy
- Platformy serverless: AWS Lambda, Azure Functions i Google Cloud Run functions oraz kryteria wyboru środowiska, model uprawnień i zależność od dostawcy
Continuous Integration i Continuous Deployment (CI/CD)
- Potok CI/CD dla aplikacji cloud-native: kontrola jakości kodu, testy, budowa obrazu, skanowanie podatności, publikacja artefaktu, promocja między środowiskami i wycofanie zmiany
- Narzędzia i praktyki: GitLab CI/CD, Jenkins, Argo CD, deklaratywna konfiguracja, repozytorium Git jako źródło stanu, historia zmian i podstawy GitOps
Obserwowalność i odporność aplikacji
- Obserwowalność systemu rozproszonego: ustrukturyzowane logi, metryki, ślady, identyfikator korelacji, kontekst rozproszony i podstawy OpenTelemetry
- Odporność na awarie: limity czasu, ponowienia z opóźnieniem, circuit breaker, izolacja błędów, kontrola stanu usług i łagodna degradacja
Warsztaty: Serverless i CI/CD
- Funkcja serverless: wyzwalacz HTTP lub zdarzeniowy, konfiguracja środowiska, minimalny zakres uprawnień, obsługa błędów, testy i logi wykonania
- Potok CI/CD aplikacji cloud-native: testy automatyczne, budowa i kontrola obrazu, publikacja artefaktu, aktualizacja konfiguracji oraz walidacja działania aplikacji