Для моего веб-приложения, работающего на LAMP, мне нужно иметь возможность развертывать миграции базы данных и изменения кода на нескольких серверах, а затем иметь возможность тестировать развертывание, все это автоматически выполняется сценариями.
В настоящее время я разрываюсь между использованием непосредственно моего инструмента сборки (Phing) с некоторыми специальными задачами развертывания / тестирования, сценариями оболочки или языком сценариев, таким как Ruby или Python.
Проблема в том, что я считаю, что инструмент сборки следует использовать для сборки, а не для развертывания. Я также считаю, что сценарии оболочки трудно поддерживать и они не очень удобочитаемы.
Есть ли у вас какие-нибудь полезные советы по этому поводу?






Что я использовал?
Однако не похоже, чтобы что-либо из этого было приемлемым для вас, учитывая ваше утверждение: «Я также чувствую, что сценарии оболочки трудно поддерживать и не очень удобочитаемы».
Многим людям здесь, в stackoverflow, кажется, действительно нравится Capistrano.
Спасибо за предложение, проверю, как он интегрируется в среду PHP.
Для проектов PHP лучше всего подходит Phing. Развертывание, безусловно, является одним из предполагаемых способов его использования, учитывая, что в PHP нет «настоящего» процесса сборки, поскольку скрипты не компилируются.
С официального сайта:
If you find yourself writing custom scripts to handle the packaging, deploying, or testing of your applications, then we suggest looking at the Phing framework.
Phing может делать все, что могут делать сценарии shell / python / ruby, и может быть расширен в PHP, что является его основным преимуществом для разработчиков PHP. Зачем вам использовать ruby / python, если вы разработчик PHP?
На самом деле, я готов использовать лучший инструмент для работы, а не использовать PHP везде только потому, что я использую его для своего приложения. Тем не менее, это может быть удобно для некоторых разработчиков, которые знают только PHP. Я покопаюсь в Phing подробнее, чтобы узнать, соответствует ли он моим потребностям.
Я использую его в основном как инструмент развертывания, и он отлично работает. Обновления SVN, права доступа к каталогам, средство запуска тестов, что угодно, это соответствует всем требованиям :)
Чтобы развернуть веб-приложения, PHP или другие, в один клик вы можете использовать фредистрано.
Расмус Лердорф (создатель PHP) выпустил инструмент развертывания под названием WePloy.
Персональный скрипт, использующий Экспорт svn + rsync
На самом деле я планирую использовать хуки rsync и svn, но с как можно меньшим количеством сценариев оболочки. :)