Автоматизация развертывания и эксплуатации программного обеспечения
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 и автоматизацию.
1. Зачем существует дисциплина
Современные приложения разрабатываются и эксплуатируются в условиях высокой неопределённости: требования меняются, инфраструктура усложняется, а время простоя напрямую влияет на бизнес. Дисциплина «Автоматизация развертывания и эксплуатации ПО» учит студентов сквозному подходу к доставке ценности — от идеи до продакшена и обратно.
Курс объединяет практики CI/CD, контейнеризации, оркестрации, наблюдаемости и инженерной культуры, которые вместе обеспечивают:
- Быструю поставку рабочих изменений;
- Надёжную эксплуатацию с измеримыми показателями качества;
- Безопасную разработку с встроенной проверкой на каждом этапе.
2. Сквозной результат курса
По завершении курса студент способен:
- Спроектировать инфраструктуру для распределённого приложения с учётом RTO/RPO, SLI/SLO и экономики ресурсов.
- Доказать воспроизводимость OCI-контейнера: собрать образ, зафиксировать Dockerfile и верифицировать его детерминизм.
- Диагностировать неуспешный deployment по метрикам, логам и трейсам, сформулировав гипотезу о причине сбоя.
- Сформулировать SLI/SLO для сервиса и рассчитать error budget.
- Построить CI/CD-пайплайн, автоматизирующий сборку, тестирование и доставку в staging/production.
- Развернуть кластер с балансировкой, отказоустойчивостью и GitOps-управлением состоянием.
3. Обязательное ядро
Ядро курса — это набор навыков, без которого невозможен инженерный ввод в эксплуатацию современных систем:
| Модуль | Ключевые навыки |
|---|---|
| Жизненный цикл ПО и инженерная культура | SDLC, iterative/incremental development, feedback loops, DORA metrics, toil automation |
| Управление ИТ-услугами | Incident vs problem, change enablement, SLA/SLO/error budget, continual improvement |
| Контейнеризация | OCI, namespaces, cgroups, Dockerfile, reproducibility, Podman |
| Системы контроля версий и CI/CD | Git, branching strategies, Git hooks, CI/CD pipelines, automated testing |
| Оркестрация и кластеры | Консенсус (Raft), балансировка, service discovery, Kubernetes basics, ArgoCD |
| Наблюдаемость (Observability) | Три столпа: метрики (Prometheus), логи (Loki/Promtail), трейсы (OpenTelemetry/Jaeger), SLI/SLO |
4. Факультативные треки
Эти темы расширяют ядро, но не являются обязательными для базового результата:
- Platform Engineering: внутренняя developer-платформа, self-service порталы, Golden Path.
- FinOps: unit-экономика инфраструктуры, cost allocation tags, idle resources, reservations, cost per request.
- DevSecOps: SAST/DAST, управление секретами, policy-as-code, supply-chain security.
- GitOps: ArgoCD/Flux, declarative infrastructure, drift detection.
- Распределённые сети: CIDR, DHCP, DNS, TLS/PKI, service mesh (Istio).
5. Prerequisites
- Базовое понимание работы ОС Linux (файловая система, процессы, сети);
- Умение работать в командной строке;
- Основы программирования (любой язык).
6. Формат лабораторных и доказательства сдачи
Каждая лабораторная работа направлена на формирование конкретного навыка из обязательного ядра. Студент сдает лабораторную, предоставляя:
- Артефакт (Dockerfile, CI/CD-конфиг, Kubernetes-манифест, пайплайн);
- Доказательство (скриншоты, логи, результаты тестов, ссылки на репозиторий);
- Рефлексию (краткий анализ: что пошло не так, как были измерены результаты).