该资料是一份 Azure 云架构的系统设计模式集合,说明在 Azure 上构建系统时的选型依据、失败模式与反模式。内容按域组织。
计算:App Service 适合无需 Kubernetes 的 Web、REST API 与后端服务;Functions 适合事件驱动、短时任务,注意消费计划超时与冷启动限制;Container Apps 提供类 Kubernetes 能力并支持缩容到零;AKS 适合需要完整 Kubernetes 控制的复杂容器负载;虚拟机适合需完整 OS 控制、许可证约束、GPU 或迁移场景。
身份与访问:Entra ID 作为身份控制平面,Managed Identity 消除存储凭据,Azure RBAC 负责资源授权并按最小权限在尽可能窄的范围分配角色,Key Vault 存放无法用托管身份的机密、证书与密钥。
网络:VNet 作为隔离边界并需规划地址空间与子网;私有终结点让 PaaS 服务通过私有 IP 访问;Front Door 用于全局 HTTP 负载均衡与 WAF,Application Gateway 用于区域 L7;Azure DNS 与 Traffic Manager 提供 DNS 级路由。
数据平台:Azure SQL Database 面向关系型负载并含无服务器与超大规模层;Cosmos DB 面向全球分布、多模型与可调一致性,分区键设计是关键;Storage 提供 Blob、Table、Queue、Files;PostgreSQL Flexible Server 适合 PostgreSQL 及 pgvector 等扩展。
消息与事件:Service Bus 面向需保证投递、顺序与事务的企业消息;Event Hubs 面向高吞吐事件流并与 Kafka 兼容;Event Grid 面向响应 Azure 资源事件的推送式路由。
部署与基础设施:建议全部基础设施即代码,Bicep 为 Azure 原生 IaC 并编译为 ARM 模板;多云场景可考虑 Terraform。各小节均列出何时使用、何时避免与关键决策,并指出应避免的反模式。原文未提供的具体价格、配额数值等细节暂未提供,文中给出的超时、上限等为原文所述内容。