mcpField
A
azure-well-architected-framework

azure-well-architected-framework

github.com/josiahsiegel云与 DevOps59171 次安装19 周前更新
代码仓库

关于 azure-well-architected-framework

面向架构师和工程师的参考技能,介绍如何应用 Azure Well-Architected Framework。内容围绕五大支柱组织设计建议,并提供评估步骤和 Azure 示例。

主要功能

  1. 01覆盖五大架构支柱的指导
  2. 02可靠性与灾难恢复实践
  3. 03安全与访问控制建议
  4. 04成本和性能优化建议
  5. 05评估与实施清单

适用场景

  1. 01审查 Azure 解决方案架构
  2. 02规划恢复与可用性措施
  3. 03寻找安全和成本改进点

安装

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

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill azure-well-architected-framework

安装后在 Claude Code 中输入/azure-well-architected-framework确认已加载。

详细介绍

Azure Well-Architected Framework

Azure Well-Architected Framework 是一套用于构建高质量云解决方案的指导原则,由五大架构卓越支柱组成。

概述

目的:帮助架构师和工程师为应用构建安全、高性能、弹性且高效的基础设施。

五大支柱:

  1. 可靠性
  2. 安全性
  3. 成本优化
  4. 卓越运营
  5. 性能效率

支柱 1:可靠性

定义:系统从故障中恢复并继续运行的能力。

关键原则:

  • 面向故障进行设计
  • 使用可用性区域和区域
  • 实现冗余
  • 监控故障并做出响应
  • 测试灾难恢复

最佳实践:

可用性区域:

# Deploy VM across availability zones
az vm create \
  --resource-group MyRG \
  --name MyVM \
  --zone 1 \
  --image Ubuntu2204 \
  --size Standard_D2s_v3

# Availability SLAs:
# - Single VM (Premium SSD): 99.9%
# - Availability Set: 99.95%
# - Availability Zones: 99.99%

备份和灾难恢复:

# Enable Azure Backup
az backup protection enable-for-vm \
  --resource-group MyRG \
  --vault-name MyVault \
  --vm MyVM \
  --policy-name DefaultPolicy

# Recovery Point Objective (RPO): How much data loss is acceptable
# Recovery Time Objective (RTO): How long can system be down

运行状况探测:

  • Application Gateway 运行状况探测
  • Load Balancer 探测
  • Traffic Manager 终结点监控

支柱 2:安全性

定义:保护应用和数据免受威胁。

关键原则:

  • 深度防御
  • 最小特权访问
  • 保护网络安全
  • 保护静态和传输中的数据
  • 监控和审计

最佳实践:

身份和访问:

# Use managed identities (no credentials in code)
az vm identity assign \
  --resource-group MyRG \
  --name MyVM

# RBAC assignment
az role assignment create \
  --assignee <principal-id> \
  --role "Contributor" \
  --scope /subscriptions/<subscription-id>/resourceGroups/MyRG

网络安全:

  • 使用网络安全组(NSG)
  • 部署 Azure Firewall 或 Application Gateway WAF
  • 为 PaaS 服务使用专用终结点
  • 为面向公众的应用启用 DDoS Protection Standard

数据保护:

# Enable encryption at rest (automatic for most services)
# Enable TLS 1.2+ for data in transit

# Azure Storage encryption
az storage account update \
  --name mystorageaccount \
  --resource-group MyRG \
  --min-tls-version TLS1_2 \
  --https-only true

安全监控:

# Enable Microsoft Defender for Cloud
az security pricing create \
  --name VirtualMachines \
  --tier Standard

# Enable Azure Sentinel
az sentinel onboard \
  --resource-group MyRG \
  --workspace-name MyWorkspace

支柱 3:成本优化

定义:管理成本,以最大化交付的价值。

关键原则:

  • 规划并估算成本
  • 优化资源配置
  • 使用监控和分析
  • 最大限度提高云支出的效率

最佳实践:

调整资源规模:

# Use Azure Advisor recommendations
az advisor recommendation list \
  --category Cost \
  --output table

# Common optimizations:
# 1. Shutdown dev/test VMs when not in use
# 2. Use Azure Hybrid Benefit for Windows/SQL
# 3. Purchase reservations for consistent workloads
# 4. Use autoscaling to match demand

预留实例:

  • 承诺使用 1 年或 3 年
  • 与按需付费相比,最高可节省 72%
  • 适用于 VM、SQL Database、Cosmos DB、Synapse 和 Storage

Azure 混合权益:

# Apply Windows license to VM
az vm update \
  --resource-group MyRG \
  --name MyVM \
  --license-type Windows_Server

# SQL Server Hybrid Benefit
az sql vm create \
  --resource-group MyRG \
  --name MySQLVM \
  --license-type AHUB

成本管理:

# Create budget
az consumption budget create \
  --budget-name MyBudget \
  --category cost \
  --amount 1000 \
  --time-grain monthly \
  --start-date 2025-01-01 \
  --end-date 2025-12-31

# Set up alerts at 80%, 100%, 120% of budget

支柱 4:卓越运营

定义:确保系统在生产环境中持续运行的运维流程。

关键原则:

  • 自动化运维
  • 监控并获取洞察
  • 改进运维流程
  • 预判故障
  • 及时应用更新

最佳实践:

基础设施即代码:

# Use ARM, Bicep, or Terraform
# Version control all infrastructure
# Implement CI/CD for infrastructure

# Example: Bicep deployment
az deployment group create \
  --resource-group MyRG \
  --template-file main.bicep \
  --parameters @parameters.json

监控和警报:

# Application Insights for apps
az monitor app-insights component create \
  --app MyApp \
  --location eastus \
  --resource-group MyRG

# Log Analytics for infrastructure
az monitor log-analytics workspace create \
  --resource-group MyRG \
  --workspace-name MyWorkspace

# Create alerts
az monitor metrics alert create \
  --name HighCPU \
  --resource-group MyRG \
  --scopes <vm-id> \
  --condition "avg Percentage CPU > 80" \
  --description "CPU usage is above 80%"

DevOps 实践:

  • 持续集成/持续部署(CI/CD)
  • 蓝绿部署
  • 金丝雀发布
  • 功能标志
  • 自动化测试

支柱 5:性能效率

定义:系统适应负载变化的能力。

关键原则:

  • 水平扩展
  • 选择合适的资源
  • 监控性能
  • 优化网络和数据访问

最佳实践:

扩展:

# Horizontal scaling (preferred)
# VM Scale Sets
az vmss create \
  --resource-group MyRG \
  --name MyVMSS \
  --image Ubuntu2204 \
  --instance-count 3 \
  --vm-sku Standard_D2s_v3

# Autoscaling
az monitor autoscale create \
  --resource-group MyRG \
  --resource MyVMSS \
  --resource-type Microsoft.Compute/virtualMachineScaleSets \
  --name MyAutoscale \
  --min-count 2 \
  --max-count 10

缓存:

  • Azure Cache for Redis
  • 用于静态内容的 Azure CDN
  • 应用级缓存

数据访问:

  • 在数据库上使用索引
  • 实施缓存策略
  • 使用 CDN 进行全球内容分发
  • 优化查询(SQL、Cosmos DB)

网络:

# Use Azure Front Door for global apps
az afd profile create \
  --profile-name MyFrontDoor \
  --resource-group MyRG \
  --sku Premium_AzureFrontDoor

# Features:
# - Global load balancing
# - CDN capabilities
# - Web Application Firewall
# - SSL offloading
# - Caching

评估和工具

Azure Well-Architected Review:

# Self-assessment tool in Azure Portal
# Generates recommendations per pillar
# Provides actionable guidance

Azure Advisor:

# Get recommendations
az advisor recommendation list --output table

# Categories:
# - Reliability (High Availability)
# - Security
# - Performance
# - Cost
# - Operational Excellence

实施清单

可靠性:

  • 在多个可用性区域中部署
  • 制定备份策略
  • 定义 RTO 和 RPO
  • 测试灾难恢复
  • 实施运行状况监控

安全性:

  • 启用 Azure AD 身份验证
  • 实施 RBAC(最小权限)
  • 加密静态和传输中的数据
  • 启用 Microsoft Defender for Cloud
  • 实施网络分段(NSG、防火墙)
  • 使用 Key Vault 管理机密

成本优化:

  • 合理调整资源规格
  • 为可预测的工作负载购买预留实例
  • 启用自动缩放
  • 使用 Azure Hybrid Benefit
  • 实施预算警报
  • 查看 Azure Advisor 的成本建议

卓越运营:

  • 实施基础设施即代码
  • 设置 CI/CD 管道
  • 启用全面监控
  • 创建运维手册
  • 实施自动警报
  • 使用标记整理资源

性能效率:

  • 选择合适的资源 SKU
  • 实施自动缩放
  • 使用缓存(Redis、CDN)
  • 优化数据库查询
  • 实施负载均衡
  • 监控性能指标

常见模式

高可用 Web 应用程序:

  • Application Gateway(已启用 WAF)
  • App Service(Premium 层级,多个实例)
  • Azure SQL Database(区域冗余)
  • Azure Cache for Redis
  • Application Insights
  • Azure Front Door(全球分发)

任务关键型应用程序:

  • 多区域部署
  • Traffic Manager 或 Front Door(全局路由)
  • 在每个区域使用可用性区域
  • 地理冗余存储(GRS 或 RA-GRS)
  • 使用地理复制进行自动备份
  • 全面监控和警报

成本优化型开发/测试:

  • 为 VM 启用自动关机
  • B 系列(可突增)VM
  • 开发/测试定价层级
  • 共享 App Service 计划
  • Azure DevTest Labs

参考资料

要点总结

  1. 平衡各支柱:各支柱之间存在权衡(例如,成本与可靠性)
  2. 持续改进:架构并非一成不变,应定期重新审视
  3. 衡量和监控:使用数据指导决策
  4. 自动化:自动执行重复性任务,以提高可靠性并降低成本
  5. 安全优先:将安全性融入架构的每一层

Well-Architected Framework 提供了一种一致的方法,用于评估架构并实施可随时间扩展的设计。

评论

支持 Markdown