Мы разрабатываем программное обеспечение для использования в нашем приложении SaaS, наша производственная среда имеет большое количество серверов, и их программная среда должна быть абсолютно предсказуемой; мы не можем иметь НИЧЕГО установленного или отсутствующего на наших машинах для разработки.
Более того, нашему приложению требуется несколько различных типов серверов для правильной работы (по крайней мере, 7 в прошлый раз, когда я считал); в основном они не могут быть установлены на одной (виртуальной) машине - по крайней мере, не нарушая требования «то же программное обеспечение, что и на производстве».
Чтобы иметь согласованную среду, необходимо использовать виртуальные машины. Я не знаю, как кто-нибудь обходится без них.
Снимки и откаты тоже хороши, но я использую их только изредка (очень полезно при тестировании установки / обновления).
Предположим, вы разрабатываете новую версию своего программного обеспечения и проверяете, что обновление с предыдущей версии работает правильно ... сколько времени занимает цикл тестирования без возможности отката коробки? Нужно ли переустанавливать ОС тогда на старую версию? Можете ли вы гарантировать, что удаление действительно удаляет все?