关于 azure-cloud-architect
Azure Cloud Architect 面向设计 Azure 系统的团队,涵盖架构选择、成本分析与安全审查。它根据项目需求推荐架构模式并生成基础设施模板,主要使用 Bicep。
主要功能
- 01按需求推荐架构模式
- 02生成 Bicep 模板框架
- 03优化 Azure 资源成本
- 04提供 CI/CD 与安全指导
适用场景
- 01为新的 Azure 应用选择架构
- 02为选定设计生成基础设施模板
- 03分析资源清单并寻找节省成本的方案
- 04准备部署与安全检查
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ alirezarezvani/ claude-skills --skill azure-cloud-architect安装后在 Claude Code 中输入/azure-cloud-architect确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/architecture_patterns.mdbest_practices.mdservice_selection.mdscripts/architecture_designer.pybicep_generator.pycost_optimizer.py详细介绍
Azure 云架构师
借助 Bicep 基础设施即代码模板,为初创企业和大型企业设计可扩展、高性价比的 Azure 架构。
工作流
步骤 1:收集需求
收集应用规格:
- Application type (web app, mobile backend, data pipeline, SaaS, microservices)
- Expected users and requests per second
- Budget constraints (monthly spend limit)
- Team size and Azure experience level
- Compliance requirements (GDPR, HIPAA, SOC 2, ISO 27001)
- Availability requirements (SLA, RPO/RTO)
- Region preferences (data residency, latency)
步骤 2:设计架构
运行架构设计器以获取模式推荐:
python scripts/architecture_designer.py \
--app-type web_app \
--users 10000 \
--requirements '{"budget_monthly_usd": 500, "compliance": ["SOC2"]}'
示例输出:
{
"recommended_pattern": "app_service_web",
"service_stack": ["App Service", "Azure SQL", "Front Door", "Key Vault", "Entra ID"],
"estimated_monthly_cost_usd": 280,
"pros": ["Managed platform", "Built-in autoscale", "Deployment slots"],
"cons": ["Less control than VMs", "Platform constraints", "Cold start on consumption plans"]
}
从推荐的模式中进行选择:
- App Service Web:Front Door + App Service + Azure SQL + Redis Cache
- AKS 上的微服务:AKS + Service Bus + Cosmos DB + API Management
- 无服务器事件驱动:Functions + Event Grid + Service Bus + Cosmos DB
- 数据管道:Data Factory + Synapse Analytics + Data Lake Storage + Event Hubs
有关各模式的详细规格,请参阅 references/architecture_patterns.md。
验证检查点: 在进入步骤 3 之前,确认推荐的模式符合团队的运维成熟度和合规要求。
步骤 3:生成 IaC 模板
为所选模式创建基础设施即代码:
# Web app stack (Bicep)
python scripts/bicep_generator.py --arch-type web-app --output main.bicep
示例 Bicep 输出(核心 Web 应用资源):
@description('The environment name')
param environment string = 'dev'
@description('The Azure region for resources')
param location string = resourceGroup().location
@description('The application name')
param appName string = 'myapp'
// App Service Plan
resource appServicePlan 'Microsoft.Web/serverfarms@2023-01-01' = {
name: '${environment}-${appName}-plan'
location: location
sku: {
name: 'P1v3'
tier: 'PremiumV3'
capacity: 1
}
properties: {
reserved: true // Linux
}
}
// App Service
resource appService 'Microsoft.Web/sites@2023-01-01' = {
name: '${environment}-${appName}-web'
location: location
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
siteConfig: {
linuxFxVersion: 'NODE|20-lts'
minTlsVersion: '1.2'
ftpsState: 'Disabled'
alwaysOn: true
}
}
identity: {
type: 'SystemAssigned'
}
}
// Azure SQL Database
resource sqlServer 'Microsoft.Sql/servers@2023-05-01-preview' = {
name: '${environment}-${appName}-sql'
location: location
properties: {
administrators: {
azureADOnlyAuthentication: true
}
minimalTlsVersion: '1.2'
}
}
resource sqlDatabase 'Microsoft.Sql/servers/databases@2023-05-01-preview' = {
parent: sqlServer
name: '${appName}-db'
location: location
sku: {
name: 'GP_S_Gen5_2'
tier: 'GeneralPurpose'
}
properties: {
autoPauseDelay: 60
minCapacity: json('0.5')
}
}
包含 Front Door、Key Vault、托管标识和监控的完整模板由
bicep_generator.py生成,也可在references/architecture_patterns.md中找到。
Bicep 是 Azure 推荐的 IaC 语言。 优先使用 Bicep 而非 ARM JSON 模板:Bicep 会编译为 ARM JSON,语法更简洁,支持模块,并且是 Microsoft 官方支持的一方语言。
步骤 4:审查成本
分析预估成本和优化机会:
python scripts/cost_optimizer.py \
--config current_resources.json \
--json
示例输出:
{
"current_monthly_usd": 2000,
"recommendations": [
{ "action": "Right-size SQL Database GP_S_Gen5_8 to GP_S_Gen5_2", "savings_usd": 380, "priority": "high" },
{ "action": "Purchase 1-year Reserved Instances for AKS node pools", "savings_usd": 290, "priority": "high" },
{ "action": "Move Blob Storage to Cool tier for objects >30 days old", "savings_usd": 65, "priority": "medium" }
],
"total_potential_savings_usd": 735
}
输出内容包括:
- 按服务划分的月度成本明细
- 资源规格调整建议
- 预留实例和 Savings Plan 机会
- 潜在的月度节省金额
步骤 5:配置 CI/CD
使用 Azure 设置 Azure DevOps Pipelines 或 GitHub Actions:
# GitHub Actions — deploy Bicep to Azure
name: Deploy Infrastructure
on:
push:
branches: [main]
permissions:
id-token: write
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.AZURE_TENANT_ID }}
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- uses: azure/arm-deploy@v2
with:
resourceGroupName: rg-myapp-dev
template: ./infra/main.bicep
parameters: environment=dev
# Azure DevOps Pipeline
trigger:
branches:
include:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- task: AzureCLI@2
inputs:
azureSubscription: 'MyServiceConnection'
scriptType: 'bash'
scriptLocation: 'inlineScript'
inlineScript: |
az deployment group create \
--resource-group rg-myapp-dev \
--template-file infra/main.bicep \
--parameters environment=dev
步骤 6:安全审查
在投入生产前验证安全状况:
- 身份:使用 Entra ID(Azure AD)与 RBAC,服务间身份验证使用托管标识,切勿在代码中存储凭据
- 机密:所有机密、证书和连接字符串均存放在 Key Vault 中
- 网络:所有子网均配置 NSG,PaaS 服务使用专用终结点,应用程序网关启用 WAF
- 加密:传输中使用 TLS 1.2+,静态数据使用 Azure 托管密钥或客户管理密钥
- 监控:启用 Microsoft Defender for Cloud,使用 Azure Policy 实施防护规则
- 合规:为 SOC 2 / HIPAA / ISO 27001 计划分配 Azure Policy
如果部署失败:
- 检查部署状态:
az deployment group show \ --resource-group rg-myapp-dev \ --name main \ --query 'properties.error' - 查看活动日志,排查 RBAC 或策略错误。
- 部署前验证 Bicep 模板:
az bicep build --file main.bicep az deployment group validate \ --resource-group rg-myapp-dev \ --template-file main.bicep
常见失败原因:
- RBAC 权限错误:确认部署主体在资源组上具有参与者(Contributor)角色
- 资源提供程序未注册:运行
az provider register --namespace Microsoft.Web - 命名冲突:Azure 资源名称通常是全局唯一的(如存储账户、Web 应用)
- 配额超限:通过 Azure 门户 > 订阅 > 使用情况 + 配额申请提高配额
工具
architecture_designer.py
根据需求生成架构模式推荐。
python scripts/architecture_designer.py \
--app-type web_app \
--users 50000 \
--requirements '{"budget_monthly_usd": 1000, "compliance": ["HIPAA"]}' \
--json
输入: 应用类型、预期用户数、JSON 格式需求 输出: 推荐模式、服务堆栈、成本估算、优缺点
cost_optimizer.py
分析 Azure 资源配置以发现节省成本的机会。
python scripts/cost_optimizer.py --config resources.json --json
输入: 包含当前 Azure 资源清单的 JSON 文件 输出: 以下方面的建议:
- 删除闲置资源
- 虚拟机和数据库的规格调整
- 预留实例购买
- 存储层级转换
- 未使用的公共 IP 和负载均衡器
bicep_generator.py
根据架构类型生成 Bicep 模板脚手架。
python scripts/bicep_generator.py --arch-type microservices --output main.bicep
输出: 可用于生产环境的 Bicep 模板,包含:
- 托管标识(无需密码)
- Key Vault 集成
- 面向 Azure Monitor 的诊断设置
- 网络安全组
- 用于成本分摊的标签
快速开始
Web 应用架构(< $100/月)
Ask: "Design an Azure web app for a startup with 5000 users"
Result:
- App Service (B1 Linux) for the application
- Azure SQL Serverless for relational data
- Azure Blob Storage for static assets
- Front Door (free tier) for CDN and routing
- Key Vault for secrets
- Estimated: $40-80/month
AKS 上的微服务($500-2000/月)
Ask: "Design a microservices architecture on Azure for a SaaS platform with 50k users"
Result:
- AKS cluster with 3 node pools (system, app, jobs)
- API Management for gateway and rate limiting
- Cosmos DB for multi-model data
- Service Bus for async messaging
- Azure Monitor + Application Insights for observability
- Multi-zone deployment
无服务器事件驱动(< $200/月)
Ask: "Design an event-driven backend for processing orders"
Result:
- Azure Functions (Consumption plan) for compute
- Event Grid for event routing
- Service Bus for reliable messaging
- Cosmos DB for order data
- Application Insights for monitoring
- Estimated: $30-150/month depending on volume
数据管道($300-1500/月)
Ask: "Design a data pipeline for ingesting 10M events/day"
Result:
- Event Hubs for ingestion
- Stream Analytics or Functions for processing
- Data Lake Storage Gen2 for raw data
- Synapse Analytics for warehouse
- Power BI for dashboards
输入要求
提供以下信息以进行架构设计:
| 要求 | 说明 | 示例 |
|---|---|---|
| 应用类型 | 你要构建的内容 | SaaS 平台、移动端后端 |
| 预期规模 | 用户数、每秒请求数 | 1 万用户、100 RPS |
| 预算 | 每月 Azure 上限 | 每月最多 $500 |
| 团队情况 | 规模、Azure 经验 | 3 名开发人员,中级水平 |
| 合规要求 | 监管需求 | HIPAA、GDPR、SOC 2 |
| 可用性 | 正常运行时间要求 | 99.9% SLA、1 小时 RPO |
JSON 格式:
{
"application_type": "saas_platform",
"expected_users": 10000,
"requests_per_second": 100,
"budget_monthly_usd": 500,
"team_size": 3,
"azure_experience": "intermediate",
"compliance": ["SOC2"],
"availability_sla": "99.9%"
}
反模式
| 反模式 | 失败原因 | 应改为 |
|---|---|---|
| 新项目使用 ARM JSON 模板 | 冗长、难以阅读、不支持模块 | 使用 Bicep——编译为 ARM,语法更简洁 |
| 在应用设置中存储机密 | 机密在门户中可见,无法轮换 | 在应用设置中使用 Key Vault 引用 |
| 单一大型 AKS 节点池 | 无法针对不同工作负载进行优化 | 使用多个节点池:系统、应用、作业 |
| 为 PaaS 服务开放公共端点 | 攻击面暴露 | 使用专用终结点 + VNet 集成 |
| “以防万一”过度配置 | 第一个月就浪费预算 | 从小规模开始,使用自动缩放,每月调整规格 |
| 所有资源共用一个资源组 | 爆炸半径大,RBAC 管理混乱 | 每个环境、每个工作负载使用一个资源组 |
| 没有标签策略 | 无法跟踪成本或归属 | 标签:environment、owner、cost-center、app-name |
| 使用经典资源 | 已弃用,功能受限 | 专门使用 ARM/Bicep 资源 |
输出格式
架构设计
- 带理由的模式推荐
- 服务栈示意图(ASCII)
- 每月成本估算和权衡取舍
IaC 模板
- Bicep:推荐——第一方支持、支持模块、语法简洁
- ARM JSON:需要时由 Bicep 生成
- Terraform HCL:使用 azurerm 提供程序,兼容多云
成本分析
- 当前支出明细及优化建议
- 优先级行动列表(高/中/低)和实施检查清单
交叉引用
| 技能 | 关系 |
|---|---|
engineering-team/aws-solution-architect | AWS 对应技能——相同的 6 步工作流,服务不同 |
engineering-team/gcp-cloud-architect | GCP 对应技能——补全云端三足鼎立 |
engineering-team/senior-devops | 更广泛的 DevOps 范围——流水线、监控、容器化 |
engineering/terraform-patterns | IaC 实现——用于面向 Azure 的 Terraform 模块 |
engineering/ci-cd-pipeline-builder | 流水线构建——自动化 Azure DevOps 和 GitHub Actions |
参考文档
| 文档 | 内容 |
|---|---|
references/architecture_patterns.md | 5 种模式:Web 应用、微服务/AKS、无服务器、数据管道、多区域 |
references/service_selection.md | 计算、数据库、存储、消息传递、网络的决策矩阵 |
references/best_practices.md | 命名约定、标签、RBAC、网络安全、监控、灾难恢复 |