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: гибкость в разработке теряет смысл, если выпуск новой версии занимает месяц.