mcpField
C
cloud-solution-architect

cloud-solution-architect

github.com/microsoft云与 DevOps3.2k120 次安装今天更新
代码仓库

关于 cloud-solution-architect

面向云架构师的技能,用于设计符合 Azure 架构最佳实践的生产级系统。内容涵盖架构风格选择、云设计模式、技术决策框架和架构审查流程。

主要功能

  1. 0110 项 Azure 设计原则
  2. 026 种架构风格的选择指南
  3. 0344 个映射至 WAF 支柱的模式
  4. 04技术选型框架
  5. 05架构审查流程

适用场景

  1. 01为新的 Azure 系统选择架构风格
  2. 02从可靠性和安全角度审查系统设计
  3. 03比较 Azure 计算、存储、数据和消息传递选项

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/microsoft/skills --skill cloud-solution-architect

安装后在 Claude Code 中输入/cloud-solution-architect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
architecture-styles.md
best-practices.md
design-patterns.md
design-principles.md
mission-critical.md
performance-antipatterns.md
technology-choices.md

详细介绍

云解决方案架构师

概述

遵循 Azure Architecture Center 的最佳实践,设计架构良好、可用于生产环境的云系统。本技能提供:

  • 10 项 Azure 应用设计原则
  • 6 种架构风格及选择指南
  • 44 种云设计模式,并映射到 WAF 支柱
  • 计算、存储、数据和消息传递的技术选择框架
  • 应避免的性能反模式
  • 用于系统化设计验证的架构评审工作流

Azure 应用的十项设计原则

#原则关键策略
1设计以实现自我修复采用退避重试、断路器、舱壁隔离、运行状况终结点监控和优雅降级
2确保所有组件都有冗余消除单点故障,使用可用性区域,部署到多个区域,复制数据
3尽量减少协调解耦服务,使用异步消息传递,接受最终一致性,使用领域事件
4设计为横向扩展横向扩展、自动缩放规则、无状态服务、避免会话粘滞、划分工作负载
5围绕限制进行分区数据分区(分片/哈希/范围),遵守计算和网络限制,使用 CDN 提供静态内容
6面向运维进行设计结构化日志记录、分布式跟踪、指标和仪表板、运行手册自动化、基础设施即代码
7使用托管服务优先选择 PaaS 而非 IaaS,降低运维负担,利用内置的高可用性/灾难恢复/缩放能力
8使用身份服务Microsoft Entra ID、托管标识、RBAC,避免存储凭据,遵循零信任原则
9面向演进进行设计松耦合、版本化 API、向后兼容、使用异步消息传递进行集成、功能标志
10满足业务需求定义 SLA/SLO,设定 RTO/RPO 目标,领域驱动设计,成本建模,复合 SLA

架构风格

风格说明适用场景关键服务
N 层水平分层(表示层、业务层、数据层)传统企业应用、直接迁移App Service、SQL Database、VNets
Web-Queue-WorkerWeb 前端 → 消息队列 → 后端工作器包含长时间运行任务的中等复杂度应用App Service、Service Bus、Functions
微服务小型自治服务、有界上下文、独立部署复杂领域、需要独立扩展团队AKS、Container Apps、API Management
事件驱动发布/订阅模式、事件生产者/消费者实时处理、IoT、响应式系统Event Hubs、Event Grid、Functions
大数据批处理与流处理管道分析、机器学习管道、大规模数据Synapse、Data Factory、Databricks
大规模计算HPC、并行处理仿真、建模、渲染、基因组学Batch、CycleCloud、HPC VM
选择标准
  • 领域复杂度 → 微服务(高),N 层(低至中等)
  • 团队自治 → 微服务(独立团队),N 层(单个团队)
  • 数据量 → 大数据(TB 级以上),其他(GB 级)
  • 延迟要求 → 事件驱动(实时),Web-Queue-Worker(可容忍延迟)

云设计模式

按主要关注点组织的 44 种模式。WAF 支柱映射:R=可靠性,S=安全性,CO=成本优化,OE=卓越运营,PE=性能效率。

消息与通信
模式概要支柱
异步请求-回复通过轮询或回调解耦请求与响应R, PE
声明检查拆分大型消息;单独存储有效负载,并传递引用R, PE
编排服务通过事件进行协调,无需中央协调器R, OE
竞争消费者多个消费者并发处理共享队列中的消息R, PE
消息桥接连接不兼容的消息系统R, OE
管道与过滤器将复杂处理分解为可复用的过滤器阶段R, OE
优先级队列为请求设置优先级,以便优先处理高优先级任务R, PE
发布者/订阅者通过主题/订阅解耦发送方与接收方R, PE
基于队列的负载平衡使用队列缓冲请求,平滑间歇性负载R, PE
顺序车队按顺序处理相关消息,同时允许并行处理不同组R, PE
可靠性与弹性
模式概要支柱
舱壁按工作负载隔离资源,防止故障级联R
断路器停止调用故障服务;快速失败以保护资源R
补偿事务后续步骤失败时撤销先前已提交的步骤R
运行状况终结点监视为负载均衡器和协调器提供运行状况检查R, OE
领导者选举通过选举领导者来协调分布式实例R
重试通过采用指数退避进行重试来处理暂时性故障R
Saga使用补偿事务管理微服务之间的数据一致性R
调度程序代理监督器通过重试和故障处理协调分布式操作R
数据管理
模式概要支柱
旁路缓存按需从数据存储加载数据到缓存PE
CQRS分离读写模型,以便独立扩展PE, R
事件溯源将状态存储为仅追加的领域事件序列R, OE
索引表为数据存储中频繁查询的字段创建索引PE
物化视图预先计算数据视图,以实现高效查询PE
分片将数据分布到多个分区,以提升规模和性能PE, R
静态内容托管直接通过云存储/CDN 提供静态内容PE, CO
代客钥匙授予客户端对存储资源的有限直接访问权限S, PE
设计与结构
模式概要支柱
大使将横切关注点卸载给辅助边车代理OE
防腐层在新系统与旧系统的模型之间进行转换OE, R
前端专用后端为每种前端类型(移动端、Web 等)创建独立后端OE, PE
计算资源整合将多个工作负载合并到更少的计算实例中CO
外部配置存储将配置从部署包中分离出来OE
边车将辅助组件与主服务一同部署OE
绞杀者无花果通过逐步替换旧系统的部分组件来迁移系统OE, R
安全与访问
模式概要支柱
联合身份将身份验证委托给外部身份提供商S
守门人使用专用代理验证请求,以保护服务S
隔离区在允许使用外部资产之前先将其隔离并验证S
速率限制控制消费者对资源的消耗速率R, S
节流控制资源消耗,以便在负载下维持 SLAR, PE
部署与扩展
模式概要支柱
部署戳部署应用程序组件的多个独立副本R, PE
边缘工作负载配置为不同的边缘设备配置不同的工作负载OE
网关聚合将多个后端调用聚合为单个客户端请求PE
网关卸载将共享功能(SSL、身份验证)卸载到网关OE, S
网关路由使用单个终结点将请求路由到多个后端OE
地质体将后端部署到多个区域,以提供主动-主动服务R, PE

请参阅设计模式参考,了解详细的实现指南。


技术选型

决策框架

对于每个技术领域,请评估:需求 → 约束 → 权衡 → 选择。

领域主要选项选择标准
计算App Service、Functions、Container Apps、AKS、VM、Batch托管模型、扩展能力、成本、团队技能
存储Blob Storage、Data Lake、Files、Disks、Managed Lustre访问模式、吞吐量、成本层级
数据存储SQL Database、Cosmos DB、PostgreSQL、Redis、Table Storage一致性模型、查询模式、规模
消息传递Service Bus、Event Hubs、Event Grid、Queue Storage顺序、吞吐量、发布/订阅还是队列
网络Front Door、Application Gateway、Load Balancer、Traffic Manager全局还是区域、L4 还是 L7、WAF
AI 服务Azure OpenAI、AI Search、AI Foundry、Document Intelligence模型需求、数据依据、编排
容器Container Apps、AKS、Container Instances运维控制能力与简便性之间的权衡

请参阅技术选型参考,了解详细的决策树。


最佳实践

实践主要指导
API 设计RESTful 惯例、面向资源的 URI、HATEOAS、通过 URL 路径或标头进行版本控制
API 实现异步操作、分页、幂等 PUT/DELETE、内容协商、ETag 缓存
自动扩展基于指标(CPU、队列深度、自定义指标)扩展、冷却期、预测性扩展、扩展缩减保护
后台作业使用队列或计划触发器、幂等处理、毒消息处理、优雅关闭
缓存Cache-aside 模式、TTL 策略、缓存失效策略、多实例场景使用分布式缓存
CDN卸载静态资产、使用带版本号的 URL 破坏缓存、地理分布、强制使用 HTTPS
数据分区水平(分片)、垂直、功能分区;选择分区键以实现均匀分布
分区策略基于哈希、范围、目录的策略;重新平衡方法、避免跨分区查询
保留主机名通过代理/网关保留原始主机标头,以支持 Cookie、重定向和身份验证流程
消息编码架构演进(Avro/Protobuf)、向后/向前兼容性、架构注册表
监控与诊断结构化日志记录、分布式跟踪(W3C Trace Context)、指标、警报、仪表板
瞬时故障处理使用指数退避和抖动进行重试、断路器、幂等性密钥、超时预算

请参阅最佳实践参考,了解实现细节。


性能反模式

避免以下常见模式,以免在负载增加时导致性能下降:

反模式问题修正方法
数据库负载过重将过多处理工作转移到数据库将逻辑移至应用层,并使用缓存
前端负载过重在前端请求线程上执行资源密集型工作转移到后台工作线程/队列
频繁 I/O发出许多小型 I/O 请求,而不是较少的大型请求批量处理请求,使用批量 API,并缓冲写入
获取多余数据检索超出所需范围的数据仅选择必需字段,进行分页,并在服务端筛选
实例化不当每个请求都重新创建开销较大的对象使用单例、连接池和 HttpClientFactory
单体式持久化所有数据类型都使用同一个数据存储多语言持久化——为每种工作负载选择合适的存储
没有缓存反复获取未发生变化的数据使用旁路缓存模式、CDN、输出缓存和 Redis
吵闹邻居某个租户耗尽所有共享资源使用隔舱隔离、按租户设置配额并进行限流
重试风暴激进重试使正在恢复的服务不堪重负指数退避加抖动、断路器和重试预算
同步 I/O因 I/O 操作阻塞线程使用 Async/await、非阻塞 I/O 和响应式流

任务关键型设计

对于目标为 99.99% 及以上 SLO 的工作负载,请关注以下设计领域:

设计领域关键考虑因素
应用平台多区域主动-主动、可用性区域、支持区域冗余的 Container Apps 或 AKS
应用设计无状态服务、幂等操作、优雅降级、隔舱隔离
网络Azure Front Door(全局负载均衡)、DDoS Protection、专用终结点、冗余连接
数据平台多区域 Cosmos DB、区域冗余 SQL、异步复制、冲突解决
部署与测试蓝绿部署、金丝雀发布、混沌工程、自动回滚
健康度建模综合健康评分、依赖项健康跟踪、自动修复、SLI 仪表板
安全性零信任、全面使用托管标识、密钥轮换、WAF 策略、威胁建模
运维流程自动化运行手册、事件响应预案、演练日、事后复盘

详细指南请参阅任务关键型参考。


Well-Architected Framework(WAF)支柱

每项架构决策都应根据全部五大支柱进行评估:

支柱关注重点关键问题
可靠性韧性、可用性、灾难恢复RTO/RPO 是什么?系统如何处理故障?是否具备冗余?
安全性威胁防护、身份、数据保护是否管理了身份?数据是否已加密?是否设有网络控制措施?
成本优化成本管理、效率、资源规格优化计算资源规格是否合适?是否使用了预留实例?是否存在浪费?
卓越运营监控、部署、自动化部署是否自动化?是否具备可观测性?是否有运行手册?
性能效率扩展、负载测试、性能目标是否支持水平扩展?是否有性能基线?是否使用了缓存?
WAF 权衡矩阵
优化目标……可能影响……
可靠性(冗余)成本(更多资源)
安全性(隔离)性能(增加延迟)
成本(整合)可靠性(共享故障域)
性能(缓存)成本(缓存基础设施)、可靠性(陈旧数据)

架构评审工作流

评审或设计系统时,请遵循以下结构化方法:

步骤 1:识别需求
Functional: What must the system do?
Non-functional:
  - Availability target (e.g., 99.9%, 99.99%)
  - Latency requirements (p50, p95, p99)
  - Throughput (requests/sec, messages/sec)
  - Data residency and compliance
  - Recovery targets (RTO, RPO)
  - Cost constraints
Step 2: 选择架构风格

根据上方的选择标准表,将需求与架构风格相匹配。

Step 3: 选择技术栈

使用技术选择决策框架。优先选择托管服务(PaaS),而非 IaaS。

Step 4: 应用设计模式

根据已识别的问题,从 44 种云设计模式中选择适用的模式。

Step 5: 处理横切关注点
  • 身份与访问 — Microsoft Entra ID、托管标识、RBAC
  • 监控 — Application Insights、Azure Monitor、Log Analytics
  • 安全 — 网络分段、静态/传输加密、Key Vault
  • CI/CD — GitHub Actions、Azure DevOps Pipelines、基础设施即代码
Step 6: 根据 WAF 支柱进行验证

系统地检查每个支柱,并明确记录权衡取舍。

Step 7: 记录决策

使用架构决策记录(ADR):

# ADR-NNN: [Decision Title]

## Status: [Proposed | Accepted | Deprecated]

## Context
[What is the issue we're addressing?]

## Decision
[What did we decide and why?]

## Consequences
[What are the positive and negative impacts?]

参考资料


来源

内容源自 Azure Architecture Center — Microsoft 关于 Azure 云解决方案架构的官方指南。涵盖设计原则、架构风格、云设计模式、技术选择、最佳实践、性能反模式、关键任务设计以及 Well-Architected Framework。

评论

支持 Markdown