DevOps

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

DevOps (от Development и Operations — разработка и эксплуатация) — культура и набор практик, которые объединяют создание программ и их эксплуатацию в единый процесс. Раньше разработчики писали код и «передавали через стену» администраторам, а те отвечали за его работу в бою. Цели расходились: одни хотели выпускать чаще, другие — меньше менять, чтобы ничего не сломалось. DevOps делает команду общей ответственной за весь путь: от идеи до работающей у пользователей системы. Термин появился в 2009 году вместе с первыми конференциями DevOpsDays.

Основные практики

  • CI/CD — каждое изменение автоматически собирается, тестируется и доставляется.
  • Инфраструктура как код — серверы, сети и окружения описываются в файлах (Terraform) и хранятся в Git вместе с кодом.
  • Контейнеры и оркестрация — Docker и Kubernetes дают одинаковые окружения и выкатку без простоя.
  • Мониторинг и наблюдаемость — метрики (Prometheus), панели (Grafana), журналы и трассировка; команда узнает о проблеме раньше пользователей.
  • Маленькие частые изменения вместо редких больших выпусков: меньше риск, проще найти причину и откатить.
  • Разбор инцидентов без поиска виноватых — чтобы понять причину и изменить систему, а не наказать человека.

Как измерить результат

Исследовательская программа DORA выделила четыре ключевые метрики эффективности поставки:

  • частота выпусков;
  • время от изменения кода до его работы у пользователей;
  • доля выпусков, которые привели к сбою;
  • время восстановления после сбоя.

Исследования показывают, что лучшие команды выигрывают по всем четырем сразу: скорость и надежность не противоречат друг другу, если процесс автоматизирован.

DevOps-инженер

На практике DevOps стал и названием профессии: инженер, который строит конвейеры доставки, инфраструктуру, мониторинг и помогает командам ими пользоваться. Но если вся «культура DevOps» сводится к одному человеку, к которому разработчики носят задачи «выкатить» и «починить сервер», — это та же стена, только с новым названием. Цель — чтобы команды сами уверенно выпускали и сопровождали свои сервисы. Близкий подход Google называют SRE (Site Reliability Engineering) — инженерия надежности с упором на измеримые цели вроде SLA.

С чего начинают

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