2014-01-08 26 views
1

我正试图设计一个将在云上运行的应用程序。该应用程序将通过API提供服务。我希望它能够独立于提供商,即在不改变应用程序的情况下在任何云提供商上工作。如何设计应用程序以在不同的云提供商上运行?

应用程序将创建/管理虚拟机实例并执行一些计算(在IaaS级别),这通常通过提供程序的特定API完成。但作为一项功能,我希望应用程序可以移植到不同的云提供商,而无需执行实施。

我将如何设计这样的抽象? 我想为每个供应商创建适配器,但我怀疑这是做这件事的最佳方式。

P.S .:我发现了一些多云库,如jCloud,它们提供了一些适用于多个提供者的功能。

回答

2

JClould肯定会帮助您独立设计您的应用程序,例如您计划使用的文件系统。除了使用Amazon S3来存储应用程序数据之外,您可以使用其他提供程序,而无需在应用程序端进行大量修改。也许只是你的证书和你将要使用的新服务。

但是,因为您计划使用云。我认为在应用程序设计中使用一些云模式也很重要。例如:

  • 对于云上的多租户应用程序(非永久性文件系统),文件系统是不确定的。
  • 单身
  • 延迟

您对此有这些slides关于云模式的一些信息。我希望它能帮助你更好地理解你应该设计你的应用程序的方式。

相关问题