【问题标题】:Best practices in cloud computing云计算的最佳实践
【发布时间】:2009-07-15 05:41:30
【问题描述】:

有人知道在云中实施应用程序时应遵循的最佳实践吗?

我想构建一个独立于云的应用程序。因此,DAC 应该能够通过更改配置来对抗 S3/AppEngine/Azure。是否有任何框架或最佳模式可以遵循,以便代码独立于云提供商。

编辑:我想了解我们如何抽象各种组件,例如 DAC/会话管理等,以便将来(当云提供商开始支持其他语言时)我们能够从一个供应商转移到另一个供应商.据我了解,我们需要使用 AppEngine 的模型而不是 Django 模型和 App 引擎的表单而不是 Django。这些往往会通过提供商锁定到应用程序。有什么办法可以避免这样做吗?

【问题讨论】:

    标签: design-patterns cloud


    【解决方案1】:

    目前,我认为您仅通过更改配置就能够在这 3 个云之间移动应用程序的目标是不可行的。您可能很难编写可以在 appengine(python 或 java)上运行并在 ASP.net 上运行的高效代码。 (除非有人让 django 在 azure 上运行,这太棒了)

    您可能有机会让一个代码库在 3 个中的 2 个上运行 - appengine 和 EC2,或者 Azure 和 EC2。在所有 3 种服务中,亚马逊的 EC2 是最低级别的服务,因此最灵活(它还需要您进行更多管理才能运行)。你可以运行一个带有 asp.net 和 Sql server 的 windows box 来匹配你的天蓝色环境,或者你可以运行一个 java 堆栈来近似你的 appengine 环境。

    【讨论】:

      【解决方案2】:

      在我看来,不同的产品之间没有太多的共同点。 (比如你提到的那3个....)

      • S3 更像是一种机器映像类型 解决方案,认为 ESX 服务器在 云,所以您的应用程序刚刚部署 到机器映像的一个实例, Linux 或 Windows。
      • AppEngine 是一个 托管应用程序环境 Python 或 Java 应用程序(Java 支持 最近添加)
      • Azure(计算)更类似 到托管的 ASP.NET Web 应用程序 一堆附加服务 (消息传递、blob 存储等)

      因此,尽管存在一些共性,但我认为大多数这些产品之间的应用迁移并不是那么简单。不过我也不认为这是不可能的。

      编辑:其实我在撒谎,S3 不是机器映像解决方案,我将它与 EC2 混淆了。 S3 是一个与托管应用程序无关的数据存储解决方案。 (除了可能是托管应用的存储解决方案)。

      【讨论】:

        【解决方案3】:

        AppEngine 实现了 J2EE 容器规范以及 JDO 和 JPA 以进行数据访问。因此,如果您使用 Java,您可以非常轻松地将 J2EE 应用程序移入或移出 AppEngine。使用 EC2,您必须自己管理服务器,这意味着您将安装和配置自己的 J2EE 服务器,如 JBoss。您还必须处理集群和扩展。 AppEngine 为您完成所有这些工作。 Azure 仅适用于 .NET。

        【讨论】:

        • 我不确定将随机 J2EE 应用程序移动到 appengine 是否“非常容易”。应用引擎之上的 JDO 与 SQL 数据库之上的 JDO 非常不同。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-06
        • 2017-05-11
        • 2012-03-03
        • 2017-04-23
        • 2017-07-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多