【云应用架构】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
相关文章
|
9月前
|
人工智能 自然语言处理 开发工具
统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
本文介绍统一多模态 Transformer(UMT)在跨模态表示学习中的应用与优化,涵盖模型架构、实现细节与实验效果,探讨其在图文检索、图像生成等任务中的卓越性能。
统一多模态 Transformer 架构在跨模态表示学习中的应用与优化
|
8月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1262 3
|
9月前
|
设计模式 SQL 人工智能
Python设计模式:从代码复用到系统架构的实践指南
本文以Python为实现语言,深入解析23种经典设计模式的核心思想与实战技巧。通过真实项目案例,展示设计模式在软件开发中的结构化思维价值,涵盖创建型、结构型、行为型三大类别,并结合Python动态语言特性,探讨模式的最佳应用场景与实现方式,帮助开发者写出更清晰、易维护的高质量代码。
510 1
|
9月前
|
设计模式 人工智能 算法
Python设计模式:从代码复用到系统架构的实践指南
本文探讨了电商系统中因支付方式扩展导致代码臃肿的问题,引出设计模式作为解决方案。通过工厂模式、策略模式、单例模式等经典设计,实现代码解耦与系统扩展性提升。结合Python语言特性,展示了模块化、装饰器、适配器等模式的实战应用,并延伸至AI时代的设计创新,帮助开发者构建高内聚、低耦合、易维护的软件系统。
444 0
|
10月前
|
存储 编解码 Serverless
Serverless架构下的OSS应用:函数计算FC自动处理图片/视频转码(演示水印添加+缩略图生成流水线)
本文介绍基于阿里云函数计算(FC)和对象存储(OSS)构建Serverless媒体处理流水线,解决传统方案资源利用率低、运维复杂、成本高等问题。通过事件驱动机制实现图片水印添加、多规格缩略图生成及视频转码优化,支持毫秒级弹性伸缩与精确计费,提升处理效率并降低成本,适用于高并发媒体处理场景。
1075 0
|
6月前
|
人工智能 JavaScript 前端开发
GenSX (不一样的AI应用框架)架构学习指南
GenSX 是一个基于 TypeScript 的函数式 AI 工作流框架,以“函数组合替代图编排”为核心理念。它通过纯函数组件、自动追踪与断点恢复等特性,让开发者用自然代码构建可追溯、易测试的 LLM 应用。支持多模型集成与插件化扩展,兼具灵活性与工程化优势。
520 6
|
7月前
|
人工智能 Cloud Native 中间件
划重点|云栖大会「AI 原生应用架构论坛」看点梳理
本场论坛将系统性阐述 AI 原生应用架构的新范式、演进趋势与技术突破,并分享来自真实生产环境下的一线实践经验与思考。
|
7月前
|
机器学习/深度学习 人工智能 vr&ar
H4H:面向AR/VR应用的NPU-CIM异构系统混合卷积-Transformer架构搜索——论文阅读
H4H是一种面向AR/VR应用的混合卷积-Transformer架构,基于NPU-CIM异构系统,通过神经架构搜索实现高效模型设计。该架构结合卷积神经网络(CNN)的局部特征提取与视觉Transformer(ViT)的全局信息处理能力,提升模型性能与效率。通过两阶段增量训练策略,缓解混合模型训练中的梯度冲突问题,并利用异构计算资源优化推理延迟与能耗。实验表明,H4H在相同准确率下显著降低延迟和功耗,为AR/VR设备上的边缘AI推理提供了高效解决方案。
1300 0
|
6月前
|
机器学习/深度学习 自然语言处理 算法
48_动态架构模型:NAS在LLM中的应用
大型语言模型(LLM)在自然语言处理领域的突破性进展,很大程度上归功于其庞大的参数量和复杂的网络架构。然而,随着模型规模的不断增长,计算资源消耗、推理延迟和部署成本等问题日益凸显。如何在保持模型性能的同时,优化模型架构以提高效率,成为2025年大模型研究的核心方向之一。神经架构搜索(Neural Architecture Search, NAS)作为一种自动化的网络设计方法,正在为这一挑战提供创新性解决方案。本文将深入探讨NAS技术如何应用于LLM的架构优化,特别是在层数与维度调整方面的最新进展,并通过代码实现展示简单的NAS实验。
326 0
|
8月前
|
Web App开发 Linux 虚拟化
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件
440 0
Omnissa Horizon 8 2506 (8.16) - 虚拟桌面基础架构 (VDI) 和应用软件