你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

云设计模式

架构师通过集成平台服务、功能和代码来设计工作负载,以满足功能和非功能要求。 若要设计有效的工作负荷,必须了解这些要求,并选择解决工作负载约束挑战的拓扑和方法。 云设计模式为许多常见挑战提供了解决方案。

系统设计严重依赖于已建立的设计模式。 可以使用这些模式的组合来设计基础结构、代码和分布式系统。 这些模式对于在云中构建可靠、高度安全、成本优化、作高效且高性能的应用程序至关重要。

以下云设计模式与技术无关,这使得它们适合任何分布式系统。 可以在 Azure、其他云平台、本地设置和混合环境中应用这些模式。

云设计模式如何增强设计过程

云工作负载容易受到 分布式计算的故障影响,这种错误是分布式系统运行方式的常见但不正确的假设。 这些谬论的示例包括:

  • 网络可靠。
  • 延迟为零。
  • 带宽是无限的。
  • 网络是安全的。
  • 拓扑不会更改。
  • 有一个管理员。
  • 组件版本控制很简单。
  • 可观测性实现可能会延迟。

这些误解可能会导致工作负荷设计有缺陷。 设计模式不会消除这些误解,但有助于提高意识、提供补偿策略并提供缓解措施。 每个云设计模式都有权衡。 专注于为何应选择特定模式而不是如何实现它。

请考虑如何将这些行业标准设计模式用作设计良好的工作负载设计的核心构建基块。 Azure Well-Architected Framework 中的每个设计模式都表示其一个或多个支柱。 某些模式可能会引入影响其他支柱目标的权衡。

模式目录

本目录中的每个模式都描述了它解决的问题、应用该模式时的注意事项,以及基于 Microsoft Azure 服务和工具的示例。 某些模式包含了代码示例或代码片段,演示如何在 Azure 中实现该模式。

模式 总结 Well-Architected 框架支柱
代表 创建代表客户服务或应用程序发送网络请求的帮助程序服务。 -可靠性

-安全
防损层 在现代应用程序与旧系统之间实施外观或适配器层。 - 卓越运营
异步请求-答复 将后端处理与前端主机分离。 当后端处理必须是异步的,但前端需要明确且及时的响应时,此模式非常有用。 - 性能效率
用于前端的后端 为特定的前端应用程序或接口创建单独的后端服务。 -可靠性

-安全

- 性能效率
隔层 将应用程序的元素隔离到池中,这样,如果一个元素发生故障,其他元素可继续工作。 -可靠性

-安全

- 性能效率
缓存端 将数据按需从数据存储加载到缓存中。 -可靠性

- 性能效率
协调 让各个服务决定何时以及如何处理业务操作,而不是取决于中央协调器。 - 卓越运营

- 性能效率
断路器 处理在应用程序连接到远程服务或资源时可能需要一定时间修复的错误。 -可靠性

- 性能效率
声明检查 将大型消息拆分成声明检查和有效负载,以免消息总线过载。 -可靠性

-安全

- 成本优化

- 性能效率
补偿事务 撤消由一系列步骤执行的工作,这些步骤共同构成最终一致性的操作。 -可靠性
竞争性使用者 允许多个并发使用者处理在同一消息通道上接收的消息。 -可靠性

- 成本优化

- 性能效率
计算资源合并 将多个任务或操作合并到单个计算单元。 - 成本优化

- 卓越运营

- 性能效率
CQRS 使用不同的接口分别进行读取数据和更新数据的操作。 - 性能效率
部署戳 部署应用程序组件的多个独立副本,包括数据存储。 - 卓越运营

- 性能效率
事件溯源 使用仅追加存储来记录完整的一系列事件,这些事件描述了在域内数据上执行的操作。 -可靠性

- 性能效率
外部配置存储 将配置信息从应用程序部署包移到集中位置。 - 卓越运营
联合标识 将身份验证委托给外部标识提供者。 -可靠性

-安全

- 性能效率
网关聚合 使用网关可将多个单独请求聚合成一个请求。 -可靠性

-安全

- 卓越运营

- 性能效率
网关卸载 将共享或专用服务功能卸载到网关代理。 -可靠性

-安全

- 成本优化

- 卓越运营

- 性能效率
网关路由 使用单个终结点将请求路由到多个服务。 -可靠性

- 卓越运营

- 性能效率
地理节点 跨地理分布式节点部署后端服务。 每个节点都可以处理来自任何区域的客户端请求。 -可靠性

- 性能效率
运行状况终结点监视 在应用程序中实施可让外部工具通过公开终结点定期访问的功能检查。 -可靠性

- 卓越运营

- 性能效率

后续步骤

从设计模式旨在优化的 Well-Architected 框架支柱的角度来审视这些设计模式。