mcpField
A
azure-cloud-architect

azure-cloud-architect

github.com/alirezarezvani云与 DevOps28.9k609 次安装2 天前更新
代码仓库

关于 azure-cloud-architect

Azure Cloud Architect 面向设计 Azure 系统的团队,涵盖架构选择、成本分析与安全审查。它根据项目需求推荐架构模式并生成基础设施模板,主要使用 Bicep。

主要功能

  1. 01按需求推荐架构模式
  2. 02生成 Bicep 模板框架
  3. 03优化 Azure 资源成本
  4. 04提供 CI/CD 与安全指导

适用场景

  1. 01为新的 Azure 应用选择架构
  2. 02为选定设计生成基础设施模板
  3. 03分析资源清单并寻找节省成本的方案
  4. 04准备部署与安全检查

安装

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

$npx skills add https://github.com/alirezarezvani/claude-skills --skill azure-cloud-architect

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

包含的文件

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

references/
architecture_patterns.md
best_practices.md
service_selection.md
scripts/
architecture_designer.py
bicep_generator.py
cost_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

如果部署失败:

  1. 检查部署状态:
    az deployment group show \
      --resource-group rg-myapp-dev \
      --name main \
      --query 'properties.error'
    
  2. 查看活动日志,排查 RBAC 或策略错误。
  3. 部署前验证 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-architectAWS 对应技能——相同的 6 步工作流,服务不同
engineering-team/gcp-cloud-architectGCP 对应技能——补全云端三足鼎立
engineering-team/senior-devops更广泛的 DevOps 范围——流水线、监控、容器化
engineering/terraform-patternsIaC 实现——用于面向 Azure 的 Terraform 模块
engineering/ci-cd-pipeline-builder流水线构建——自动化 Azure DevOps 和 GitHub Actions

参考文档

文档内容
references/architecture_patterns.md5 种模式:Web 应用、微服务/AKS、无服务器、数据管道、多区域
references/service_selection.md计算、数据库、存储、消息传递、网络的决策矩阵
references/best_practices.md命名约定、标签、RBAC、网络安全、监控、灾难恢复

评论

支持 Markdown