Год назад у нас в компании еще никто специально не занимался серверами и их конфигурацией. Был целый спектр проблем, обычных для такого случая: * ручная выкатка новых версий на продакшн занимала несколько часов; * большая часть времени программистов уходила на настройку своих окружений разработки и синхронизацию их между собой; * везде на тестовых серверах стояли неизвестно какие версии, и из-за этого куча времени уходила на баги, которые могли быть уже исправлены несколько дней назад; * неправильная конфигурация каких-то компонентов приложения приводила к неработоспособности приложения целиком. Чтобы исправить положение мы сделали следующее: * завернули всю конфигурацию в Chef; * для управления конфигами приложений начали использовать augeas (у нас большие и часто меняющиеся конфиги; * теперь ежедневно автоматически собирается образ сервера со всеми установленными и настроенными приложениями последней версии, из которого разработчики при помощи Vagrant могут создавать себе сервера по мере необходимости, не отвлекаясь на установку, обновление и настройку; * Ежедневно Jenkins из того же образа Vagrant-ом поднимает сервера и прогоняет на них тесты. Теперь наши разработчики спокойно спят ночами, вместо того, чтобы спешно фиксить баги. Процесс разработки стал более предсказуемым. Скорость исправления багов возросла. Все счастливы.