您在云计算设计中遇到了哪些架构问题?

时间:2010-08-06 09:47:35

标签: design-patterns architecture cloud implementation

当您决定部署云设置时,您遇到的架构/实施问题是什么?您是如何解决这些问题的?

一些例子包括:

  • (架构)设计模式,当您计划将现有应用程序移动到云中时
  • 应该优先考虑哪些非功能性要求?
  • 你如何克服云开销? (因为虚拟化 - 比如资源计量等)

1 个答案:

答案 0 :(得分:0)

我遇到的最大问题是当地的后备。在典型的云场景中,您将曾经存在于传统数据存储(数据库,文件系统等)中的资源转移到API背后的某些内容,而这些资源无法在本地轻松复制。对于我们的应用程序,我们将一些典型的队列从MySQL移到Amazon's SQS。问题:

  1. 目前,亚马逊每10,000次SQS请求收费0.01美元,这笔费用似乎非常小,但在本地开发时(或者对于您的测试服务器,假设您有一个单独的开发),绝对没有理由付费。

  2. 如果您没有本地队列回退,则每个开发/测试环境需要一个单独的队列。你真的不希望来自不同队列的消息混淆起来。

  3. 没有一种简单的方法可以为我们的环境本地模拟SQS(我知道)。

  4. 在架构上,我用简单的adapters来处理向SQS的过渡:

    • 完成大部分工作的抽象适配器,具有存储特定内容的抽象函数,
    • 继承抽象适配器并使用SQS SDK
    • 的SQS适配器
    • 一个或多或少与之前完全相同的MySQL适配器,
    • 创建了队列模型的factory method,确定了要使用的适配器,将其提供给模型。

    当我们将图像移动到S3并使用文件系统本地回退时,相同的架构(或多或少)工作得非常好。简单,小巧,易于解释,更重要的是,它有效。如果要将应用程序迁移到云端,您可能会为后端服务编写相当多的适配器,除了拥有简单的回退机制之外,您不希望将供应商锁定到特定服务。

    显然,如果您正在构建一个考虑了云的应用程序,您可能不一定需要本地回退,特别是如果您的平台有一种模拟云环境的简单方法。像Stratosphere这样的东西,如果您正在开发.Net / Mono,或者您正在定位亚马逊的服务。但是如果你有一个成熟的应用程序,你已经在本地设置了基础设施,继续使用它会更有意义。

    如果您将云用作精美的数据存储,那么云“开销”并不是您需要担心的问题。但是,如果您正在寻找云计算,那么没有答案,它总是取决于您正在做什么。

    一些相关问题: