【问题标题】:How best to deploy this multi-tier app?如何最好地部署这个多层应用程序?
【发布时间】:2014-08-27 23:27:23
【问题描述】:

我们目前有一个在一台专用服务器上运行的应用程序。我想将其移至 OpenShift。它有:

  1. 用 PhP 编写的面向公众的 Web 应用程序
  2. 在 Wildfly 上运行的供管理员使用的 Java 应用程序
  3. Mysql 数据库
  4. 包含大量图像和文档的文件系统,Java 和 PhP 应用程序都必须能够访问这些图像和文档。第三方 ftp 每天向服务器发送一个数据文件,然后一个 perl 脚本将其加载到数据库和文件系统中。
  5. perl 脚本偶尔会运行 ffmpeg 来生成视频,从文件系统读取图像并将视频写入文件系统。

Openshift 是一个很好的解决方案,还是直接使用 AWS 会更好(例如,因为它们有专用的文件系统组件?)

谢谢 迈克尔戴维斯 渥太华

【问题讨论】:

    标签: openshift


    【解决方案1】:

    共享文件系统肯定是这里最大的问题。您可以通过将应用程序设置为使用 Amazon S3 或其他一些共享云文件系统来解决它,尽管相当容易。

    至于应用程序的其余部分,如果我要设置它,我会: 设置一个缩放的 PHP 应用程序,即使您将缩放设置为仅使用 1 个齿轮,这也将允许您将 MySQL 数据库放在它自己的齿轮上,甚至为其选择不同的大小,例如具有中等网络齿轮(运行 php ) 和运行 MySQL 数据库的大型设备。这也将允许您的 Wildfly 设备访问数据库,因为它将具有您帐户上的任何应用程序都可以访问的 FQDN(完全限定域名)。但是,请记住,它将使用非标准端口而不是 3306。

    然后您可以将您的 WildFly 服务器设置为您想要的任何大小,但是请记住,MySQL 连接变量不会存在,您必须手动将它们放入您的 java 应用程序中。

    至于 perl 脚本,取决于它的密集程度,您可以在它自己的任何大小的设备上运行它,并带有一些额外的存储空间,或者您可以将它与 php 或 java 应用程序共同定位为一个 cron 作业。您可以让它将文件存储在 Amazon S3 上,并在对它们执行 ffmpeg 操作时将它们下拉/上传。由于 OpenShift 也托管在 Amazon(美国东部地区)上,因此这些操作应该非常快,只要您还将 S3 存储桶放在美国东部地区即可。

    以上是我的想法,希望对你有帮助。如果您有问题,请随时提出问题。您也可以访问http://help.openshift.com 并在“联系我们”下单击“提交请求”并确保您引用了此 StackOverflow 问题,以便我知道您在说什么,您可以提出任何问题,我们可以讨论解决方案给他们。

    【讨论】:

    • 这非常有用,谢谢。我不清楚的一个部分是文件系统——我没有想到将 OpenShift 与 AWS 混合搭配,但为什么不呢?
    • 每个 OpenShift 设备都有自己的文件系统,即使它在扩展的应用程序中,它们也无法访问 OPENSHIFT_DATA_DIR 中的彼此文件或用户上传的文件。因此,让您的代码与 Amazon S3 交互将是一种解决方法。它已经有很多库,比如 Rails 的回形针。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-17
    • 2015-09-16
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2019-07-02
    相关资源
    最近更新 更多