E-mail: bvaradinov@gmail.com
Модули:
Модул 1: Въведение в DevOps
1.1. История на разработката на софтуер и ИТ операциите
1.2. Преди DevOps
1.3. Какво е DevOps
1.4. DevOps Toolchain
1.5. Демо и дискусия: Настройване на среда за курса
Модул 2: Операционни системи и работа в мрежа
2.1. Какво е операционна система
2.2. История и еволюция на операционните системи
2.3. Видове операционни системи
2.4. Архитектури на операционните системи
2.5. Сървърна срещу настолна ОС
2.6. Съвременни парадигми в сървърните ОС
2.7. Основи на работата в мрежа
2.8. Мрежови инструменти и техники
Модул 3: Основи на програмирането и приложенията
3.1. Програмни езици
3.2. Езици за програмиране на ниско ниво срещу езици за програмиране на високо ниво
3.3. Интерпретатори срещу компилатори при езиците за програмиране
3.4. Библиотеки
3.5. Frameworks
3.6. Паралелизъм и асинхронни парадигми
3.7. Настолни приложения
3.8. Мобилни приложения
3.9. Уеб приложения
3.10. Уеб услуги
3.11. Данни и устойчивост на приложения - RDBMS, NoSQL, кеширане, опашки за съобщения
3.12. Демонстрация и дискусия: Разработване на приложение с помощта на python
Модул 4: Системи за контрол на версиите
4.1. История на системите за контрол на версиите
4.2. Централизирано срещу разпределено управление
4.3. Git
4.4. GitHub, GitLab, BitBucket и др.
4.5. Самостоятелно хостване срещу облак
4.6. Работа в екип
4.7. Клонове (Branch)
4.8. Git History
4.9. Git Blame
4.10. Pull Request / Merge Request
4.11. Стратегии за разклоняване (Branching Strategy)
4.12. Демо и дискусия: GitHub
Модул 5: Внедряване на приложения
5.1. Bare Metal
5.1.1. Разбиране на Bare Metal
5.1.2. Bare Metal сървъри
5.1.3. Стратегии за внедряване
5.1.4. Производителност и сигурност
5.1.5. Дискусия: Предимства и недостатъци от използването на Bare Metal реализации
5.2. Виртуализация
5.2.1. Разбиране на виртуализацията
5.2.2. Как работи хардуерната виртуализация
5.2.3. Виртуални машини (VM)
5.2.4. Хипервайзори
5.2.5. Пара- срещу пълна виртуализация
5.2.6. Синтетична виртуализация
5.2.7. Самостоятелно хоствани срещу облачни виртуални машини
5.2.8. Демонстрация и дискусия: Създаване на VM и инсталиране на софтуер
5.3. Контейнери
5.3.1. Разбиране на контейнерите
5.3.2. Как Docker става де факто стандарт
5.3.3. Работа с Docker
5.3.4. Docker файл
5.3.5. Демонстрация и дискусия: Настройка на контейнерна среда на VM. Изграждане на имидж. Стартиране на контейнер.
5.4. Оркестрация на контейнери
5.4.1. Необходимост от оркестрация
5.4.2. Платформи за оркестриране на контейнери
5.4.3. Въведение в Kubernetes
5.4.4. Демонстрация и дискусия: Настройване на kubernetes и инсталиране на pods
Модул 6: Облачни технологии и DevOps
6.1. Въведение в облачните технологии
6.2. Облачни модели
6.3. Облачни доставчици
6.4. Публични, частни и хибридни облачни решения
6.5. Управлявани услуги (Managed Services)
6.6. Големите 3 - AWS, Azure, Google
6.7. Други облачни доставчици - Alibaba, Oracle, IBM и др.
6.8. Други доставчици на PaaS (Mongo Atlas и др.)
6.9. Multi-Cloud (Комбиниране на различни услуги от различни облачни доставчици)
6.10. Облачни изчисления и DevOps
6.11. Дискусии: Как да прецените кой доставчик е подходящ за вашите нужди? Дали мулти-облакът е добър вариант за вашите работни натоварвания?
Модул 7: Amazon Web Services (AWS)
7.1. Основни услуги на AWS
7.2. IaaS срещу PaaS
7.3. IaaS в действие
7.4. Синергия между управляваните услуги
7.5. Работа в мрежа в AWS
7.6. Разширени услуги на AWS
7.7. Демонстрация и дискусия: Внедряване на приложение върху AWS IaaS и PaaS
Модул 8: Continues Integration (CI), Continues Delivery (CD), Continues Deployment (CD)
8.1. Въведение в CI
8.2. Защо CI
8.3. Изграждане на CI pipelines
8.4. Въведение в CD
8.5. Continues Delivery срещу Continues Deployment
8.6. Изграждане на CD pipelines
8.7. Pipelines като код
8.8. Идеология за много среди
8.9. Идеология за управление на тайните (secrets)
8.10. Демонстрация и дискусия: Създаване на CI/CD pipelines
Модул 9: Инфраструктура като код (IaC) и Configuration Management
9.1. Разбиране на IaC и Configuration Management
9.2. IaC срещу Configuration Management
9.3. Инструменти за IaC и Configuration Management
9.4. Terraform като IaC инструмент
9.5. Ansible като инструмент за управление на конфигурациите
9.6. Демонстрация и дискусия: Създаване на Terraform решение за AWS инфраструктура, Създаване на Ansible playbook за конфигуриране на виртуални машини.
Модул 10: Наблюдаемост и мониторинг (мониторинг, регистриране и предупреждение)
10.1. Въведение в наблюдаемостта и мониторинга (Observability and Monitoring)
10.2. Ключови понятия
10.3. Осъществяване на мониторинг
10.4. Събиране и анализиране на логове
10.5. Внедряване на известия
10.6. Демонстрация и дискусия: Настройване на наблюдение и мониторинг на инфраструктурата и приложенията
Модул 11: DevOps и сигурност
11.1. Основни принципи на сигурността (Defense in Depth)
11.2. Сигурност на инфраструктурата
11.3. Сигурност на приложението
11.4. Физическа сигурност
11.5. Мрежова сигурност
11.6. Как наблюдението и мониторинга са свързани със сигурността
11.7. Интегриране на сигурността в DevOps CI/CD Pipeline
11.8. Управление на самоличността и достъпа
11.9. Управление на тайните (secrets)
11.10. Демонстрация и дискусия: Интегриране на DevSecOps в жизнения цикъл на приложението
Модул 12: Тестване на софтуер
12.1. Въведение в софтуерното тестване
12.2. Принципи и методологии на тестване
12.3. Видове тестване на софтуер
12.4. Прилагане на стратегия за тестване