gpt4 book ai didi

design-patterns - 您在以云为中心的设计中遇到过哪些架构问题?

转载 作者:行者123 更新时间:2023-12-02 05:13:14 26 4
gpt4 key购买 nike

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

一些示例包括:

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

最佳答案

我面临的最大问题是本地回退。在典型的云场景中,您正在将曾经存在于传统数据存储(数据库、文件系统等)中的资源移动到 API 后面的某个地方,您无法在本地轻松复制这些资源。对于我们的应用程序,我们将一些典型的队列从 MySQL 移到了 Amazon's SQS。 .问题:

  1. 目前,亚马逊对每 10,000 个 SQS 请求收取 0.01 美元的费用,这一费用看似极低,但在本地开发时(或为您的测试服务器,假设您有单独的服务器)绝对没有理由支付。

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

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

在架构上,我用简单的 adapters 处理了向 SQS 的过渡。 :

  • 完成大部分工作的抽象适配器,具有用于存储特定内容的抽象函数,
  • 继承抽象适配器并利用 SQS SDK 的 SQS 适配器,
  • 一个 MySQL 适配器,它或多或少与我们以前拥有的完全相同,
  • A factory method创建队列模型,决定使用什么适配器,将其提供给模型。

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

显然,如果您在构建应用程序时考虑到云,您可能不一定需要本地回退,特别是如果您的平台具有模拟云环境的简单方法。类似于 Stratosphere ,如果您在 .Net/Mono 上进行开发,或者您的目标是亚马逊的服务。但如果您有一个成熟的应用程序,您已经在本地设置了基础设施,继续使用它会更有意义。

如果您将云用作奇特的数据存储,那么您实际上不需要担心云“开销”。但如果你正在寻找云计算,那就没有答案了,这总是取决于你到底在做什么。

一些相关的问题:

关于design-patterns - 您在以云为中心的设计中遇到过哪些架构问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3422640/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com