第一章:MCP AZ-104 考试模拟题及解析
虚拟机规模集自动扩展策略配置
在Azure中,虚拟机规模集(VM Scale Sets)支持基于指标的自动扩展。以下示例展示如何通过Azure CLI配置基于CPU使用率的自动扩展规则。
# 创建自动扩展规则:当平均CPU使用率超过70%时,增加实例数量
az monitor autoscale create \
--resource-group myResourceGroup \
--resource-name myScaleSet \
--resource-type Microsoft.Compute/virtualMachineScaleSets \
--min-count 2 \
--max-count 10 \
--count 2
az monitor autoscale rule create \
--resource-group myResourceGroup \
--autoscale-name myScaleSet \
--condition "Percentage CPU > 70 avg 5m" \
--scale out 2
上述命令首先创建一个自动扩展配置,设定最小2个实例、最大10个,并初始部署2个。随后添加触发条件:每5分钟检测一次CPU使用率,若平均值超过70%,则增加2个实例。
常见考试知识点归纳
- 理解Azure资源组与资源锁的作用范围
- 掌握虚拟网络子网划分与NSG规则优先级
- 熟悉Azure Backup服务中的恢复点策略配置
- 能够识别不同类型的公共IP地址分配方式(静态/动态)
典型多选题示例对比表
| 问题描述 | 正确选项 | 错误选项 |
|---|
| 哪些组件可用于实现跨区域高可用? | Traffic Manager, Availability Zones | Network Security Group, Azure Firewall |
| 哪种身份验证方式适用于混合环境? | Azure AD Connect, PHS | Managed Identity, SAS Token |
第二章:核心管理任务与资源部署
2.1 理解Azure资源组与订阅管理机制
Azure中的订阅是资源管理和计费的核心边界,每个订阅都包含一组可配额控制的资源。资源组则是同一订阅下相关资源的逻辑容器,便于统一生命周期管理和访问控制。
资源组的作用与最佳实践
资源组支持按业务功能或环境(如开发、生产)组织资源。删除资源组会级联删除其包含的所有资源,因此命名和权限策略需谨慎设计。
通过CLI管理资源组
# 创建资源组
az group create --name myRG --location eastus
# 查看资源组详情
az group show --name myRG
上述命令使用Azure CLI创建位于美国东部的资源组。参数
--name指定唯一名称,
--location定义资源组元数据的存储区域。
- 一个订阅可包含多个资源组
- 资源可在组间移动,但不能跨订阅直接移动
- 每个资源必须属于一个资源组
2.2 使用ARM模板实现基础设施即代码
ARM(Azure Resource Manager)模板是JSON格式的声明式文件,用于在Azure中定义和部署基础设施资源。通过将资源配置写入代码,团队可实现环境的一致性与可重复性。
模板结构解析
一个典型的ARM模板包含参数、变量、资源、输出等核心部分:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"metadata": {
"description": "Name of the storage account"
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[parameters('storageAccountName')]",
"location": "[resourceGroup().location]",
"sku": { "name": "Standard_LRS" },
"kind": "StorageV2"
}
]
}
上述代码定义了一个存储账户资源,
parameters允许外部传入配置值,
resources块声明实际要部署的资源,
apiVersion确保使用稳定的REST API版本。
优势与实践建议
- 支持版本控制,便于CI/CD集成
- 通过参数化实现多环境部署
- 结合Azure DevOps或GitHub Actions实现自动化发布
2.3 通过Azure CLI与PowerShell批量管理资源
在大规模云环境中,手动管理资源效率低下。Azure CLI 和 PowerShell 提供了强大的脚本能力,支持自动化批量操作。
常用命令对比
| 操作 | Azure CLI | PowerShell |
|---|
| 列出资源组 | az group list | Get-AzResourceGroup |
| 创建资源组 | az group create --name myRG --location eastus | New-AzResourceGroup -Name myRG -Location "East US" |
批量删除资源示例
# 删除名称包含test的资源组
Get-AzResourceGroup | Where-Object {$_.ResourceGroupName -like "*test*"} | Remove-AzResourceGroup -Force
该脚本通过管道筛选出符合条件的资源组,并强制删除,适用于清理测试环境。其中
-like "*test*" 实现模糊匹配,
-Force 参数避免交互确认。
利用循环结构可进一步实现对虚拟机、存储账户等资源的批量处理,显著提升运维效率。
2.4 配置与管理虚拟机规模集(VM Scale Sets)
虚拟机规模集(VM Scale Sets)是Azure中实现应用横向扩展的核心服务,支持自动伸缩和统一管理成百上千台虚拟机实例。
创建规模集
通过Azure CLI可快速部署规模集:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image Ubuntu2204 \
--instance-count 2 \
--admin-username azureuser \
--generate-ssh-keys
上述命令创建包含两台Ubuntu虚拟机的规模集,使用SSH密钥认证。参数
--instance-count指定初始实例数量,便于后续根据负载自动调整。
自动伸缩策略
可基于CPU使用率配置自动伸缩规则:
- 当平均CPU使用率连续5分钟超过70%,增加实例数
- 当低于30%时,减少实例以节省成本
该机制确保资源弹性响应流量变化,提升系统可用性与经济性。
2.5 实战演练:跨区域高可用架构部署
在构建跨区域高可用系统时,核心目标是实现故障隔离与数据一致性。通过多区域部署应用实例,并结合全局负载均衡器调度流量,可有效避免单点故障。
数据同步机制
采用异步复制方式在主备区域间同步数据,保障最终一致性。以下为基于消息队列的数据变更传播示例:
// 发送数据变更事件到跨区域消息通道
func publishChange(event ChangeEvent) error {
payload, _ := json.Marshal(event)
return producer.Publish("region-sync-topic", payload) // 推送至Kafka
}
该函数将本地数据变更封装为事件,发送至跨区域共享的消息中间件,由对端消费者执行相应更新操作。
部署拓扑结构
- 主区域(us-east):承载读写流量
- 备用区域(eu-west):热备待切,运行只读副本
- 全局DNS:基于延迟和健康状态路由请求
| 区域 | 实例数量 | 角色 |
|---|
| us-east | 6 | Primary |
| eu-west | 4 | Secondary |
第三章:网络与安全服务配置
3.1 深入理解虚拟网络设计与子网划分
在构建现代云基础设施时,虚拟网络设计是确保系统可扩展性与安全性的核心环节。合理的子网划分不仅能优化流量路径,还能提升资源隔离能力。
子网划分的基本原则
子网应根据业务功能进行逻辑分离,常见策略包括:
- 按环境划分:开发、测试、生产各自独立子网
- 按层级划分:前端Web层、应用层、数据库层分别置于不同子网
- 按安全等级设定网络访问控制策略(NACL、Security Group)
CIDR与子网掩码示例
以
10.0.0.0/24为例,该网段支持256个IP地址(实际可用254个),适合中等规模部署。更精细的划分如:
# 划分四个子网,每个容纳约60台主机
ip: 10.0.1.0/26 # Web Tier
ip: 10.0.1.64/26 # App Tier
ip: 10.0.1.128/27 # DB Tier (32 addresses)
ip: 10.0.1.160/27 # Management
上述结构通过CIDR实现地址高效利用,/26表示前26位为网络位,剩余6位用于主机寻址。
路由与连通性管理
| 子网名称 | CIDR | 关联路由表 | 是否公网访问 |
|---|
| Public-Web | 10.0.1.0/26 | rtb-public | 是(经NAT) |
| Private-DB | 10.0.1.128/27 | rtb-private | 否 |
3.2 配置网络安全组与Azure防火墙策略
在Azure环境中,网络安全组(NSG)和Azure防火墙共同构建分层防护体系。NSG负责子网或网络接口级别的流量过滤,而Azure防火墙提供集中化、高级别的出站管控能力。
网络安全组规则配置
NSG规则按优先级顺序评估,支持允许/拒绝入站与出站流量。以下为典型规则示例:
{
"name": "Allow-HTTP",
"priority": 100,
"direction": "Inbound",
"access": "Allow",
"protocol": "Tcp",
"sourcePortRange": "*",
"destinationPortRange": "80",
"sourceAddressPrefix": "Internet",
"destinationAddressPrefix": "10.0.1.0/24"
}
该规则允许来自互联网的HTTP流量访问Web子网。优先级100确保其早于高数值规则生效,
*表示任意源端口,目标地址前缀限定内部子网范围。
Azure防火墙策略集成
通过防火墙策略可统一管理多个防火墙实例的规则。常使用网络规则集合控制协议级访问,应用规则集合则基于FQDN过滤出站请求。
3.3 实现本地到云的VPN与ExpressRoute连接
在混合云架构中,安全可靠的网络连接是关键。Azure 提供两种主流方式实现本地数据中心与云环境的互联:站点到站点 VPN 和 Azure ExpressRoute。
VPN 连接配置示例
# 创建虚拟网络网关(PowerShell 示例)
New-AzVirtualNetworkGateway -Name vnet-gw1 `
-ResourceGroupName rg-hybrid `
-Location "East US" `
-IpConfigurations $gwipconfig `
-GatewayType Vpn `
-VpnType RouteBased `
-Sku VpnGw1
该命令创建基于路由的 VPN 网关,使用 VpnGw1 SKU 支持高吞吐量场景。参数
VpnType RouteBased 允许动态路由和多站点连接,适用于复杂拓扑。
ExpressRoute 核心优势
- 通过专用光纤连接,绕过公共互联网,提升安全性
- 提供高达 100 Gbps 的带宽选项
- 支持 SLA 高达 99.95%
相比传统 VPN,ExpressRoute 更适合对延迟敏感、数据密集型的应用场景。
第四章:身份、存储与监控管理
4.1 基于Azure AD的角色权限控制(RBAC)实践
在Azure环境中,基于Azure Active Directory的RBAC机制是实现最小权限原则的核心手段。通过将用户、组或服务主体分配到预定义或自定义角色,可精确控制对Azure资源的访问。
内置角色与作用域划分
Azure提供如“读者”、“贡献者”、“所有者”等内置角色,适用于常见场景:
- 读者:仅查看资源
- 贡献者:可创建和管理资源,但无法授权他人
- 所有者:拥有完全控制权,包括RBAC权限分配
自定义角色示例
当内置角色不满足需求时,可通过JSON定义自定义角色:
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Permissions": [{
"Actions": [
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action"
],
"DataActions": []
}],
"AssignableScopes": ["/subscriptions/your-sub-id"]
}
该配置允许用户启动和重启虚拟机,但禁止删除或创建实例,体现了最小权限设计。
权限分配最佳实践
建议使用组而非个人分配角色,并结合条件访问策略增强安全性。
4.2 存储账户类型选择与数据冗余策略应用
在Azure存储架构中,合理选择存储账户类型是保障性能与成本平衡的关键。通用v2(General Purpose v2)账户适用于大多数场景,支持Blob、文件、队列和表存储,并提供最低的每GB存储成本。
主要存储账户类型对比
- General Purpose v2:推荐用于新部署,支持所有存储服务和高级特性。
- BlockBlobStorage:适用于高频访问的块Blob,提供高性能SLA。
- PageBlobStorage:专为虚拟机磁盘(VHD)设计,支持高IOPS场景。
数据冗余策略配置
Azure提供多种冗余选项以应对不同容灾需求:
| 冗余类型 | 跨区域复制 | 适用场景 |
|---|
| LRS | 否 | 本地故障容错,成本敏感型应用 |
| GRS | 是 | 需跨区域恢复能力的关键业务 |
{
"name": "mystorageaccount",
"sku": {
"name": "Standard_GRS"
},
"kind": "StorageV2",
"location": "eastus"
}
上述ARM模板片段定义了一个启用地理冗余(GRS)的通用v2存储账户。其中
sku.name指定冗余级别,
kind决定功能集,确保数据在主区域和次要区域间异步复制,提升持久性至99.999999999%。
4.3 Blob存储生命周期管理与访问层优化
生命周期策略配置
通过定义生命周期管理策略,可自动将Blob数据在不同访问层(热、冷、归档)间转移,降低存储成本。策略基于最后修改时间触发规则。
{
"rules": [
{
"name": "move-to-archive",
"enabled": true,
"type": "Lifecycle",
"definition": {
"filters": {
"blobTypes": ["blockBlob"],
"prefixMatch": ["logs/"]
},
"actions": {
"baseBlob": {
"tierToArchive": { "daysAfterModificationGreaterThan": 90 }
}
}
}
}
]
}
该策略表示:对容器中以 `logs/` 开头的块Blob,若修改后超过90天未访问,则自动转为归档层,节省长期存储费用。
访问层性能与成本权衡
- 热层:高频访问,低访问成本,高存储费用
- 冷层:偶发访问,适中成本,适合备份数据
- 归档层:极少访问,最低存储成本,需解冻后方可读取
4.4 利用Azure Monitor与Log Analytics进行故障排查
Azure Monitor 与 Log Analytics 是 Azure 平台中核心的监控与诊断工具,能够集中收集虚拟机、应用服务及容器等资源的性能指标和日志数据。
查询示例:分析Web应用异常请求
// 查询过去6小时内HTTP 500错误
requests
| where resultCode == "500"
| where timestamp > ago(6h)
| summarize count() by bin(timestamp, 1h), cloud_RoleName
| render timechart
该 Kusto 查询语句用于检索应用实例中每小时发生的服务器错误次数。其中
requests 是Log Analytics中存储HTTP请求的表;
resultCode == "500" 筛选服务器错误;
summarize count() by bin(timestamp, 1h) 按小时分组统计,便于识别故障高峰时段。
关键优势
- 实时采集跨资源遥测数据
- 支持自定义告警规则触发自动化响应
- 通过统一查询语言(KQL)实现复杂分析逻辑
第五章:总结与展望
云原生架构的持续演进
现代企业正在加速向云原生转型,Kubernetes 已成为容器编排的事实标准。实际案例显示,某金融企业在迁移核心交易系统至 K8s 后,资源利用率提升 40%,部署效率提高 70%。其关键在于采用声明式配置与自动化运维策略。
- 服务网格(Istio)实现细粒度流量控制
- GitOps 模式保障部署一致性
- 多集群联邦管理跨区域容灾
可观测性体系构建实践
完整的可观测性需覆盖指标、日志与追踪三大支柱。以下为 Prometheus 抓取自微服务的典型监控配置:
scrape_configs:
- job_name: 'payment-service'
metrics_path: '/actuator/prometheus'
static_configs:
- targets: ['payment-svc:8080']
relabel_configs:
- source_labels: [__address__]
target_label: instance
安全左移的实际落地
在 CI 流程中集成静态代码扫描与镜像漏洞检测可显著降低生产风险。某电商平台通过在 Jenkins Pipeline 中嵌入 Trivy 扫描,成功拦截 12 起高危漏洞发布。
| 工具 | 用途 | 集成阶段 |
|---|
| Checkmarx | SAST 代码审计 | 开发提交后 |
| Trivy | 容器镜像扫描 | 镜像构建后 |
[开发者] → (代码提交) → [CI/CD] → (单元测试) → [SAST] → (构建镜像) → [DAST] → [生产环境]