Каждое более-менее сложное приложение используется как минимум в двух режимах: live (production, «боевой») — основной, «производственный» режим и work (development) — режим разработки приложения. Под катом — сравнение особенностей развертывания Magento-приложений для этих двух режимов.
Есть разные способы развернуть php-приложение (в общем) и Magento-приложение (в менее общем). В нашей компании для развертывания приложений используется PHP Composer и shell-скрипты. Все нижесказанное в полной мере относится именно к данному способу развертывания, к другим способам относится в менее полной мере или вовсе не относится.
Примеры модулей:
Дескриптор развертывания Composer-приложения (./live/composer.json и ./work/composer.json):
Shell-скрипты для развертывания Magento-приложения (live/cfg/bin/deploy/post_install.sh и work/cfg/bin/deploy/post_install.sh):
Введение
Есть разные способы развернуть php-приложение (в общем) и Magento-приложение (в менее общем). В нашей компании для развертывания приложений используется PHP Composer и shell-скрипты. Все нижесказанное в полной мере относится именно к данному способу развертывания, к другим способам относится в менее полной мере или вовсе не относится.
Примеры модулей:
Сравнение целей
Режим разработки
- Приоритетом является удобство разработки и тестирования;
- Код разрабатываемых модулей должен находиться под контролем версий;
- Необходимо время от времени запускать тесты;
- Иногда возникает потребность в клонировании данных с live-версии (для анализа возникших проблем, например);
Производственный режим
- Приоритетом является производительность приложения и безопасность его использования;
- Отсутствие лишнего кода (вспомогательные библиотеки, например phpunit);
- Использование стабильных/определенных версий внешних библиотек;
composer.json
Дескриптор развертывания Composer-приложения (./live/composer.json и ./work/composer.json):
live | work |
---|---|
Секция require-dev отсутствует. |
Секция require-dev содержит модули, необходимые для разработки (тестирование и т.п.).
|
Стратегия развертывания в секция extra предусматривает копирование для всех модулей приложения без исключений.
|
Стратегия развертывания в секция extra предусматривает встраивание в приложение разрабатываемых модулей при помощи символических ссылок.
|
post_install.sh
Shell-скрипты для развертывания Magento-приложения (live/cfg/bin/deploy/post_install.sh и work/cfg/bin/deploy/post_install.sh):
live | work |
---|---|
Отсутствуют настройки, относящиеся к развертыванию приложения в среде Travis CI. |
Настройки, относящиеся к развертыванию приложения в среде Travis CI:
|
Не допускается пустой пароль для доступа к базе данных. |
Возможен пустой пароль для доступа к базе данных (например, для Travis CI); в данном случае в файле конфигурации переменных развертывания (work/templates.json) указывается ключевое значение «skip_password»:
|
Инсталляционный скрипт не должен выполняться, если уже есть развернутый экземпляр приложения:
|
Возможен пустой пароль… |