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