Wydział Informatyki
Kierunek studiów Informatyka Poziom i forma studiów pierwszego stopnia inżynierskie stacjonarne
Specjalność / Ścieżka dyplomowania --- Profil kształcenia ogólnoakademicki
Nazwa przedmiotu Wirtualizacja i konteneryzacja Kod przedmiotu INF1WIK
Rodzaj przedmiotu obieralny
Forma zajęć i liczba godzin W Ć L P Ps T S Semestr 5
26 30 Punkty ECTS 5
Przedmioty wprowadzające Sieci komputerowe (INF1SKO),   Systemy operacyjne (INF1SOP),   Wprowadzenie do systemu Linux (INF1WSL),  
Cele przedmiotu

Przekazanie kompleksowej wiedzy o technologiach wirtualizacji i konteneryzacji oraz ich roli w nowoczesnej infrastrukturze IT. Rozwój praktycznych umiejętności projektowania, wdrażania i zarządzania środowiskami zwirtualizowanymi i kontenerowymi. Kształtowanie kompetencji w zakresie optymalizacji zasobów IT i automatyzacji infrastruktury.

Odniesienia do standardu SFIA:
Virtualization (VIRT) - poziom 3
Systems Integration and Build (SINT) - poziom 3
Systems Installation/Decommissioning (HSIN) - poziom 2
Configuration Management (CFMG) - poziom 3
Release and Deployment (RELM) - poziom 2
Infrastructure Design (DESN) - poziom 2

Treści programowe

Ramowe treści:
Przedmiot stanowi zaawansowane wprowadzenie do technologii wirtualizacji i konteneryzacji jako fundamentalnych elementów współczesnej infrastruktury IT. Program łączy teoretyczne podstawy z praktycznymi aspektami implementacji, konfiguracji i zarządzania zwirtualizowanymi środowiskami.

Studenci poznają różne typy wirtualizacji (pełna, parawirtualizacja, wirtualizacja na poziomie systemu operacyjnego), platformy hiperwizorów (VMware, Hyper-V, KVM) oraz technologie kontenerowe (Docker, Kubernetes). Przedmiot obejmuje także zagadnienia orkiestracji kontenerów, automatyzacji infrastruktury, bezpieczeństwa środowisk zwirtualizowanych oraz integracji z rozwiązaniami chmurowymi. Istotnym elementem jest również zrozumienie wpływu wirtualizacji i konteneryzacji na optymalizację kosztów, skalowalność i elastyczność infrastruktury IT, a także praktyczne zastosowanie tych technologii w kontekście ciągłej integracji i dostarczania (CI/CD).

Wykład:
1. Wprowadzenie do wirtualizacji - historia, koncepcje, typy wirtualizacji (sprzętowa, programowa, pełna, parawirtualizacja), korzyści i wyzwania
2. Hiperwizory typu 1 i 2 - architektura, charakterystyka, porównanie wiodących rozwiązań (VMware ESXi, Microsoft Hyper-V, KVM, Xen)
3. Wirtualizacja desktopów (VDI) - zasady działania, korzyści, wdrażanie i zarządzanie, protokoły zdalnego dostępu
4. Wirtualizacja zasobów - sieci (SDN), pamięci masowej (SDS), funkcji sieciowych (NFV), architektura i zastosowania
5. Wprowadzenie do konteneryzacji - różnice między kontenerami a wirtualizacją, zalety, ograniczenia, standardy (OCI)
6. Docker - architektura, komponenty, zarządzanie obrazami, sieci kontenerowe, wolumeny, Dockerfile, Docker Compose
7. Kubernetes - architektura, komponenty, obiekty (Pod, Deployment, Service, ConfigMap), kontrolery, API
8. Orkiestracja kontenerów - zarządzanie klastrami, planowanie zasobów, skalowanie, deployment, strategie aktualizacji
9. Bezpieczeństwo w środowiskach zwirtualizowanych i kontenerowych - izolacja, podatności, najlepsze praktyki, compliance
10. Integracja z chmurą - platformy hybrydowe, modele wdrożeń, migracja między środowiskami
11. Automatyzacja infrastruktury - Infrastructure as Code, narzędzia automatyzacji (Terraform, Ansible), CI/CD dla infrastruktury
12. Monitorowanie i zarządzanie wydajnością środowisk zwirtualizowanych i kontenerowych - metryki, narzędzia, optymalizacja

Pracownia specjalistyczna:
1. Instalacja i konfiguracja hiperwizorów - tworzenie maszyn wirtualnych, zarządzanie cyklem życia VM, migracja
2. Zarządzanie pamięcią, CPU i siecią w środowiskach zwirtualizowanych - optymalizacja zasobów, overprovisioning
3. Projektowanie i wdrażanie sieci wirtualnych - implementacja VLAN, virtual switches, routing
4. Podstawy Docker - instalacja, zarządzanie kontenerami i obrazami, budowanie własnych obrazów, Docker Compose
5. Zaawansowane zagadnienia Docker - sieci kontenerowe, wolumeny, bezpieczeństwo, optymalizacja obrazów
6. Wprowadzenie do Kubernetes - instalacja minikube/k3s, podstawowe obiekty (Pod, Deployment, Service)
7. Zaawansowana konfiguracja Kubernetes - ConfigMaps, Secrets, persistent storage, Ingress, Helm
8. Strategie wdrażania aplikacji w Kubernetes - rolling updates, blue-green deployment, canary releases
9. Monitoring i logging w środowiskach kontenerowych - Prometheus, Grafana, ELK stack
10. Projekt zespołowy cz. 1: Projektowanie i wdrożenie zwirtualizowanej infrastruktury dla wybranego przypadku biznesowego
11. Projekt zespołowy cz. 2: Konteneryzacja aplikacji i wdrożenie jej w środowisku Kubernetes
12. Prezentacje projektów zespołowych, ocena wydajności i bezpieczeństwa, dyskusja nad możliwościami optymalizacji

Metody dydaktyczne

wykład problemowy,   programowanie z użyciem komputera,  

Forma zaliczenia

Wykład: zaliczenie pisemne.
Pracownia specjalistyczna: ocena sprawozdań z wykonanych zadań oraz ocena projektu

Symbol efektu uczenia się Zakładane efekty uczenia się Odniesienie do kierunkowych efektów uczenia się
EU1 koncepcje oraz typy wirtualizacji INF1_W03
INF1_W08
INF1_W12
INF1_W14
EU2 zasady zarządzania platformami do wirtualizacji INF1_W12
INF1_W14
EU3 projektować i wdrażać zwirtualizowane infrastruktury INF1_U12
INF1_U13
INF1_U14
EU4 konteneryzować aplikacje i wdrażać jej w wybranym środowisku INF1_U12
INF1_U13
Symbol efektu uczenia się Sposób weryfikacji efektu uczenia się Forma zajęć na której zachodzi weryfikacja
EU1 zaliczenie pisemne W
EU2 zaliczenie pisemne W
EU3 ocena sprawozdań z wykonanych zadań, ocena projektu Ps
EU4 ocena sprawozdań z wykonanych zadań, ocena projektu Ps
Bilans nakładu pracy studenta (w godzinach) Liczba godz.
Wyliczenie
1 - Udział w wykładach 26
2 - Udział w pracowni specjalistycznej 30
3 - Wykonanie zadań domowych oraz przygotowywanie sprawozdań 50
4 - Udział w konsultacjach 4
5 - Przygotowanie do zaliczenia 15
RAZEM: 125
Wskaźniki ilościowe GODZINY ECTS
Nakład pracy studenta związany z zajęciami wymagającymi bezpośredniego udziału nauczyciela 60
(1)+(2)+(4)
2.4
Nakład pracy studenta związany z zajęciami o charakterze praktycznym 80
(3)+(2)
3.2
Literatura podstawowa

1. Kubernetes, https://kubernetes.io/docs/home
2. Docker, https://docs.docker.com
3. Grafana, https://grafana.com/docs
4. Materiały do kursu Red Hat OpenShift Development I: Introduction to Containers with Podman (udostępniane studentom w formie elektronicznej)

Literatura uzupełniająca

1. Podręcznik systemowy GNU Linux
2. Kali Linux documentation - https://www.kali.org/docs

Jednostka realizująca Katedra Mediów Cyfrowych i Grafiki Komputerowej Data opracowania programu
Program opracował(a) dr inż. Andrzej Chmielewski 2025.03.02