【云应用架构】Azure 云设计模式概览

简介: 【云应用架构】Azure 云设计模式概览

这些设计模式对于在云中构建可靠、可扩展、安全的应用程序很有用。

每个模式都描述了该模式解决的问题、应用该模式的注意事项以及一个基于 Microsoft Azure 的示例。大多数模式都包含代码示例或代码片段,它们展示了如何在 Azure 上实现该模式。但是,大多数模式都与任何分布式系统相关,无论是托管在 Azure 上还是其他云平台上。

云开发面临的挑战

数据管理

数据管理是云应用的关键要素,影响着大部分质量属性。出于性能、可扩展性或可用性等原因,数据通常托管在不同的位置并跨多个服务器,这可能会带来一系列挑战。例如,必须保持数据一致性,并且数据通常需要跨不同位置同步。

设计与实施


好的设计包括组件设计和部署的一致性和连贯性、简化管理和开发的可维护性以及允许组件和子系统在其他应用程序和其他场景中使用的可重用性等因素。在设计和实施阶段做出的决策对云托管应用程序和服务的质量和总拥有成本产生巨大影响。

消息

云应用程序的分布式特性需要一个连接组件和服务的消息传递基础架构,理想情况下以松散耦合的方式来最大化可扩展性。异步消息传递被广泛使用,并提供了许多好处,但也带来了诸如消息排序、毒消息管理、幂等性等挑战。

模式目录

模式 总结 类别
Ambassador 创建代表消费者服务或应用程序发送网络请求的辅助服务。 Design and Implementation,

Operational Excellence
Anti-Corruption Layer 在现代应用程序和遗留系统之间实施外观或适配器层。 Design and Implementation,

Operational Excellence
Asynchronous Request-Reply 将后端处理与前端主机解耦,后端处理需要异步,但前端仍然需要清晰的响应。 Messaging
Backends for Frontends 创建单独的后端服务以供特定前端应用程序或接口使用。 Design and Implementation
Bulkhead 将应用程序的元素隔离到池中,以便如果一个失败,其他元素将继续运行。 Reliability
Cache-Aside 按需将数据从数据存储加载到缓存中 Data Management,

Performance Efficiency
Choreography 让每个服务决定何时以及如何处理业务操作,而不是依赖于中央协调器。 Messaging,

Performance Efficiency
Circuit Breaker 处理连接到远程服务或资源时可能需要不同时间才能修复的故障。 Reliability
Claim Check 将大消息拆分为声明检查和有效负载,以避免消息总线不堪重负。 Messaging
Compensating Transaction 撤消由一系列步骤执行的工作,这些步骤共同定义了最终一致的操作。 Reliability
Competing Consumers 允许多个并发消费者处理在同一消息传递通道上接收到的消息。 Messaging
Compute Resource Consolidation 将多个任务或操作合并到一个计算单元中 Design and Implementation
CQRS 使用单独的接口将读取数据的操作与更新数据的操作分开。 Data Management,

Design and Implementation,

Performance Efficiency
Deployment Stamps 部署应用程序组件的多个独立副本,包括数据存储。 Reliability,

Performance Efficiency
Event Sourcing 使用仅附加存储来记录描述对域中数据执行的操作的完整系列事件。 Data Management,

Performance Efficiency
External Configuration Store 将配置信息从应用程序部署包中移到一个集中位置。 Design and Implementation,

Operational Excellence
Federated Identity 将身份验证委托给外部身份提供者。 Security
Gatekeeper 使用专用主机实例保护应用程序和服务,该主机实例充当客户端与应用程序或服务之间的代理,验证和清理请求,并在它们之间传递请求和数据。 Security
Gateway Aggregation 使用网关将多个单独的请求聚合成一个请求。 Design and Implementation,

Operational Excellence
Gateway Offloading 将共享或专用服务功能卸载到网关代理。 Design and Implementation,

Operational Excellence
Gateway Routing 使用单个端点将请求路由到多个服务。 Design and Implementation,

Operational Excellence
Geodes 将后端服务部署到一组地理节点中,每个节点都可以为任何区域的任何客户端请求提供服务。 Reliability,

Operational Excellence
Health Endpoint Monitoring 在外部工具可以通过暴露的端点定期访问的应用程序中实施功能检查。 Reliability,

Operational Excellence
Index Table 在查询经常引用的数据存储中的字段上创建索引。 Data Management,

Performance Efficiency
Leader Election 通过选举一个实例作为负责管理其他实例的领导者,协调分布式应用程序中一组协作任务实例执行的操作。 Design and Implementation,

Reliability
Materialized View 当数据的格式不适合所需的查询操作时,生成一个或多个数据存储中数据的预填充视图。 Data Management,

Operational Excellence
Pipes and Filters 将执行复杂处理的任务分解为一系列可重复使用的独立元素。 Design and Implementation,

Messaging
Priority Queue 对发送到服务的请求进行优先级排序,以便接收和处理具有较高优先级的请求比具有较低优先级的请求更快。 Messaging,

Performance Efficiency
Publisher/Subscriber 使应用程序能够异步向多个感兴趣的消费者宣布事件,而无需将发送者与接收者耦合。 Messaging
Queue-Based Load Leveling 使用队列作为任务和它调用的服务之间的缓冲区,以平滑间歇性重负载。 Reliability,

Messaging,

Resiliency,

Performance Efficiency
Retry 通过透明地重试以前失败的操作,使应用程序能够在尝试连接到服务或网络资源时处理预期的临时故障。 Reliability
Scheduler Agent Supervisor 跨一组分布式服务和其他远程资源协调一组操作。 Messaging,

Reliability
Sequential Convoy 以定义的顺序处理一组相关的消息,而不阻塞其他组消息的处理。 Messaging
Sharding 将数据存储划分为一组水平分区或分片。 Data Management,

Performance Efficiency
Sidecar 将应用程序的组件部署到单独的进程或容器中,以提供隔离和封装。 Design and Implementation,

Operational Excellence
Static Content Hosting 将静态内容部署到基于云的存储服务,该服务可以将它们直接交付给客户端。 Design and Implementation,

Data Management,

Performance Efficiency
Strangler Fig 通过逐渐用新的应用程序和服务替换特定的功能,逐步迁移遗留系统。 Design and Implementation,

Operational Excellence
Throttling 控制应用程序实例、单个租户或整个服务使用的资源消耗。 Reliability,

Performance Efficiency
Valet Key 使用为客户端提供对特定资源或服务的受限直接访问的令牌或密钥。 Data Management,

Security
相关文章
|
29天前
|
监控 Java 持续交付
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
36 1
|
18天前
|
运维 Cloud Native 持续交付
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
|
27天前
|
机器学习/深度学习 自然语言处理 分布式计算
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
106 3
|
2天前
|
设计模式 监控 Java
分布式系统架构4:容错设计模式
这是小卷对分布式系统架构学习的第4篇文章,重点介绍了三种常见的容错设计模式:断路器模式、舱壁隔离模式和重试模式。断路器模式防止服务故障蔓延,舱壁隔离模式通过资源隔离避免全局影响,重试模式提升短期故障下的调用成功率。文章还对比了这些模式的优缺点及适用场景,并解释了服务熔断与服务降级的区别。尽管技术文章阅读量不高,但小卷坚持每日更新以促进个人成长。
22 11
|
29天前
|
运维 监控 安全
自动化运维的利剑:Ansible在现代IT架构中的应用
在数字化浪潮中,企业对IT系统的敏捷性和可靠性要求日益提高。Ansible,一种简单但强大的自动化运维工具,正成为现代IT架构中不可或缺的一部分。它通过声明式编程语言YAM,简化了系统配置、应用部署和任务自动化的过程,显著提升了运维效率和准确性。本文将深入探讨Ansible的核心特性、应用场景以及如何有效整合进现有IT环境,为读者揭示其在自动化运维中的实用价值和未来发展潜力。
|
23天前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
41 3
|
23天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
45 1
|
26天前
|
监控 持续交付 API
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
42 3
|
1月前
|
Cloud Native 持续交付 云计算
深入理解云原生技术及其在现代IT架构中的应用
在数字化浪潮的推动下,云原生技术已成为企业转型的关键。本文将通过浅显易懂的语言和生动的比喻,带领读者探索云原生的核心概念、优势以及如何在企业中实现云原生架构。我们将一起揭开云原生的神秘面纱,了解它如何助力企业快速适应市场变化,提升业务的灵活性和创新能力。
|
27天前
|
监控 持续交付 API
深入理解微服务架构:从设计原则到实践应用
深入理解微服务架构:从设计原则到实践应用
下一篇
DataWorks