【云应用架构】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
目录
打赏
0
0
0
0
110
分享
相关文章
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
115 1
深入理解云原生架构及其在现代企业中的应用
随着数字化转型的浪潮席卷全球,企业正面临着前所未有的挑战与机遇。云计算技术的迅猛发展,特别是云原生架构的兴起,正在重塑企业的IT基础设施和软件开发模式。本文将深入探讨云原生的核心概念、关键技术以及如何在企业中实施云原生策略,以实现更高效的资源利用和更快的市场响应速度。通过分析云原生架构的优势和面临的挑战,我们将揭示它如何助力企业在激烈的市场竞争中保持领先地位。
109 13
安全监控系统:技术架构与应用解析
该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
大规模语言模型与生成模型:技术原理、架构与应用
本文深入探讨了大规模语言模型(LLMs)和生成模型的技术原理、经典架构及应用。介绍了LLMs的关键特点,如海量数据训练、深层架构和自监督学习,以及常见模型如GPT、BERT和T5。同时,文章详细解析了生成模型的工作原理,包括自回归模型、自编码器和GANs,并讨论了这些模型在自然语言生成、机器翻译、对话系统和数据增强等领域的应用。最后,文章展望了未来的发展趋势,如模型压缩、跨模态生成和多语言多任务学习。
609 3
Python 高级编程与实战:深入理解设计模式与软件架构
本文深入探讨了Python中的设计模式与软件架构,涵盖单例、工厂、观察者模式及MVC、微服务架构,并通过实战项目如插件系统和Web应用帮助读者掌握这些技术。文章提供了代码示例,便于理解和实践。最后推荐了进一步学习的资源,助力提升Python编程技能。
|
1月前
|
类似ComfyUI和Midjourney这样的文生图图生图应用的API与服务架构该怎么设计
文生图图生图应用的API与服务架构分析。或和微服务类似,但是不同。ComfyUI其 API 架构设计为我们理解此类应用提供了很好的参考模型。但距离生产级别的应用差距还有很远。
88 0
云卓越架构:云上网络稳定性建设和应用稳定性治理最佳实践
本文介绍了云上网络稳定性体系建设的关键内容,包括面向失败的架构设计、可观测性与应急恢复、客户案例及阿里巴巴的核心电商架构演进。首先强调了网络稳定性的挑战及其应对策略,如责任共担模型和冗余设计。接着详细探讨了多可用区部署、弹性架构规划及跨地域容灾设计的最佳实践,特别是阿里云的产品和技术如何助力实现高可用性和快速故障恢复。最后通过具体案例展示了秒级故障转移的效果,以及同城多活架构下的实际应用。这些措施共同确保了业务在面对网络故障时的持续稳定运行。
分布式系统架构5:限流设计模式
本文是小卷关于分布式系统架构学习的第5篇,重点介绍限流器及4种常见的限流设计模式:流量计数器、滑动窗口、漏桶和令牌桶。限流旨在保护系统免受超额流量冲击,确保资源合理分配。流量计数器简单但存在边界问题;滑动窗口更精细地控制流量;漏桶平滑流量但配置复杂;令牌桶允许突发流量。此外,还简要介绍了分布式限流的概念及实现方式,强调了限流的代价与收益权衡。
130 11
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
142 33