Перейти к основному содержимому

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

DevOps - это кто?

img.png

  • 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-консенсус)
SCMGit
CI/CDGitLab CI/CD, Git hooks
Мониторинг метрикPrometheus, Zabbix, Grafana, Beszel, Uptime Kuma
ЛогированиеLoki, Promtail
ТрассировкаOpenTelemetry, Jaeger
СетиМодель OSI, veth, bridge, CNI
Linuxnamespaces, cgroups, OverlayFS, chroot

Цели курса

По завершении курса студенты смогут:

  1. Спроектировать ИТ-инфраструктуру предприятия с учётом методологий управления и экономики.
  2. Упаковать приложения в OCI-совместимые контейнеры и понимать внутреннее устройство Linux-контейнеризации.
  3. Настроить систему контроля версий (Git) с оптимальным рабочим процессом для команды.
  4. Построить CI/CD-пайплайн для автоматизации сборки и доставки.
  5. Организовать кластер контейнеров с отказоустойчивостью и балансировкой нагрузки.
  6. Внедрить практику наблюдаемости (Observability) — сбор и визуализацию метрик, логов и трассировок.
  7. Принимать архитектурные компромиссы на основе CAP-теоремы и требований к отказоустойчивости.

Аудитория

Курс предназначен для студентов, изучающих информационные технологии, программную инженерию, системное администрирование и все направления, связанные с разработкой и эксплуатацией современных распределённых приложений.