0

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

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

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

4

3 回答 3

0

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

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

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

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

于 2009-07-13T01:23:54.963 回答
0

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

于 2009-07-13T01:39:47.800 回答
0

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

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

于 2009-07-13T03:13:20.217 回答