Автоматизированная интеграция и промежуточные среды для приложений на основе LAMP
Что было бы хорошим инструментом для выполнения автоматизированного развертывания приложений на основе LAMP (MySQL, PHP, Zend Framework) в интеграционных и промежуточных средах? Я специально ищу инструменты, которые обрабатывают развертывание на удаленных хостах. Я предполагаю, что для этого можно было бы использовать такие инструменты, как phing и ant, но мне было интересно, есть ли что-то лучшее для этого случая.
2 answers
Для интеграции, особенно для непрерывной интеграции, мне нравится phpUnderControl ( который является инструментом для PHP-проектов, но сам основан на CruiseControl, который хорошо известен в мире JAVA): он имеет дело с:
- извлечение последней редакции из SVN
- запуск автоматических тестов (PHPUnit)
- php_кодесниффер
- Генерация документации PHP (phpDocumentor)
- и предоставляет приятный интерфейс для пользователей, чтобы увидеть результаты каждой сборки.
И, для начала, вот статья, в которой объясняется, как настроить phpUnderControl: Начало работы с phpUnderControl
( Каждый раз, когда я или некоторые коллеги устанавливали phpuc, мы делали почти так, как описано в этой статье, насколько я помню)
Для постановки я обычно выполняю несколько задач, чтобы построить tar.gz архив, который я время от времени развертываю на промежуточном сервере, используя другую задачу phing для удаления архивируйте и создайте необходимые символические ссылки (или что-то в этом роде).
Идея заключается в том, что непрерывная интеграция происходит постоянно и должна быть полностью автоматической, в то время как развертывание на промежуточной стадии выполняется только один раз в некоторое время (например, раз в неделю) и может выполняться полуавтоматически.
Настройте сервер сборки, для этого отлично подойдет что-то вроде CruiseControl, и при необходимости запустите собственные сценарии Nant или используйте задачи Exec для выполнения развертывания.
Для таких вещей, как конкретные развертывания, каждое из которых имеет свои проблемы с конфигурацией и сложности, вряд ли когда-либо будет что-то готовое.
Взгляните на это таким образом: запуск собственных сценариев и пакетных файлов определенно означает, что вы знаете все об этих шагах и можете настраивать и изменять их в любом случае, вам нравится, а не какая-то волшебная волшебная пыль, и когда что-то ломается, вы понятия не имеете, где это исправить.