Kategorie: Linux (wszystkie), DevOps. CI/CD, Ansible, Docker i Kubernetes, cloud
Szkolenie stanowi kompleksowe wprowadzenie do tematyki DevOps. Kurs skierowany jest do profesjonalistów IT, programistów, administratorów systemów oraz wszystkich zainteresowanych rozwijaniem umiejętności z zakresu: kontroli wersji, ciągłej integracji i dostarczania oprogramowania, Ansible oraz Docker.
W ramach szkolenia uczestnicy poznają fundamentalne koncepcje związane z podejściem DevOps, takie jak automatyzacja czynności administracyjnych na wielu serwerach, testowanie ciągłe i dostarczanie oprogramowania w sposób efektywny i niezawodny – oraz, konteneryzacja.
W programie: zaczynając od Gita, który jako system kontroli wersji, jest fundamentalnym narzędziem dla każdego zespołu programistycznego – przechodzimy do systemów CI/CD; Jenkins, jako narzędzie do ciągłej integracji, jest kluczowym elementem w środowisku DevOps. Omawiamy również technologię Ansible oraz cały temat konteneryzacji i Docker/Kubernetes.
Po zakończeniu szkolenia uczestnicy będą gotowi do praktycznego stosowania tych narzędzi w swoich projektach.
Osobom zainteresowanym uzyskaniem całości wiedzy z zakresu Devops polecamy również kompletny kurs Bootcamp DevOps. Pokrywa on materiał dwóch szkoleń: niniejszego DEVOPS 101 oraz szkolenia DEVOPS 102 – w niższej cenie niż sumaryczna cena tych dwóch osobnych szkoleń. Szkolenie niniejsze – DEVOPS 101 – jest równoważne dniom 1-6 kursu Bootcamp DevOps.
Czas trwania
6 dni
Program
- Wprowadzenie do Continuous Integration/Delivery (CI/CD)
- Cykl rozwijania oprogramowania
- Maszyny wirtualne
- Porównanie alternatywnych podejść: chmura kontra rozwiązania własne (on-premises)
- Ciągłe budowanie / integracja (continuous building / integration)
- Ciągła inspekcja (continuous inspection)
- Ciągłe wdrażanie (continuous deployment)
- Git – rozproszony system kontroli wersji
- Konfiguracja
- Podstawowe komendy
- Praca na gałęziach
- Zdalne repozytoria
- Praca ze zdalnymi repozytoriami
- Zaawansowane komendy (reset, merge, revert)
- Dostawcy repozytoriów zdalnych Git
- GitHub, Bitbucket oraz Gitlab
- Podstawowa konfiguracja oraz funkcjonalności
- Pipeline (wprowadzanie oraz podstawy, przykłady konfiguracji oraz działania)
- Runnery
- Testowanie oprogramowania i jego rola w procesach CI/CD
- Ręczne (manualne) testowanie wersji aplikacji
- Cel i specyfika testowania automatycznego
- Testy jednostkowe, a testy integracyjne
- Testowanie funkcjonalne/akceptacyjne
- Testowanie wydajnościowe
- Testy w Selenium – wprowadzenie
- Przykładowe testy jednostkowe w Pythonie
- Implementacja testów w całościowy proces CI/CD
- LAB: uruchamianie testów oraz deploy aplikacji w zależności od wyniku testów
- Serwer automatyzacyjny Jenkins
- Wprowadzenie (cel, architektura, zasada działania)
- Budowa typowego projektu
- jenkinsfile – konfiguracja przy użyciu kodu
- Instalowanie i używanie pluginów
- Dodawanie i używanie kluczy oraz haseł
- Praca z agentami
- Integracja narzędzi do testowania z serwerem Jenkins
- LAB: uruchamianie testów oraz deploy aplikacji w zależności od wyniku testów
- Ansible
- Termin IAAC – Infrastructure as a code oraz jego znaczenie i rola
- Podstawowe pojęcia oraz elementy
- Instalacja oraz konfiguracja
- Inventory
- Wykonywanie komend na wielu serwerach jednocześnie
- Prosty przykładowy playbook
- Wprowadzenie do ról
- Instalowanie oraz używanie pluginów
- Tworzenie bardziej zaawansowanych ról
- Bazowanie na faktach
- Docker
- Podstawowe komendy oraz zarządzanie kontenerami
- Sieci
- Volumeny
- Dockerfile (tworzenie, budowanie obrazu, podstawowe instrukcje, ENTRYPOINT i CMD)
- LAB: budowa kontenera na bazie prostej aplikacji
- Docker registry
- Docker compose
- Kubernetes
- Wstęp do zarządzania kontenerami
- Budowa oraz działanie klastra
- Podstawowe elementy – deployments, konfiguracje, przechowywanie haseł oraz serwisy
kubectl – podstawowe komendy - Ograniczanie zasobów dla poszczególnych kontenerów
- IAAC – przechowywanie konfiguracji infrastruktury jako kod
- LAB: deployment złożonej aplikacji na bazie Apache, PHP, MySQL oraz redis
Training also available in English.
Przeznaczenie i wymagania
Praktycznej na poziomie podstawowym znajomości tematyki związanej z Linuksem i sieciami TCP/IP; znajomość dowolnego języka skryptowego (np. bash albo Python).
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.