Представьте, что вы собираетесь управлять несколькими серверами с рядом различных сервисов, которые используются рядом людей. Теперь скажите, что вы хотите перенастроить или заменить какое-либо программное обеспечение на одном из этих серверов. Очевидно, что вы не хотите работать на серверах, которые находятся в производстве.Как вы применяете методы разработки, такие как контроль версий, тестирование и непрерывная интеграция/развертывание в системное администрирование?
Если бы это было изменение кода, как разработчик, я бы внес изменения на свою локальную машину разработки, протестировал ее локально и передал изменения в систему управления версиями. Затем изменения могут быть развернуты в промежуточной среде, затем протестированы и, наконец, развернуты в производственной среде. Мне также было бы легко откинуться назад, если это необходимо.
Как правило, как конкретно это достигается при администрировании системы?
(Первое, что приходит в голову, это использовать виртуальные машины и поместить изображения виртуальной машины в управление версиями, но я уверен, что есть много литературы и умных решений, о которых я не знаю.)