Process & Methodology

DevOps

Практика, объединяющая разработку и эксплуатацию в один процесс, чтобы код попадал в production быстро, часто и предсказуемо.

Что такое DevOps

DevOps (от Development + Operations) — подход, при котором разработка и эксплуатация перестают быть двумя разными отделами с разными целями и работают как одна команда с общей ответственностью за работающий продукт. Название описывает не должность и не инструмент, а способ организации работы.

Проблема, которую DevOps решает: разработчики премируются за скорость выпуска фич, админы — за стабильность. Цели противоположны, и между ними вырастает стена: код «перебрасывается через забор» в эксплуатацию, а при аварии стороны спорят, чья вина. DevOps убирает стену — та же команда, которая пишет сервис, катит его в production и дежурит по нему.

Практический смысл — в скорости и предсказуемости релизов. Вместо релиза раз в квартал силами отдельного отдела — десятки автоматических деплоев в неделю, каждый маленький и легко откатываемый.

DevOps-инженер: кто это и что делает

Строго говоря, «DevOps-инженер» — противоречие в терминах: нельзя нанять человека на культуру. На практике под этим на рынке понимают инженера, который строит и обслуживает инфраструктуру доставки кода:

  • собирает и поддерживает CI/CD-пайплайны — сборку, тесты, деплой;
  • описывает инфраструктуру кодом (IaC) через Terraform, Ansible;
  • упаковывает сервисы в контейнеры и оркестрирует их в Kubernetes;
  • настраивает мониторинг, логи и алерты;
  • отвечает за SLA и разбор инцидентов.

Типичный стек: Linux, Git, Docker, Kubernetes, Terraform, Prometheus, Bash/Python, один из облачных провайдеров.

SRE: что это такое

SRE (Site Reliability Engineering, инженерия надёжности сайтов) — практика Google, которую часто называют «конкретной реализацией DevOps». Если DevOps говорит «что» (уберите барьер между dev и ops), то SRE говорит «как», причём в числах.

Ключевые понятия SRE:

  • SLI (Service Level Indicator) — измеряемый показатель: доля успешных запросов, latency 99-го перцентиля.
  • SLO (Service Level Objective) — внутренняя цель по SLI: «99.9% запросов быстрее 300 мс».
  • Error budget — бюджет ошибок, разрешённая доля отказов. При SLO 99.9% бюджет — 0.1% времени. Пока бюджет не израсходован, команда катит фичи; кончился — релизы замораживаются, и силы идут на надёжность.
  • Toil — ручная рутина, которую можно автоматизировать. SRE держит её долю ниже ~50% рабочего времени.
DevOps SRE
Что это Культура и подход Инженерная дисциплина с метриками
Фокус Скорость и связность процесса Надёжность в измеримых числах
Главный артефакт Пайплайн, IaC SLO и error budget
Кто придумал Сообщество, ~2009 Google, ~2003

Это не конкуренты: SRE — способ реализовать DevOps там, где надёжность нужно защищать цифрами, а не намерениями.

Практики DevOps

  • CI (непрерывная интеграция) — каждый коммит автоматически собирается и прогоняется через тесты; ветки не живут неделями.
  • CD (непрерывная доставка) — прошедшая тесты сборка автоматически едет на стенд и дальше в production через стратегии деплоя (blue-green, canary).
  • Infrastructure as Code — серверы и сети описаны в репозитории, а не настроены руками. Инфраструктура воспроизводима, изменения проходят code review.
  • Мониторинг и observability — метрики, логи, трейсинг. Про поломку узнают из алерта, а не из письма клиента.
  • Postmortem без обвинений — после инцидента разбирают процесс, а не ищут виноватого. Иначе люди перестают сообщать о проблемах.

Метрики DORA

Зрелость DevOps принято измерять четырьмя метриками исследования DORA:

Метрика Что показывает
Deployment Frequency Как часто выкатывают в production
Lead Time for Changes От коммита до production
Change Failure Rate Доля деплоев, приведших к сбою
MTTR (Time to Restore) Как быстро восстанавливаются после сбоя

Смысл набора — в балансе: первые две про скорость, вторые две про стабильность. Улучшать скорость за счёт роста аварийности не считается прогрессом.

Связанные термины

Готовы запустить GPU-задачу?

Запустить GPU-сервер