Kubernetes - zaawansowany deployment

Nowoczesne aplikacje dostępne jako obrazy kontenerów są wdrażane na Kubernetes głównie przez potoki CI/CD. Jako najpopularniejsze narzędzie uznawany jest nadal Jenkins i na jego podstawie uczestnicy poznają w jaki sposób budowane i wdrażane są aplikacje w ramach budowanych na warsztatach potokach.

Grupa docelowa

Warsztaty te przeznaczone są dla programistów i inżynierów DevOps zarządzających deploymentami, którzy już pracowali z kontenerami i chcą wykorzystywać do tego zaawansowane możliwości Kubernetes.

Wymagania

Ze względu na charakter praktyczny wymagane jest, aby uczestnicy

  • uczestniczyli wcześniej w szkoleniu podstawowym lub posiadali wiedzę z jego zakresu
  • poruszali się swobodnie w linuksowym środowisku linii poleceń
  • byli zaznajomieni z typowymi narzędziami typu ssh, vim (lub inny edytor tekstu dostępny w linuksie)
  • znali podstawy działania Jenkins (lub innego, podobnego narzędzia do CI/CD)

Korzyści dla uczestników

Uczestnicy po szkoleniu będą:

  • potrafili skonfigurować i używać Jenkinsa na klastrze Kubernetes w natywny sposób
  • potrafili utworzyć pipeline do budowy obrazów konteneru z aplikacją, ich testowania i wdrażania na kolejne środowiska
  • rozumieli koncepcje wielu środowisk, w tym środowisk typu Preview i wykorzystania tego do szybszego testowania aplikacji
  • potrafili użyć odpowiednich pluginów do integracji z klastrem Kubernetes
  • potrafili tworzyć paczki Helm Charts i publikować w ramach wdrożenia
  • rozumieli czym jest Tekton i jego najważniejsze elementy budujące potoki wdrożeniowe

Program

Dzień 1

  • Konfiguracja Jenkins jako kontenera działającego w środowisku Kubernetes
  • Wykorzystanie Jenkins do budowania obrazów kontenerów i dynamicznych slave`ów
  • Automatyzacja budowania z wykorzystaniem natywnych pipelineów (Jenkinsfile) i wspomagających proces pluginów
  • Utrzymywanie systemu CI/CD zgodnie z podejściem “Everything as Code” i GitOps
  • Standaryzacja deploymentu z użyciem szablonów Helm
  • Tekton jako natywna dla Kubernetes alternatywa do budowy pipeline`ów