我正在评估使用 OpenShift Origin(或者可能是企业)来评估一个包含许多组件的项目,但是我在找出拆分组件和保持可扩展性的最佳解决方案时遇到了一些问题。
组件是
- db (PostgreSQL):使用了很多,但写的不多,所以我可以使用 1 次写入和多次读取来扩展它。
- www(静态文件):由 nginx 或类似文件提供服务
- api (django): www 应用程序可以与之交谈。需要与数据库通信并缓存。
- auth (NodeJS):社交认证的认证前端,需要与缓存联系。
- sse (django): DataPush 使用 html5,这个网络服务器必须运行 nginx/gevent 或类似的。这个需要跟MQ讲。
- MQ(RabbitMQ):用于运行任务。
- 缓存(redis):api、sse 和 auth 与之对话。
总体来说很复杂,但如果没有 OpenShift,现在一切都很好。
看看人们如何在 Openshift 中运行 Django 和 Postgres,它通常使用(来自另一个示例)类似的东西来完成rhc app create --scaling $APP_NAME python-2.7 mongodb-2.4 postgresql-8.4
,但这到底有什么作用?据我了解,在这种情况下,您最终会在同一台机器上运行 python、mongodb 和 postgres。
在这种情况下,最好的解决方案是什么?
- 在 1 个应用程序上运行整个堆栈。因此,从技术上讲,它将运行每台物理服务器的所有内容。
- 为主要组件创建 1 个可扩展应用程序,并将 api db 设置指向 db-mydom.example.com?
- 仅将 OpenShift 用于 www 和 api,并在其余部分设置旧式服务器?
- 完全不同的东西?