Kategorie: Linux (wszystkie), Wirtualizacja, kontenery, DevOps, cloud
Docker to narzędzie, które z powodzeniem wspiera lub czasem nawet zastępuje klasyczną wirtualizację oferowaną przez rozwiązania typu VMware, KVM czy XEN. Pozwala na uruchamianie aplikacji w wydzielonym “kontenerze”, ale bez konieczności emulowania całej warstwy sprzętowej i systemu operacyjnego. Aplikacje w kontenerze mogą korzystać z potrzebnych im bibliotek bez ingerencji w system bazowy.
Najważniejszymi zastosowaniami Dockera są m.in.: podział systemów informatycznych na niezależne komponenty oraz automatyzacja procesów związanych z wdrażaniem skonteneryzowanego oprogramowania. Istotne jest również to, że każdy taki “kontener” posiada wydzielony obszar pamięci, odrębny interfejs sieciowy (z własnym prywatnym adresem IP) oraz własny obszar na dysku, na którym znajduje się zainstalowany obraz systemu operacyjnego i wszystkie zależności bibliotek potrzebnych do działania aplikacji.
Aplikacja uruchomiona z raz przygotowanego i sprawdzonego obrazu działa w identyczny sposób na każdym systemie – niezależnie od sterowników czy lokalnej konfiguracji sprzętu, co eliminuje odwieczny w informatyce problem “ale u mnie przecież działa”.
Brak wirtualizacji eliminuje w znacznym stopniu narzut wydajnościowy, efektem tego jest znacznie większa możliwość wykorzystania zasobów sprzętowych, co przy rozproszonych aplikacjach instalowanych do tej pory na kilkunastu bądź kilkudziesięciu wirtualnych maszynach przynosi wymierne oszczędności.
W drugiej części szkolenia, omówimy temat zyskującego na popularności narzędzia Kubernetes.
Rozbudowuje ono możliwości jakie uzyskujemy dzięki Deckerowi. Kubernetes (“K8s”) pozwala zarządzać większą liczbą “kontenerów” jak jedną dużą maszyną. Jest to specjalistyczne narzędzie do zarządzania aplikacjami w kontenerach rozmieszczonymi na wielu węzłach, stosowane w złożonych, wysokowydajnych środowiskach projektowanych z myślą o wysokiej dostępności usług.
Niniejsze szkolenie zostało zaprojektowane zarówno z myślą o programistach, jak i o administratorach – wpisuje się ono w specjalizację “DevOps”.
Czas trwania
3 dni
Program
- Wstęp
- teoria kontenerów
- budowa i elementy składowe Docker’a
- instalacja i konfiguracja Docker’a
- Obrazy
- nazewnictwo i tagowanie
- praca z rejestrami
- inspekcja obrazów
- Kontenery
- cykl życia kontenerów
- inspekcja kontenerów
- polityki restartowania kontenerów
- definiowanie wolumenów
- Konteneryzacja aplikacji
- definiowanie i budowanie własnych obrazów (Dockerfile)
- ograniczanie rozmiaru obrazu (multi-stage builds)
- dobre praktyki konteneryzacji
- Aplikacje wielokontenerowe
- definiowanie aplikacji wielokontenerowych (docker-compose)
- wdrażanie aplikacji wielokontenerowych
- Przykłady wykorzystania kontenerów
- Lokalny development aplikacji
- Proces ciągłej integracji (CI)
- Wdrożenie aplikacji
- Orkiestracja skalowalnych aplikacji wielokontenerowych – Kubernetes
- budowa i elementy składowe Kubernetes’a
- instalacja i konfiguracja Kubernetes’a
- tworzenie klastra
- konfiguracja artefaktów Kubernetes’a
- wdrażanie aplikacji
- zarządzanie wdrożoną aplikacją
Training also available in English.
Przeznaczenie i wymagania
Szkolenie przeznaczone jest dla programistów oraz administratorów do tworzenia, wdrażania i uruchamiania aplikacji rozproszonych chcących poznać podstawy i fundamenty działania systemów kontenerowych w oparciu o najpopularniejszą obecnie platformę jaką jest Docker. Podczas szkolenia zostanie wykorzystana przykładowa aplikacja napisana w języku Python, oparta o framework Django. Przy zamówieniu dla grupy zamkniętej możemy przeprowadzić szkolenie na aplikacji w innym języku programowania jak PHP, JavaScript, C#, Java etc.
Od osób zapisujących się na to szkolenie wymagane jest sprawne posługiwanie się linią poleceń w linuxie.
Certyfikaty
Uczestnicy szkolenia otrzymują imienne certyfikaty sygnowane przez ALX.
Zobacz też:
- Administrator Linuksa (kurs zawodowy - bootcamp)
- Zaawansowany administrator systemu Linux (kurs zawodowy - bootcamp)
- Linux i sieci dla młodzieży (kurs zawodowy - bootcamp)
- LPI 101: Wstęp do administracji systemem Linux
- LPI 102: Administracja systemem Linux i siecią
- Linux Essentials (dla codziennych użytkowników)
- LPI 201: Architektura i niskopoziomowa konfiguracja systemu Linux i sieci
- LPI 202: Konfiguracja usług serwerowych i ich bezpieczeństwo
- Przygotowanie do egzaminu LPIC-2 po kursie K-ADMIN-2
- LPI 300: LDAP, Samba, integracja z MS Windows, środowiska wielosystemowe
- LPI 303: Kryptografia, kontrola dostępu, bezpieczeństwo usług, bezpieczeństwo sieciowe
- LPI 304: Wirtualizacja i HA w systemach Linux
- Programowanie w języku BASH
- Zaawansowane programowanie powłoki, BASH, AWK
- Protokół komunikacyjny IPv6
- Poczta elektroniczna - Exim, rozwiązania antyspamowe.
- Poczta elektroniczna - Postfix
- Backup w systemie Linux
- VPN w teorii i w praktyce
- Wireguard - protokół VPN
- Monitoring serwerów i sieci; SNMP, Nagios, Munin
- Serwer Apache w systemie Linux
- Serwer WWW w systemie Linux - LAMP Stack
- BIND - serwer DNS w systemie Linux
- Usługi katalogowe LDAP w systemie Linux. Integracja autoryzacji systemów i usług.
- Serwer SAMBA w systemie Linux
- SAMBA, zaawansowana konfiguracja (PDC, LDAP, replikacja)
- Wstęp do wirtualizacji Linux - KVM
- Wirtualizacja w systemie Linux
- Ansible - wstęp do automatyzacji zarządzaniem infrastrukturą
- Ansible - automatyzacja, scentralizowane zarządzanie infrastrukturą i wdrożeniami
- Sieci bezprzewodowe i ich bezpieczeństwo
- Podpis cyfrowy i szyfrowanie z wykorzystaniem programów OpenSSL i GnuPG (GPG)
- HA (high availability) w systemach Linux
- Bezpieczeństwo systemu operacyjnego Linux – składniki systemu zabezpieczeń
- Linux – debugging aplikacji i jądra systemu
- Linux - exploitacja aplikacji i systemu. Ataki niskopoziomowe.
- Linux - testowanie bezpieczeństwa aplikacji, wyszukiwanie luk. Ataki wysokopoziomowe.
- Metody ataku i obrony - systemy IDS/IPS
- Administracja MySQL
- Docker - podstawy
- Docker - konfiguracja, zarządzanie, zastosowania
- Zaawansowany Kubernetes
- CI/CD - budowanie nowoczesnego procesu z wykorzystaniem serwera Jenkins
- Wprowadzenie do Amazon Web Services