Azure云架构部署Skill deploying-on-azure

该技能专注于在 Microsoft Azure 云平台上设计和实施云架构,遵循最佳实践,涵盖计算服务选择、存储解决方案、数据库集成、AI服务应用、网络架构、身份管理、治理合规等方面,适用于新应用设计和现有工作负载迁移,关键词包括 Azure、云架构、部署、成本优化、安全、微服务。

Azure 0 次安装 0 次浏览 更新于 3/23/2026

name: deploying-on-azure description: 使用最佳实践设计和实现 Azure 云架构,涵盖计算、存储、数据库、AI服务、网络和治理。适用于在 Microsoft Azure 上构建应用程序或将工作负载迁移到 Azure 云平台。

Azure 模式

遵循 Microsoft 的 Well-Architected 框架和最佳实践,设计和实现 Azure 云架构,包括服务选择、成本优化和安全性。

何时使用

在以下情况下使用此技能:

  • 为 Azure 云设计新应用程序
  • 选择 Azure 计算服务(容器应用、AKS、函数、应用服务)
  • 架构存储解决方案(Blob 存储、文件、Cosmos DB)
  • 集成 Azure OpenAI 或认知服务
  • 实现消息模式(服务总线、事件网格、事件中心)
  • 设计带有私有端点的安全网络
  • 应用 Azure 治理和合规策略
  • 优化 Azure 成本和性能

核心概念

服务选择哲学

Azure 提供 200 多个服务。基于以下因素选择:

  1. 托管 vs. IaaS - 优先选择完全托管服务(降低运营负担)
  2. 成本模型 - 消费 vs. 专用容量
  3. 集成需求 - Microsoft 365、Active Directory、混合云
  4. 控制 vs. 简单性 - 更多控制 = 更多运营开销

Azure Well-Architected 框架(五大支柱)

支柱 焦点 关键实践
成本优化 在预算内最大化价值 预留实例、自动缩放、生命周期管理
运营卓越 运行可靠系统 Azure Policy、自动化、监控
性能效率 扩展以满足需求 自动缩放、缓存、CDN
可靠性 从故障中恢复 可用性区域、多区域、备份
安全性 保护数据和资产 托管身份、私有端点、密钥保管库

参考 references/well-architected.md 获取详细支柱实现模式。

计算服务选择

决策框架

基于容器的工作负载?
  是 → 需要 Kubernetes 控制平面?
          是 → Azure Kubernetes Service (AKS)
          否 → Azure 容器应用(推荐)
  否 → 事件驱动函数?
         是 → Azure Functions
         否 → Web 应用程序?
                是 → Azure 应用服务
                否 → 遗留/专用 → 虚拟机

服务比较

服务 最佳用于 定价模型 运营开销
容器应用 微服务、API、后台作业 消费或专用
AKS 复杂 K8s 工作负载、服务网格 基于节点
函数 事件驱动、短任务(<10 分钟) 消费或高级
应用服务 Web 应用、简单 API 专用计划
虚拟机 遗留应用、专用软件 基于 VM

推荐: 对于 80% 的容器化工作负载,从 Azure 容器应用开始(比 AKS 更简单、更便宜)。

参考 references/compute-services.md 获取详细比较和 Bicep、Terraform 示例。

存储架构

Blob 存储层级选择

层级 访问模式 成本/GB/月 最小存储期限
每日访问 $0.018
<1/月访问 $0.010 30 天
冷存档 <90 天访问 $0.0045 90 天
存档 罕见访问 $0.00099 180 天

模式: 使用生命周期管理策略自动将数据移动到低成本层级。

存储服务决策

需要文件系统接口?
  是 → 协议?
          SMB → Azure 文件(或 NetApp 文件用于高性能)
          NFS → Azure 文件(NFS 4.1)
  否 → 对象存储 → Blob 存储
       块存储 → 托管磁盘(标准/Premium SSD/Ultra)
       分析 → Data Lake Storage Gen2

参考 references/storage-patterns.md 获取生命周期策略、冗余选项和性能调优。

数据库服务选择

决策框架

关系数据?
  是 → SQL Server 兼容?
          是 → 需要 VM 级别访问?
                  是 → SQL 托管实例
                  否 → Azure SQL 数据库
          否 → 开源?
                  PostgreSQL → PostgreSQL 灵活服务器
                  MySQL → MySQL 灵活服务器
  否 → 数据模型?
         文档/JSON → Cosmos DB(NoSQL API)
         图 → Cosmos DB(Gremlin API)
         宽列 → Cosmos DB(Cassandra API)
         键值缓存 → Azure Cache for Redis
         时间序列 → Azure Data Explorer

Cosmos DB 一致性级别

级别 用例 延迟 吞吐量
金融交易、库存 最高 最低
有界过时 实时排行榜,可接受滞后
会话 购物车、用户会话(默认) 中等 中等
一致前缀 社交动态、IoT 遥测
最终 分析、ML 训练数据 最低 最高

参考 references/database-selection.md 获取容量规划、索引策略和迁移模式。

AI 和机器学习集成

Azure OpenAI 服务

用例:

  • 聊天机器人和对话 AI(GPT-4)
  • 内容生成和摘要
  • 带有嵌入的语义搜索(RAG 模式)
  • 代码生成和补全
  • 函数调用用于结构化输出

关键优势:

  • 企业数据隐私(不在客户数据上训练模型)
  • 区域部署以符合数据驻留要求
  • Microsoft 企业 SLA
  • 内置内容过滤

集成模式:

from openai import AzureOpenAI
from azure.identity import DefaultAzureCredential

credential = DefaultAzureCredential()
client = AzureOpenAI(
    azure_endpoint="https://myopenai.openai.azure.com",
    azure_ad_token_provider=token_provider,
    api_version="2024-02-15-preview"
)

response = client.chat.completions.create(
    model="gpt-4-turbo",
    messages=[{"role": "user", "content": "Hello!"}]
)

其他 AI 服务

服务 目的 常见用例
认知服务 预构建 AI 模型 视觉、语音、语言、决策
Azure 机器学习 自定义模型训练 MLOps、模型部署、特征工程
Azure AI 搜索 语义搜索引擎 RAG 模式、文档搜索

参考 references/ai-integration.md 获取 RAG 架构、函数调用和微调模式。

消息传递和集成

服务选择矩阵

服务 模式 消息大小 排序 事务 最佳用于
服务总线 队列/主题 256 KB - 100 MB 是(会话) 企业消息传递
事件网格 发布/订阅 1 MB 事件驱动架构
事件中心 流式处理 1 MB 是(分区) 大数据摄取、遥测
存储队列 简单队列 64 KB 异步工作、<500k 消息/秒

何时使用:

  • 服务总线: 可靠的消息传递与事务(例如,订单处理)
  • 事件网格: 响应 Azure 资源事件(例如,Blob 创建、VM 停止)
  • 事件中心: 高吞吐量流式处理(例如,IoT 遥测、应用程序日志)

参考 references/messaging-patterns.md 获取实现示例、重试策略和死信处理。

网络架构

私有端点 vs. 服务端点

方面 私有端点 服务端点
安全模型 VNet 中的私有 IP 到公共端点的优化路由
数据外泄保护 是(网络隔离) 有限(仅服务防火墙)
成本 ~$7.30/月每个端点 免费
推荐 生产工作负载 开发/测试环境

最佳实践: 在生产中为所有 PaaS 服务使用私有端点(将公共端点视为反模式)。

中心和辐射拓扑

组件:

  • 中心 VNet: 共享服务(Azure 防火墙、VPN 网关、私有端点)
  • 辐射 VNets: 应用程序工作负载(按环境或团队隔离)
  • VNet 对等连接: 中心和辐射之间的低延迟连接

好处:

  • 集中化安全(防火墙、DNS)
  • 成本优化(共享出口)
  • 简化治理

参考 references/networking-architecture.md 获取中心辐射 Bicep 模板、NSG 模式和 DNS 配置。

身份和访问管理

托管身份模式

始终使用托管身份代替:

  • 代码中的连接字符串
  • 存储账户密钥
  • 服务主体凭据
  • API 密钥

系统分配 vs. 用户分配:

类型 生命周期 用例
系统分配 绑定到资源 单个资源需要访问
用户分配 独立 多个资源共享身份

示例流程:

  1. 在容器应用上启用托管身份
  2. 授予身份对密钥保管库的访问权限(RBAC 或访问策略)
  3. 应用程序自动进行身份验证(无需凭据)
from azure.identity import DefaultAzureCredential

# 使用托管身份自动工作
credential = DefaultAzureCredential()
keyvault_client = SecretClient(vault_url="...", credential=credential)

Azure RBAC 最佳实践

  • 尽可能使用内置角色(所有者、贡献者、读取者)
  • 应用最小权限原则
  • 在资源组级别分配角色(非订阅)
  • 使用 Azure AD 组进行用户管理
  • 定期审核角色分配

参考 references/identity-access.md 获取 Entra ID 集成、条件访问策略和 B2C 模式。

治理和合规

Azure Policy 用于防护栏

常见策略模式:

  • 要求所有资源都有标签(环境、所有者、成本中心)
  • 限制允许的 Azure 区域
  • 强制执行 TLS 1.2 最低版本
  • 要求存储账户使用私有端点
  • 拒绝 VM 上的公共 IP 地址

策略效果:

  • 拒绝: 阻止不合规资源创建
  • 审核: 记录不合规但允许创建
  • DeployIfNotExists: 自动修复缺失配置
  • 修改: 在部署期间更改资源属性

成本管理

优化策略:

模式 节省 用例
预留实例(1 年) 40-50% 稳态工作负载(数据库、VM)
预留实例(3 年) 60-70% 长期承诺
Spot VM 高达 90% 容错批处理
自动关机 可变 开发/测试资源(非工作时间)
存储生命周期策略 50-90% 移动到冷/存档层级

监控:

  • 在 Azure 成本管理中设置预算和警报
  • 每周查看 Azure Advisor 成本建议
  • 标记资源以进行成本分配
  • 使用 FinOps Toolkit 用于 Power BI 仪表板

参考 references/governance-compliance.md 获取 Azure 登陆区域、策略定义和蓝图。

基础设施即代码

工具选择

工具 最佳用于 Azure 集成 多云
Bicep Azure 原生项目 优秀(官方)
Terraform 多云环境 良好(azurerm 提供者)
Pulumi 开发者优先方法 良好(原生 SDK)
Azure CLI 脚本和自动化 优秀

推荐:

  • 使用 Bicep 用于纯 Azure 基础设施(最佳 Azure 集成,原生类型安全)
  • 使用 Terraform 用于多云或现有 Terraform 商店
  • 使用 Azure CLI 用于快速脚本和 CI/CD 自动化

Bicep 最佳实践

  • 使用参数文件用于环境特定值
  • 利用 Azure 验证模块(AVM)用于测试模式
  • 按资源生命周期组织(网络、数据、计算)
  • 使用符号名称(非字符串插值)
  • 在 CI/CD 中启用 Linting 和验证

参考 examples/bicep/examples/terraform/ 目录中的 Bicep 和 Terraform 示例。

安全最佳实践

基本安全控制

控制 实施 优先级
托管身份 在所有计算资源上启用 关键
私有端点 生产中的所有 PaaS 服务 关键
密钥保管库 存储机密、密钥、证书 关键
网络分段 NSG、应用程序安全组
Microsoft Defender 为所有资源类型启用
Azure Policy 预防性控制
即时访问 VM 和特权访问 中等

深度防御层

  1. 网络: 私有端点、NSG、Azure 防火墙
  2. 身份: Entra ID、托管身份、条件访问
  3. 应用程序: Web 应用程序防火墙、API 管理
  4. 数据: 静态加密、传输中加密(TLS 1.2+)
  5. 监控: Microsoft Defender、Azure Monitor、Sentinel

参考 references/security-architecture.md(另见 security-hardeningauth-security 技能)。

成本估算

定价考虑

计算:

  • 容器应用:~$60/月(1 vCPU、2GB RAM、24/7)
  • AKS:~$400/月(3 节点 D4s_v5 集群)
  • 应用服务 P1v3:~$145/月(2 vCPU、8GB RAM)
  • 函数消费:~$0.20 每 100 万次执行

存储:

  • Blob 热:$0.018/GB/月
  • Blob 冷:$0.010/GB/月
  • Blob 存档:$0.00099/GB/月
  • 托管磁盘 Premium SSD:$0.15/GB/月

数据库:

  • Azure SQL 数据库(2 vCores):~$280/月
  • Cosmos DB 无服务器:按消耗的 RU 付费
  • PostgreSQL 灵活(2 vCores):~$125/月

使用 Azure 定价计算器: https://azure.microsoft.com/pricing/calculator/

快速参考表

计算服务决策矩阵

如果您需要… 选择
Kubernetes 功能(CRD、操作员) Azure Kubernetes Service
无 K8s 复杂性的微服务 Azure 容器应用
事件驱动函数(<10 分钟) Azure Functions
传统 Web 应用(Node、.NET、Python) Azure 应用服务
批处理、HPC Azure Batch 或 VM 规模集
遗留应用程序迁移 虚拟机

存储服务决策矩阵

如果您需要… 选择
SMB 文件共享 Azure 文件
NFS 文件共享 Azure 文件(NFS 4.1)
对象存储(图像、备份) Blob 存储
高性能文件存储 Azure NetApp 文件
VM 的块存储 托管磁盘
大数据分析 Data Lake Storage Gen2

数据库服务决策矩阵

如果您需要… 选择
SQL Server 功能(T-SQL、SQL Agent) Azure SQL 数据库或托管实例
PostgreSQL PostgreSQL 灵活服务器
MySQL MySQL 灵活服务器
全局分发、多模型 Cosmos DB
内存缓存 Azure Cache for Redis
图数据库 Cosmos DB(Gremlin API)
时间序列数据 Azure Data Explorer

与其他技能集成

  • 基础设施即代码: 使用 Bicep 或 Terraform 实现 Azure 模式
  • kubernetes-操作: AKS 特定配置和操作
  • 部署-应用程序: 容器应用和应用服务部署
  • 构建-ci-管道: Azure DevOps 和 GitHub Actions 集成
  • auth-安全: Entra ID 身份验证和授权模式
  • 可观察性: Azure Monitor 和 Application Insights
  • ai-聊天: Azure OpenAI 服务用于聊天应用程序
  • 数据库-nosql: Cosmos DB 实现细节
  • 秘密-管理: Azure 密钥保管库集成模式

参考文档

详细实现指南,参见:

  • references/compute-services.md - 容器应用、AKS、函数、应用服务,带有 Bicep/Terraform
  • references/storage-patterns.md - Blob 存储、文件、磁盘、生命周期管理
  • references/database-selection.md - SQL 数据库、Cosmos DB、PostgreSQL 模式
  • references/ai-integration.md - Azure OpenAI、RAG 架构、函数调用
  • references/messaging-patterns.md - 服务总线、事件网格、事件中心示例
  • references/networking-architecture.md - 中心辐射、私有端点、DNS 配置
  • references/identity-access.md - Entra ID、托管身份、RBAC
  • references/governance-compliance.md - Azure Policy、登陆区域、成本优化
  • references/well-architected.md - 五大支柱实施指南

代码示例

工作示例位于:

  • examples/bicep/ - 基础设施模板(容器应用、AKS、网络、数据库)
  • examples/terraform/ - 多云 IaC 示例
  • examples/sdk/python/ - Python SDK 集成(OpenAI、托管身份、消息传递)
  • examples/sdk/typescript/ - TypeScript SDK 示例

额外资源