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) | Как быстро восстанавливаются после сбоя |
Смысл набора — в балансе: первые две про скорость, вторые две про стабильность. Улучшать скорость за счёт роста аварийности не считается прогрессом.
Связанные термины
- CI/CD — техническая основа DevOps-практик
- GitOps / IaC — инфраструктура как код
- Kubernetes — оркестрация контейнеров в production
- SLA и отказоустойчивость — цели по надёжности, которые защищает SRE
- Уведомления и алерты — как команда узнаёт об инцидентах
- Agile / процессы разработки — методологии, из которых вырос DevOps
Готовы запустить GPU-задачу?
Запустить GPU-сервер