Kategorie: Linux (wszystkie), DevOps. CI/CD, Ansible, Docker i Kubernetes, cloud
Podczas szkolenia uczestnik zagłębi się w praktyczną wiedzę, związaną z nowoczesnymi rozwiązaniami ciągłego budowania i wdrażania oprogramowania (CI/CD).
Od inżynierów wymaga się tworzenia, testowania i wdrażania aplikacji w sposób niezawodny i powtarzalny. Uczestnicy szkolenia nauczą się różnych metod konfiguracji i aktywnego wykorzystywania serwera Jenkins, wraz z integracją z Git i testami, oraz z omówieniem różnych możliwych scenariuszy.
Serwer automatyzacyjny Jenkins, to narzędzie w pełni darmowe (open source), jednocześnie oferujące potężne możliwości. Bogaty zestaw funkcji stale powiększa się, dzięki bardzo aktywnie działającej społeczności. Bardzo rozbudowany ekosystem gotowych, zewnętrznych rozszerzeń (plug-in) daje nieograniczone możliwości w dostosowaniu rozwiązania do własnych potrzeb.
Omówione zostaną również różne sposoby testowania aplikacji, jak i procesy umożliwiające przyspieszenie wdrażania nowych wersji aplikacji. Uczestnik dowie się jak wdrożyć rozwiązanie w obecnym środowisku, oraz jak integrować je z innymi rozwiązaniami i usługami (takimi jak Git, Maven, AWS, Docker i wiele innych).
Każdy uczestnik po zakończeniu szkolenia będzie posiadał następujące umiejętności / wiedzę:
- kilkukrotne zmniejszenia czasu potrzebnego na wdrożenie nowych wersji oprogramowania
- wdrożenie rozwiązań CI/CD w firmie
- znajomość zagrożeń i problemów, które towarzyszą tworzeniu oprogramowania oraz metod ich rozwiązywania
- wiedza na temat szerokiej gamy sposobów testowania oprogramowania
- umiejętność konfiguracji, wykorzystywania i zarządzania serwerem Jenkins
- rozeznanie w alternatywnych rozwiązaniach dla środowisk automatyzacyjnych
- wiedza na temat różnych procesów i mechanizmów związanych CI/CD
- umiejętność automatyzacji powtarzalnych zadań
Uwaga: w ofercie, dla zainteresowanych, posiadamy też bardziej całościowy Bootcamp DevOps – dłuższy kurs, prezentujący kompleksowe podejście do nowoczesnych technik tworzenia, wdrażania i pielęgnacji oprogramowania w środowiskach kontenerowych i chmurowych – z procesami CI/CD w jednej z głównych ról.
Czas trwania
2 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
Training also available in English - for more information see here.
Przeznaczenie i wymagania
Szkolenie skierowane jest zarówno do programistów, architektów, team-leaderów, testerów oprogramowania jak i osób odpowiedzialnych za tworzenie środowisk aplikacyjnych (administratorzy oraz DevOps).
Program kursu zakłada podstawową znajomość pracy i zarządzania środowiskiem Linux, wykorzystując polecenia powłoki (Bash). Uczestnik powinien również w stopniu podstawowym znać specyfikę i sposób działania systemów kontroli wersji (Git). Niewątpliwym ułatwieniem dla uczestnika będzie doświadczenie w tworzeniu oprogramowania (w dowolnym środowisku: Java / JavaScript / Python / PHP / Ruby / C++ / .NET, etc).
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.