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