Курс "Автоматизация развертывания и эксплуатации программного обеспечения"
DevOps - это кто?

- DevOps (Development + Operations) - объединяет разработку и эксплуатацию: CI/CD, деплой, мониторинг, обратная связь от продакшена. Цель - быстрые и надёжные релизы.
- DevSecOps (Dev + Security + Ops) - безопасность «встроена» в DevOps: сканирование уязвимостей, SAST/DAST, управление секретами и политиками на всех этапах пайплайна.
- ITOps (IT Operations) - классическая эксплуатация ИТ: серверы, сети, бэкапы, поддержка пользователей, SLA, инциденты. Часто пересекается с TechOps.
- NetOps (Network Operations) - управление сетевой инфраструктурой: маршрутизация, балансировка нагрузки, мониторинг сети, автоматизация конфигураций.
- SecOps (Security Operations) - операционная безопасность: мониторинг угроз, реагирование на инциденты (SOC), управление уязвимостями и политиками.
- DataOps (Data Operations) - непрерывная доставка и качество данных: пайплайны ETL/ELT, контроль качества данных, версионирование датасетов, воспроизводимость экспериментов.
- MLOps (Machine Learning Operations) - эксплуатация ML‑моделей: обучение, валидация, деплой моделей, мониторинг дрейфа данных/концепций, управление версиями моделей.
- ModelOps - расширение MLOps на все типы аналитических моделей (не только ML): governance, аудит, соблюдение регуляторных требований, жизненный цикл моделей в масштабе предприятия.
- AIOps (Artificial Intelligence for IT Operations) - применение ML/AI к операционным данным (логи, метрики, трейсы) для автоматического обнаружения аномалий, предсказания сбоев и автоматизации рутинных действий.
- GitOps - подход, где единственным источником истины является Git‑репозиторий; инфраструктура и приложения приводятся в соответствие с ним через автоматизацию (например, ArgoCD).
- CloudOps - эксплуатация облачных сред: управление ресурсами, оптимизация затрат, автоскейлинг, обеспечение отказоустойчивости в облаке.
- InfraOps - управление инфраструктурой (физической и виртуальной), часто как базовый слой для других Ops‑практик.
- AppOps (Application Operations) - поддержка и эксплуатация конкретных приложений в продакшене: релизы, мониторинг, устранение инцидентов, фичи‑флаги.
- ChatOps - автоматизация и координация операций через чат‑платформы (Slack, Mattermost и т. п.): команды, уведомления, запуск задач из чата.
- NoOps - идеал максимальной автоматизации, когда ручное управление инфраструктурой не требуется; на практике встречается редко и обычно относится к управляемым PaaS/SaaS‑сервисам.
- TestOps - интеграция тестирования в CI/CD: автоматизация тестов, управление тестовыми средами, отчётность.
- FinOps (Financial Operations) - оптимизация расходов на облачные ресурсы: бюджетирование, тегирование, прогнозирование затрат.
- DataSecOps - безnопасность данных в рамках DataOps: шифрование, контроль доступа, маскирование, соответствие GDPR/152‑ФЗ и т. д.
- SRE (Site Reliability Engineering) - инженерный подход к надёжности сервисов; часто пересекается с DevOps/ITOps, но с сильным упором на SLI/SLO, error budgets и автоматизацию.
*Что общего у всех Ops
- Совместная работа
- Автоматизация как основа: минимум ручных действий, максимум повторяемых процессов.
- Непрерывность: релизы, обновления, мониторинг и исправления идут постоянно.
- Обратная связь: данные с продакшена возвращаются в планирование и разработку.
Описание курса
Курс представляет собой комплексное введение в современную экосистему *Ops-практик, охватывающее полный цикл — от методологий разработки ПО до эксплуатации и мониторинга распределённых систем в продакшене. Студенты получают системное представление о том, как проектировать, развёртывать и поддерживать надёжные, масштабируемые ИТ-сервисы.
Курс структурирован вокруг пяти ключевых блоков:
1. Основы и методологии
- *Экосистема Ops: DevOps, DevSecOps, SRE, GitOps, MLOps, DataOps, AIOps и другие специализированные направления.
- Управление ИТ-службами (ITSM/ITIL): жизненный цикл услуги, SLA, формализация процессов.
- Методологии разработки: от классических (Waterfall, PMBOK, RUP) к гибким (Agile, Scrum, Kanban, LeSS, SAFe).
- Архитектура предприятия (EA): бизнес- и ИТ-архитектура, классификация информационных систем по уровню критичности.
- Инфраструктура: экономика серверов vs облаков, модели развертывания (On-premise, IaaS, PaaS, SaaS, Serverless), TCO/ROI.
2. Виртуализация и контейнеризация
- Виртуализация: гипервизоры Type 1 / Type 2, виды виртуализации (серверы, сети, storage, GPU, VDI), сравнение с контейнеризацией.
- Внутреннее устройство Linux-контейнеров: namespaces (7 типов), cgroups (v1/v2), OverlayFS (layered filesystem, copy-on-write), veth-интерфейсы, chroot.
- Open Container Initiative (OCI): спецификации образов, рантайма и дистрибуции; инструменты —
runc,containerd,Podman,CRI-O. - Docker: создание, управление и сетевая конфигурация контейнеров.
3. Система управления исходным кодом и CI/CD
- Системы контроля версий: локальные (LVCS), централизованные (CVCS: SVN, Perforce), распределённые (DVCS: Git, Mercurial).
- Git: репозитории, ветвление, слияние, отслеживаемость изменений.
- Рабочие процессы (workflows): Gitflow (устаревший), GitHub Flow, GitLab Flow.
- Хуки Git: автоматизация на событиях репозитория.
- CI/CD: непрерывная интеграция и доставка, DevOps-пайплайн.
4. Оркестрация и распределённые системы
- Распределённые приложения: монолиты vs микросервисы, P2P, клиент-сервер, преимущества и недостатки.
- Отказоустойчивость: избыточность (Active-Active, Active-Passive), балансировка нагрузки, disaster recovery, уровни дата-центров (Uptime Institute Tier I–IV).
- Масштабируемость: вертикальное и горизонтальное масштабирование.
- CAP-теорема: согласованность, доступность, устойчивость к разделению — компромиссы при проектировании.
- Кластеры: узлы (Master/Worker), оркестраторы, сервисы, persistent volumes.
- Docker Swarm: архитектура кластера (manager/worker), сервисы, задачи, стеки; алгоритм консенсуса Raft; rolling updates, балансировка, автомасштабирование.
- Модель OSI: 7 уровней, инкапсуляция, сравнение с TCP/IP.
5. Наблюдаемость систем (Observability)
Три столпа наблюдаемости (MLT):
Метрики (Metrics)
- Инструменты: Prometheus (pull-подход), Zabbix (push-подход).
- Методологии: Google SRE (SLI/SLO: Latency, Traffic, Errors, Saturation), метод USE (Brendan Gregg), метод RED (Rate, Errors, Duration).
- Виды: автоматические, ручные, бизнес-метрики (использование фич, A/B-тестирование).
Логи (Logs)
- Инструменты: Promtail + Loki (PLG-стек), Beszel.
- Уровни: debug, info, warn, error.
- Сценарии: ошибки, аудит, отслеживание пользовательской активности, отладка.
- Типы: автоматические (фреймворки, CI/CD) и ручные (критичные бизнес-процессы).
Трассировки (Traces)
- Инструменты: OpenTelemetry (агент сбора) + Jaeger (хранение и визуализация).
- Концепции: trace ID, span ID, distributed trace context, визуализация пути запроса через микросервисы.
Визуализация
- Grafana: единая панель мониторинга для MLT-данных.
- Uptime Kuma: мониторинг доступности сервисов.
Используемые технологии и инструменты
| Категория | Инструменты |
|---|---|
| Контейнеры | Docker, Podman, containerd, runc, CRI-O |
| Стандарты | OCI (Image, Runtime, Distribution) |
| Оркестрация | Docker Swarm (Raft-консенсус) |
| SCM | Git |
| CI/CD | GitLab CI/CD, Git hooks |
| Мониторинг метрик | Prometheus, Zabbix, Grafana, Beszel, Uptime Kuma |
| Логирование | Loki, Promtail |
| Трассировка | OpenTelemetry, Jaeger |
| Сети | Модель OSI, veth, bridge, CNI |
| Linux | namespaces, cgroups, OverlayFS, chroot |
Цели курса
По завершении курса студенты смогут:
- Спроектировать ИТ-инфраструктуру предприятия с учётом методологий управления и экономики.
- Упаковать приложения в OCI-совместимые контейнеры и понимать внутреннее устройство Linux-контейнеризации.
- Настроить систему контроля версий (Git) с оптимальным рабочим процессом для команды.
- Построить CI/CD-пайплайн для автоматизации сборки и доставки.
- Организовать кластер контейнеров с отказоустойчивостью и балансировкой нагрузки.
- Внедрить практику наблюдаемости (Observability) — сбор и визуализацию метрик, логов и трассировок.
- Принимать архитектурные компромиссы на основе CAP-теоремы и требований к отказоустойчивости.
Аудитория
Курс предназначен для студентов, изучающих информационные технологии, программную инженерию, системное администрирование и все направления, связанные с разработкой и эксплуатацией современных распределённых приложений.