|
|
|
|
Факултет по математика и информатика - Съвременни контейнерни технологии и AI инфраструктура |
 |
|
доц. д-р Георги Чолаков, хон. ас. Иван Бекяров
|
|
Дисциплината запознава студентите с архитектурата, принципите и практическото приложение на съвременните технологии за контейнеризация в облачни среди и инфраструктура за изкуствен интелект. Разглеждат се механизмите за изолация и управление на системни ре-сурси, както и технологиите Docker, LXC, LXD/Incus и FreeBSD Jails. Обучението обхваща съз-даване и управление на контейнеризирани приложения, контейнерни мрежи, съхранение на данни, автоматизирано разгръщане и основни подходи за информационна сигурност. Специално внима-ние се отделя на използването на GPU ресурси и изпълнението на AI/ML приложения в контейне-ризирана среда. Практическите упражнения осигуряват умения за изграждане, конфигуриране и администриране на контейнерна инфраструктура, приложима в съвременните DevOps, Cloud и AI системи.
|
| Не се изискват специални основни познания, но някои вече съществуващи умения за програмиране биха били полезни, тъй като курсът се фокусира особено върху елементи на функционалния стил на програмиране. |
|
Успешно завършилите обучението по тази учебна дисциплина: 1. Ще знаят: • основните принципи и архитектурни различия между виртуализация и контейнеризация; • механизмите Linux Namespaces, cgroups v2, Capabilities и Seccomp; • OCI стандартите, containerd, runc и контейнерните регистри; • архитектурата и начините на работа с Docker, LXC, LXD/Incus и FreeBSD Jails; • принципите на контейнерните мрежи, файлови системи и постоянното съхранение на данни; • основните рискове и мерки за информационна сигурност на контейнерите; • подходите за GPU ускорение и контейнеризация на AI/ML приложения. 2. Ще могат: • да изграждат и оптимизират Docker изображения и да управляват жизнения цикъл на контейнерите; • да конфигурират контейнерни мрежи, bind mounts и ресурсни ограничения; • да разгръщат многокомпонентни приложения с Docker Compose и health checks; • да администрират системни контейнери с LXC и LXD/Incus; • да прилагат основни механизми за защита и сканиране на контейнерни изображения; • да конфигурират достъп до GPU ресурси в контейнерна среда; • да разгръщат примерни AI/ML и LLM inference приложения; • да документират и представят интегрирано контейнеризирано решение.
|
• Компютърна зала и работни станции или лаптопи с възможност за контейнеризация • Linux среда с Docker, LXC и Incus/LXD; достъп до FreeBSD среда за демонстрации • Проектор, бяла дъска и интернет достъп • GPU ресурси или дистанционен достъп до GPU инфраструктура за AI задания (при наличност) |
|
А) Лекции 1. Въведение във виртуализацията и контейнерните технологии – 3 часа 1. Основни принципи на виртуализацията и контейнеризацията. 2. Разлики между виртуални машини и контейнери. 3. Контейнери за приложения (Application Containers) и системни контейнери (System Containers). 4. Архитектурни особености и области на приложение. 2. Архитектура и вътрешни механизми на Linux контейнерите – 3 часа 1. Linux Namespaces и изолация на процеси. 2. Control Groups (cgroups v2) и управление на ресурси. 3. Linux Capabilities и Seccomp. 4. Механизми за изолация и ограничения на контейнерите. 3. OCI стандарти и среди за изпълнение на контейнери – 3 часа 1. Open Container Initiative (OCI). 2. OCI Image и Runtime спецификации. 3. Containerd и runc. 4. Container Registries и управление на контейнерни изображения. 4. Docker – архитектура и управление на контейнери – 3 часа 1. Архитектура на Docker Engine. 2. Docker Daemon и Docker Client. 3. Създаване, стартиране и управление на контейнери. 4. Жизнен цикъл на контейнерите. 5. Изграждане и оптимизация на контейнерни изображения – 3 часа 1. Docker Images и Dockerfile. 2. Слоеста архитектура на контейнерните изображения. 3. Docker Build и Build Cache. 4. Multi-stage Builds. 5. Оптимизация на размер, производителност и използвани ресурси. 6. Управление на данни в контейнеризирана среда – 2 часа 1. Docker Volumes и Bind Mounts. 2. OverlayFS и контейнерни файлови системи. 3. Постоянно съхранение на данни (Persistent Storage). 4. Управление на данни при жизнения цикъл на контейнерите. 7. Мрежова свързаност на контейнерите – 2 часа 1. Архитектура на контейнерните мрежи. 2. Bridge Networking и Virtual Ethernet (veth). 3. NAT и Port Publishing. 4. Macvlan и IPvlan. 5. DNS и комуникация между контейнерите. 8. Управление на многокомпонентни приложения с Docker Compose – 2 часа 1. Архитектура и предназначение на Docker Compose. 2. Дефиниране на многокомпонентни приложения. 3. Управление на зависимости между услуги. 4. Health Checks и Environment Variables. 5. Основи на управлението на Secrets. 9. Системна контейнеризация с LXC – 2 часа 1. Архитектура и принципи на LXC. 2. Създаване и управление на системни контейнери. 3. Контейнерни изображения и шаблони. 4. Управление на ресурси и мрежова свързаност. 10. Управление на системни контейнери с LXD и Incus – 2 часа 1. Архитектура и функционалности на LXD и Incus. 2. Създаване и управление на контейнери и виртуални машини. 3. Profiles и Storage Pools. 4. Мрежова конфигурация. 5. Snapshots и управление на състоянието. 11. Контейнеризация във FreeBSD – 2 часа 1. Архитектура на FreeBSD Jails. 2. Изолация на процеси и системни ресурси. 3. VNET и мрежова виртуализация. 4. Интеграция със ZFS. 5. Сравнение между FreeBSD Jails и Linux контейнери. 12. Информационна сигурност на контейнеризирани среди – 2 часа 1. Основни заплахи и рискове при контейнеризация. 2. Rootless Containers. 3. Linux Capabilities и Seccomp. 4. AppArmor и механизми за ограничаване на достъпа. 5. Сканиране за уязвимости на контейнерни изображения. 6. Добри практики за защита на контейнеризирани приложения. 13. GPU ускорение в контейнеризирана среда – 2 часа 1. Архитектура на GPU изчисленията. 2. NVIDIA CUDA и използване на GPU ресурси. 3. NVIDIA Container Toolkit. 4. Container Device Interface (CDI). 5. Предоставяне и управление на GPU ресурси в контейнери. 14. Контейнеризация на приложения за изкуствен интелект и машинно обучение – 2 часа 1. Основни принципи на контейнеризацията на AI/ML приложения. 2. Контейнеризирано изпълнение на PyTorch, TensorFlow и ONNX приложения. 3. Разгръщане на предварително обучени AI модели. 4. LLM Inference в контейнерна среда. 5. Използване на GPU ускорение за AI приложения. 15. Интегрирано практическо задание – 2 часа 1. Изграждане на контейнеризирано приложение. 2. Конфигуриране на мрежова свързаност и съхранение на данни. 3. Управление на CPU и RAM ресурси. 4. Конфигуриране на Health Checks. 5. Разгръщане на примерна AI Inference услуга. 6. Документиране и представяне на разработеното решение. Общо: 35 часа.
|
| • Лекции, демонстрации, практически задания и самостоятелна работа. |
|
• Студентите разработват курсов проект с контейнеризирано приложение, мрежова конфигурация, постоянно съхранение на данни, ограничения на ресурси и health checks. • В заключителния етап на проекта се разгръща примерна AI inference услуга и се представят документация, инструкции за стартиране и демонстрация на работещото решение.
|
|
• Курсов проект – 60% • Решаване на практически задания и казуси по време на курса – 30% • Присъствие на занятията – 10%
|
• Docker Documentation. https://docs.docker.com/ • Open Container Initiative. OCI Image and Runtime Specifications. https://opencontainers.org/ • Linux Containers Project. LXC Documentation. https://linuxcontainers.org/ • Incus Documentation. https://linuxcontainers.org/incus/docs/ • FreeBSD Handbook. Jails and Containers. https://docs.freebsd.org/ • NVIDIA Container Toolkit Documentation. https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/ • PyTorch Documentation. https://pytorch.org/docs/ • TensorFlow Documentation. https://www.tensorflow.org/guide |
|
|
|
 |
 |
 |
| © 2026 ФМИ |