Adresaci szkolenia
Szkolenie przeznaczone jest dla programistów, administratorów systemowych, architektów IT, którzy
- chcieliby nauczyć się zarządzać infrastrukturą IT w sposób automatyczny, wykorzystując przy tym najlepsze praktyki SDLC, takie jak CI, CD, code review, automatyczne testy, etc.
- zrozumieć na czym polega koncepcja Infrastructure as Code
- poszerzyć swoje komptencje DevOps
- zdobyć jedną z kluczowych umiejętności przy pracy w środowiskach Cloud
- być w stanie zaprojektować system IT na poziomie infrastruktury (system produkcyjny lub np. POC) i komponentów, począwszy od warstwy sieci, poprzez bezpieczeństwo, aż po aplikacje / mikroserwisy.
- poznać narzędzie które pozwoli dostarczać blue printy systemów IT w postaci kodu źródłowego
- chcieliby poszerzyć swój warsztat o kompetencję IAC / Terraform, zrozumieć jak znane im prakty SDLC mogą być zastosowane do projektowania infrastruktury systemów
Cel szkolenia
Szkolenie w sposób przekrojowy przeprowadzi uczestnika przez różne aspekty pracy z Terraform, skupiając się przy tym na zrozumieniu najlepszych praktyk, rolę narzędzia Terraform w domenie DevOps / Infrastructure As Code (IAC) oraz zdobyciu praktycznych umiejętności.
Uczestnik szkolenia po jego ukończeniu zdobędzię następujące umiejętności / wiedzę:
- zrozumie koncepcję Infrastructure As Code, będzie znał zalety oraz wady tego podejścia
- będzie potrafił użyć Terraform we właściwy sposób
- będzie znał najlepsze praktyki pracy z Terraform
- będzie potrafił wdrażać infrastrukturę przy podejściu IAC u wiodących dostawców platform IAAS, PAAS oraz SAAS
- będzie rozumiał rożnicę pomiędzy Terraform a CloudFormation (AWS native) oraz innymi narzędziami IAC (Chef, Ansible, Puppet, ...)
- będzie wiedział jak zarządzać infrastrukturą przy pomocy Terraform
- będzie potrafił testować i walidować infrastrukturę IT przy pomocy Terraform
Wymagania
Uczestnicy powinni znać co najmniej jedną chmurę (np. AWS, Azure, GCP) oraz orientować się w tematyce DevOps. Znajomość Terraform nie jest wymagana. Ćwiczenia będą realizowane w oparciu o serwisy w chmurze AWS.
Parametry szkolenia
2 x 8h (2 x 7h netto) w proporcji: 70% warsztaty, dyskusje; 30% wykłady
Program szkolenia
- Wprowadzenie do Terraform
- DevOps
- Co to jest Infrastructure as Code?
- Zalety podejścia IAC
- Jak działa Terraform
- Terraform a inne narzędzia IAC (porównanie) - Chef, Puppet, Ansible, CloudFormation
- Pierwsze kroki z Terraform
- Konfiguracja konta AWS
- konfiguracja AWS CLI
- Instalacja Terraform 0.12
- Przedstawienie funkcjonalności AWS (aws provider) dostępnej w Terraform
- data sources vs resources
- przegląd dostępnych obiektów źródłowych
- przegląd dostępnych obiektów do zarządzania stanem infrastruktury
- Instalacja oraz deinstalacja przykładowych obiektów chmury AWS (np. EC2, RDS, VPC)
- Stan infrastruktury w Terraform (State File)
- czym jest plik stanu infrastruktury?
- jak edytować plik stanu infrastruktury?
- Zmienne (var), zmienne lokalne (locals), podstawy modułów, funkcje oraz wyrażenia w Terraform
- Obiekty
- meta-argumenty - depends on, count, for_each, provider, provisioner, connection
- cykl życia (lifecycle) - modyfikowanie domyślnych zachowań przy pomocy akcji cyklu życia
- Wyrażenia warunkowe
- Pętle for
- Konfiguracja konta AWS
- Jak projektować infrastrukturę systemów w Terraform
- Moduły - wprowadznie (parametry wejściowe, sposób wersjonowania oraz parametry wyjściowe)
- Moduły - jak projektować oraz korzystać efektywnie
- Struktura projektów w Terraform, różne podejścia
- Jak i co testować w Terraform?
- Unit Testy, Testy integracyjne oraz testy E2E
- Jak zarządzać stanem optymalnie?
- przechowywanie stanu lokalnie vs terraform backend
- omówienie dostępnych backendów (s3, azurerm, artifactory, ...)
- Kwestie bezpieczeństwa
- przechowywanie sekretów/haseł
- bezpieczne przechowywanie pliku stanu
- Jak pracować w zespole nad projektami Terraform?
- Podsumowanie