Как развернуть и запустить приложение php, которое требует частых обновлений на облачном провайдере
Я работаю над созданием приложения php - приложение будет иметь два типа обновлений--
(a) Само приложение потребует периодических обновлений - пользователь, который администрирует приложение, будет уведомлен об обновлениях, и он может инициализировать обновление.
(b) Конечный пользователь может загружать свои собственные файлы (например, пользовательские файлы css/js для тем), чтобы его собственный дизайн использовался для визуализации приложения php. Пользователь также может добавить свой собственный текстовый контент в приложение
Теперь я хочу развернуть это приложение на облачном провайдере - предпочтительно с использованием PaaS, например Amazon Elastic beanstalk, PHP Fog или Red Hat Open Shift- меня смущает следующее:
(1) Из того, что я понимаю, чтобы развернуть начальную версию приложения php, мне сначала нужно создать локальную установку приложения, правильно ее настроить, а затем развернуть эту настроенную версию в облачном провайдере. Но с ссылкой на пункт 1 выше, я должен инициализировать каждое обновление в моей локальной установке, а затем загрузить новую версию на платформу PaaS?
(2) Теперь, ссылаясь на изменения, внесенные пользователем в версию приложения, которая уже работает в облаке, как я могу гарантировать, что его изменения были внесены в приложение (любые ли изменения, которые он сделал, которые хранятся в база данных или те файлы, которые он загрузил) остаются нетронутыми? Если я просто загружу версию, которая была у меня локально (которую я обновлял с помощью периодических обновлений), то я потеряю изменения файлов / базы данных, сделанные работником в облачной версии предыдущей версии? Как сохранить эти файлы + изменения базы данных без изменений?
Одна вещь, о которой я могу подумать, - это использовать базу данных, которую я хочу использовать для облачной версии, даже для локальной версии приложения - так, чтобы даже когда пользователь вносил изменения (я имею в виду изменения, внесенные в база данных) - тогда даже когда я загружаю свою новую версию в облако - изменения, внесенные в базу данных, остаются неизменными... И теперь мне остается только думать о файлах, загруженных пользователем - даже если я прав в этом как мне сохранить эти файлы? И если я не прав, как мне сохранить изменения, сделанные конечным пользователем, как в базе данных, так и в файлах? Как мне сделать это и сделать обновления для моего php-приложения.
1 ответ
Я знаю, что это старый вопрос, но я сделаю несколько предложений:
1.) Да, вам нужно будет запускать все обновления с локальной рабочей станции с большей вероятностью, используя git, в зависимости от того, какой PaaS вы выберете.
2.) Если у вас есть пользователи, которые вносят изменения в приложение (код), вам нужно будет предоставить им доступ также для использования git или любого другого vcs, который вы используете. Или вам нужно просто использовать SFTP или SCP для загрузки файлов, и все работают на основе этой концепции.
Предоставление более конкретной информации о том, какой именно тип приложения вы говорите, может помочь. Я не уверен, говорите ли вы о том, чтобы ваши пользователи изменили код, который запускает приложения, или чтобы они обновляли контент, например, с помощью drupal / wordpress.