我正在建立一个Drupal站点,并希望使其在Openshift上扩展(青铜计划,Small.highcpu)。 这方面的两个问题:
a) 后台任务?
如果有人能更详细地解释第 3 点,那就太好了:
从 https://github.com/openshift/drupal-quickstart/blob/master/README.md:
由于您的任何应用程序代码都不会签入 Git 并且完全位于您的数据目录中,因此如果此应用程序设置为可扩展,则新齿轮将具有空数据目录,并且无法正确处理请求。如果您想使应用具有可扩展性,则需要:
- 将 php/* 的内容检查到你的 Git 存储库中(在 php/* 目录中)
- 仅通过 Drush 从头齿轮安装新模块,然后将这些更改提交到 Git 存储库
- 使用后台任务将文件内容从一个齿轮复制到另一个齿轮
所有用于部署和配置 Drupal 的脚本都位于构建和部署钩子中。
b) 附加文件系统:
海报在这里说需要一个更持久的文件系统(例如 S3)来扩展: https://groups.drupal.org/node/297403,对于高峰时段每秒大约 30-50 页的网站来说,这真的有必要吗? 添加 S3 有什么好处?
在可扩展的 OpenShift 应用程序中,您希望所有齿轮的行为都相同。在Drupal的情况下,每个齿轮都需要有核心的Drupal文件,模块和任何额外的数据,由设备提供(图像等)。
该指南建议您检查核心PHP文件和额外的模块(使用Drush后)到git中,以便每个齿轮都有它们。
在这里,后台任务和 S3 是解决同一问题的两种方法,以确保每个齿轮提供相同的数据。
a. 后台任务
实现"将文件内容从一个齿轮复制到另一个齿轮的后台任务"的一种方法是在头齿轮上使用 OpenShift cron,该齿轮将数据文件定期scp
到剩余的齿轮。
b. 附加文件系统
让齿轮提供相同内容的另一种方法是让所有齿轮都指向外部存储 - S3。因此,如果您使用 S3,则不需要后台作业即可在齿轮之间复制数据。如果提供 30-50 页的瓶颈是读取数据的 I/O,那么 S3 肯定会帮助将其卸载到其服务器。