Зачем появился DevOps: типовые проблемы команд
Представь интернет-магазин. Разработчики закончили новую оплату, тестировщики проверили её на тестовом сервере, а инженер эксплуатации получил архив и просьбу «сегодня выложить». В архиве нет версии, инструкция требует вручную поправить настройки, а о новой зависимости никто не предупредил.
После выкладки часть платежей перестаёт проходить. Разработчики говорят, что на тестовом сервере всё работало. Эксплуатация отвечает, что получила неполную инструкцию. Пользователю от этого не легче: он всё ещё не может оплатить заказ.
Это проблема не только кода или сервера. Между участниками потерялись сведения о том, что меняется, как это проверить и кто поможет при сбое.
От передачи задачи к общему результату
DevOps — подход к совместной работе разработки и эксплуатации. Его цель — наладить путь изменения от идеи до работающего сервиса и последующего сопровождения. Команда отвечает не только за передачу своей части работы, но и за результат для пользователя.
Это не означает, что все должны уметь всё или иметь одинаковые доступы. Разработчик, тестировщик, инженер эксплуатации и специалист по безопасности сохраняют свои компетенции. Но они заранее обсуждают риски, используют общие сведения о системе и знают, к кому обратиться.
Например, до выпуска новой оплаты команда договаривается:
- как определить версию приложения;
- какие проверки подтвердят, что платёж работает;
- где появятся ошибки после выкладки;
- кто принимает решение об откате;
- как вернуть предыдущую версию и что делать с уже записанными данными.
Такой разговор полезен ещё до выбора инструментов.
Почему команды застревают на границах
У разработки может быть цель «быстрее закончить функции», а у эксплуатации — «не допустить изменений, которые сломают сервис». Если эти цели оцениваются раздельно, возникает конфликт: одна сторона передаёт больше релизов, другая увеличивает число согласований.
Добавление нового отдела с названием DevOps не решает этот конфликт автоматически. Если теперь все заявки на выкладку идут через него, просто появилась ещё одна очередь.
Совместная работа начинается с понятных договорённостей. Что считается готовым изменением? Какие проверки обязательны? Кто поддерживает приложение после релиза? Какие действия можно выполнить самостоятельно, а какие требуют согласования?
Три практических ориентира
В материалах о DevOps часто встречаются «три пути». Их удобно понимать так:
- Улучшать весь путь изменения. Быстрая сборка мало помогает, если после неё релиз неделю ждёт согласования.
- Быстрее получать обратную связь. Ошибку лучше обнаружить во время проверки изменения, чем по жалобам пользователей.
- Учиться на результатах. После сбоя стоит менять условия, которые к нему привели, а не ограничиваться просьбой «быть внимательнее».
Обратная связь нужна в обе стороны. Разработчикам важно знать, как приложение ведёт себя под нагрузкой. Эксплуатации — понимать, какие изменения планируются и как их безопасно обслуживать.
Что меняется в примере с оплатой
Команда сохраняет код и настройки в Git, связывает сборку с версией, автоматизирует повторяемые проверки и выкладку. После выпуска смотрит не только на запущенный процесс, но и на успешность платежей.
Если произошёл сбой, сначала восстанавливает обслуживание, затем разбирает факты: что изменилось, какие сигналы были доступны и почему проверка не заметила проблему. У такого разбора должны быть конкретные последующие действия.
Ни Git, ни автоматизация по отдельности не гарантируют успех. Они полезны, когда помогают участникам работать с общей, проверяемой информацией.
С чего начать
Выбери один недавний релиз. Найди ручной шаг, длительное ожидание и важное знание, которое есть только у одного человека. Для первого улучшения достаточно одного такого участка. В следующей главе разберём, какие практики подходят к разным проблемам.
