Poznaj warsztat inżyniera DevOps.
Kompleksowy kurs, łączący wiedzę z praktycznymi doświadczeniami. 80 godzin zajęć na żywo (zdalnie lub stacjonarnie w Warszawie) oraz zestaw ćwiczeń domowych. Zajęcia obejmują najważniejsze koncepcje, narzędzia i technologie DevOps, takie jak: Docker, Kubernetes, Jenkins, Git, czy Ansible.
Zdobądź doświadczenie w projektowaniu i implementacji nowoczesnych środowisk dla aplikacji. Poznaj koncepcje i typowe zastosowania procesów CI/CD, przy okazji analizując różne podejścia i możliwości związane z automatycznym testowaniem oprogramowania. Nauczysz się automatyzować procesy uruchamiania, aktualizacji i skalowania aplikacji w złożonych środowiskach wirtualnych, kontenerowych i cloudowych.
Zapoznamy się też dokładniej z wybranym środowiskiem chmurowym (w obecnych edycjach: AWS). Omówimy też zagadnienia związane z monitoringiem działania i wydajności złożonych systemów.
A wszystko to wraz z przykładowymi konfiguracjami, omówieniem "taktyki" i kilkoma konkretnymi warsztatami odzwierciedlającymi realne, praktyczne zastosowania i scenariusze.
-
Tematyka:CI/CD, GIT (scenariusze pracy, dostawcy repozytoriów), testowanie oprogramowania, Jenkins, Docker, Ansible, Kubernetes, monitoring systemów, (m.in. Prometheus, Grafana), AWS, Terraform.
-
Czas trwania:80 godzin zegarowych zajęć na żywo
+ 40 godzin pracy w domu z naszymi
materiałami = w sumie 120 godzin -
Tryby zajęć:
- weekendowo (sob-niedz., średnio co 2 tygodnie)
- dziennie (cztery 2/3-dniowe bloki, co ok. 2 tyg.)
-
Grupa:Zajęcia stacjonarne - na sali max 12 osób.
Dla kursów zdalnych - do 17 osób łącznie.
-
Miejsce:Warszawa (metro Świętokrzyska), lub
Zdalnie (online na żywo z trenerem i grupą). -
Elastyczność:a) do 15 dni przed startem można zrezygnować
b) podczas zajęć można:
- przejść z trybu stacjonarnego na zdalny
- ze zdalnego na stacjonarny
- w razie potrzeby otrzymać nagrania z zajęć
- zawiesić uczestnictwo i dokończyć później
(w miarę dostępności miejsc)
-
Cena:5 990 PLN*
Kurs jest przeznaczony dla:
- Administratorów i praktyków związanych z infrastrukturą: dla osób pracujących w dziedzinach związanych z administracją systemów m.in. Linux, sieciami lub bezpieczeństwem, które chcą poszerzyć swoje kompetencje; rozumieć, jak efektywnie wdrażać i utrzymywać infrastrukturę IT z wykorzystaniem praktyk DevOps - i móc uczestniczyć w pracach zespołów DevOps.
- Programistów: osób na co dzień zajmujących się tworzeniem lub pielęgnacją oprogramowania, zainteresowanych lub mających styczność z zagadnieniami wdrożeniowymi, jak również wydajnościowymi - chcących rozwinąć się w kierunku DevOps-owym, poznać te narzędzia i techniki. Poszerzając również kompetencje w odniesieniu do infrastruktury i zagadnień administracyjnych w dużych, nowoczesnych środowiskach.
- Osób z podstawową wiedzą o systemie Linux: dla wszystkich tych, którzy mają doświadczenie z systemami Linux i podstawami administrowania. To fundament, na którym można zbudować umiejętności związane z DevOps.
Zagadnienia - program:
Wymagania:
Oczekujemy, że uczestnicy mają podstawową znajomość systemu Linux i sieci komputerowych. Nie wymagamy ukończenia żadnego kursu, ale może to być wiedza np. na poziomie naszego szkolenia Wstęp do administracji systemem Linux, lub całego kursu od zera Administrator Linuksa.
Dodatkowo spodziewamy się, że kursanci mają podstawową wiedzę z programowania w dowolnym języku skryptowym - może to być np. linuksowy Bash, może być Python. Na zajęciach będziemy pisać skrypty dla różnych narzędzi - jest to kluczowe dla automatyzacji zadań w praktykach DevOps.
Uwaga: nie wymagamy natomiast znajomości Git-a, ponieważ kurs zawiera (szybkie) wprowadzenie do tego narzędzia. Będziemy omawiać praktyczne stosowanie go w pracy zespołowej nad kodem źródłowym, w szczególności w odniesieniu do testowania i do procesów CI/CD.
Podczas zajęć, będziemy też realizowali praktyczne miniprojekty (warsztaty) i rozmaite ćwiczenia.
Dlaczego warto zainwestować w kurs DevOps?
DevOps to nie tylko zestaw narzędzi, programów i praktyk, ale też cała filozofia i system pracy. Promuje również, niejako siłą rzeczy, współpracę zespołową, komunikację, ale też ciągłe doskonalenie się. Inwestując w ten kurs, zdobędziesz solidne podstawy z tej dziedziny oraz nowe, praktyczne umiejętności przydatne w pracy - czy też na rynku pracy. DevOps to jedna z nowoczesnych technik, które zmieniają sposób pracy nad projektami IT; nasz kurs jest przepustką do rozwoju w tym kierunku i do tego świata.
Zadania Specjalisty DevOps:
- Automatyzacja procesów: Implementacja narzędzi takich jak Jenkins, GitLab, CI/CD, czy Ansible - automatyczne testowanie błędów, instalacje i konfiguracje pakietów, aplikacji, czy całych środowisk - aby finalnie skrócić czas realizacji projektu i zmniejszać ryzyka i częstotliwość występowania błędów.
- Skalowanie aplikacji, orkiestracja kontenerów: Zarządzanie i skalowanie aplikacji w kontenerach Docker, z wykorzystaniem narzędzi takich jak Kubernetes. Poprawa wydajności systemów i optymalizacja wykorzystania zasobów.
- Monitorowanie i optymalizacja systemów: Użycie systemów monitorowania takich jak Prometheus, czy Grafana - dla ciągłej obserwacji zasobów i aplikacji.
- Współpraca z zespołami: Aktywne uczestniczenie w procesach Scrum lub Agile, wspieranie dużych zespołów w osiąganiu celów projektowych.
Zainwestuj w przyszłość i zdobądź niezbędne kompetencje, aby stać się specjalistą DevOps - w świecie nowoczesnych technologii. Nasz kurs zapewnia wysoką jakość merytoryczną oraz praktyczne podejście do nauki.
Trenerzy - doświadczeni praktycy, specjaliści, którzy jednocześnie lubią uczyć.
Nawet najlepiej przygotowany program kursu nie zadziała bez doświadczonych wykładowców. Dlatego nasi trenerzy nie tylko są specjalistami i praktykami w swojej dziedzinie, ale też mają wieloletnie doświadczenie w szkoleniach i nauczaniu. Prowadzą warsztatowe zajęcia obfitujące w realistyczne przykłady.
Administrator systemów Linux i programista. Specjalista w technologiach BASH, Python, Ansible, Git; konsultant bezpieczeństwa systemów informatycznych i sieciowych, dawniej również programista web. Nagrodzony "Złotą Kredą" za prowadzone gościnnie zajęcia na Politechnice Warszawskiej.
Analityk, projektant i programista systemów wbudowanych. Twórca specjalistycznych urządzeń przemysłowych i medycznych wykorzystujących systemy Linux i Android. Jego pasją są podróże, najchętniej z namiotem z dala od uczęszczanych szlaków.
Andrzej od czasu studiów na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej pracuje na styku sprzętu i oprogramowania. Karierę rozpoczynał jako administrator, zajmował się również tematyką synchronizacji czasu w środowiskach izolowanych. Zdobyte doświadczenie pozwoliło mu zrealizować wiele specjalistycznych systemów komputerowych, w szczególności bezobsługowych, w branżach Machine-to-Machine (M2M) oraz Internet of Things (IoT).
Bogata droga zawodowa pozwoliła mu zetknąć się z wieloma architekturami: poczynając od x86 przez TI DSP, ARM, SH4, MIPS i PowerPC. Tworzenie wydajnych i niezawodnych aplikacji w warunkach ograniczonych zasobów sprzętowych wyrobiło mu przyzwyczajenie do uważnego projektowania oraz zachowywania prostoty tworzonych rozwiązań.
Poza elektroniką i oprogramowaniem Andrzej interesuje się podróżami. Praca programisty-konsultanta pozwoliła mu zwiedzić kilka ciekawych miast, zaś prywatnie wybiera miejsca interesujące przyrodniczo i kulinarnie.
Program szkolenia
- 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
- Wprowadzenie do Kubernetes
- Historia i podstawowe koncepcje Kubernetes
- Architektura Kubernetes
- Podstawowe komponenty: Pod, Node, Cluster
- Instalacja Kubernetes
- Różne metody instalacji Kubernetes (minikube, kubeadm, etc.)
- Praktyczne ćwiczenie: Instalacja Kubernetes na lokalnej maszynie
- Wprowadzenie do microk8s
- Co to jest k3s, minikube, microk8s i jakie są ich zalety?
- Porównanie k3s z pełnym Kubernetes
- Praktyczne ćwiczenie: Instalacja microk8s
- Podstawowe operacje w Kubernetes i microk8s
- Tworzenie i zarządzanie Podami
- Skalowanie aplikacji
- Aktualizacje i roll-backi
- Networking w Kubernetes i microk8s
- Sieciowe modele w Kubernetes
- Service, Ingress i Network Policies
- Praktyczne ćwiczenie: Konfiguracja sieci w Kubernetes
- Storage w Kubernetes
- Persistent Volumes i Persistent Volume Claimsą
- Storage Classes
- Praktyczne ćwiczenie: Zarządzanie danymi w Kubernetes
- Zaawansowane tematy
- Helm: zarządzanie aplikacjami w Kubernetes
- Kubernetes Dashboard
- Praktyczne ćwiczenie: Tworzenie własnych zasobów
- Wprowadzenie do Kubernetes
- Monitoring i logowanie
- Narzędzia do monitorowania Kubernetes (Prometheus, Grafana)
- Zarządzanie logami (ELK stack, Fluentd)
- Praktyczne ćwiczenie: Implementacja monitoringu
- Najlepsze praktyki i case study
- Najlepsze praktyki w zarządzaniu klastrem
- Przykłady różnych zastosowań
- Chmurowe rozwiązania AKS, EKS, GKS
- Monitoring
- Prometheus, Grafana oraz Alertmanager (wprowadzenie, podstawy działania, przykładowa konfiguracja, Service Discovery)
- Agregator logów (logowanie w formacie JSON, ELK, Grafana Loki)
- AWS
- Wprawdzenie (rodzaje i najpopularniejsi dostawcy)
- Regiony oraz Availability Zones – ich cel i ważne aspekty
- Zarządzanie budżetem
- Opis podstawowych usług chmurowych (serwery wirtualne, managed services, storage, VPC)
- IAM – Zarządzanie użytkownikami, politykami oraz uprawnieniami
- awscli
- Szerszy opis usług EC2, S3, ALB oraz ECR
- Terraform
- HCL – Hashicorp Configuration Language
- Instalacja oraz konfiguracja narzędzia Terraform
- Podstawowe komendy
- Dostawcy oraz zasoby
- tfstate – znaczenie i rola
- Provisioner – zasada działania, przykłady zastosowania
- Zmienne
- Output
- LAB: w postaci uruchomenia kilku usług a następnie skonfigurowanie niektórych z nich (np. EC2) za pomocą Ansible
- LAB: terraform i Jenkins