1. Azure虚拟化计算平台总览

Azure 的虚拟化计算平台并不是单一产品,而是一组从物理主机、虚拟化层、虚拟机规格、托管计算服务到平台级高可用能力的组合。理解这套平台,关键不是记住服务名称,而是先建立一条判断主线:哪些能力由你负责,哪些能力由 Azure 负责。这条主线决定了 IaaS 与 PaaS 的边界,也决定了后续高可用业务平台工程的设计方式。

一、IaaS 与 PaaS 的边界:责任划分决定架构选择

在 Azure 中,IaaS 的典型代表是虚拟机(Virtual Machine, VM)与虚拟机规模集(VMSS)。你获得的是操作系统及以上的控制权:可以安装运行时、配置中间件、调整内核参数、部署代理、定义磁盘与网络。Azure 负责物理主机、虚拟化层、宿主机网络与底层存储的可用性。PaaS 的典型代表是 Azure App Service、Azure Functions、Azure Container Apps、Azure Kubernetes Service(AKS 的控制面)等。你交付的是应用包、容器镜像或函数代码,平台负责操作系统补丁、运行时版本、实例调度、负载均衡与部分伸缩能力。

边界并不是“谁更高级”,而是控制权与运维责任的交换。例如,同样运行一个 Web API:

  • 用 VM 部署:你需要自己处理 OS 补丁、IIS/Nginx 配置、证书轮换、实例健康检查、跨可用区部署与负载均衡后端池。
  • 用 App Service 部署:你只需提供代码或容器,平台处理实例健康、TLS 终止、自动缩放规则触发后的实例增减;但你不能修改底层 OS 内核,也不能随意安装系统级驱动。
  • 用 AKS 部署:控制面由 Azure 托管,节点池仍属于你管理的计算资源;你获得容器编排能力,同时承担节点镜像升级、Pod 资源请求与限制、网络插件选择等责任。

因此,选择 IaaS 还是 PaaS,应先回答三个问题:是否需要操作系统级控制?是否愿意承担补丁与运行时升级?高可用目标是否要求跨区域主动-主动?如果答案偏向“需要控制且能承担运维”,IaaS 更合适;如果偏向“快速交付且接受平台约束”,PaaS 更合适。

二、计算资源谱系:从单台 VM 到平台级计算

Azure 计算资源可以按“抽象层级”和“伸缩单位”两个维度理解。抽象层级从低到高大致为:物理主机 → 虚拟机 → 虚拟机规模集 → 容器实例/容器应用 → 托管应用平台 → 无服务器函数。伸缩单位则从“单实例”逐步变为“实例组”“副本集”“事件驱动实例”。

在 VM 层面,规格族决定了资源画像:B 系列适合突发型轻负载,D 系列适合通用计算,E 系列适合内存密集型,F 系列适合计算密集型,N 系列带 GPU。选择规格时不能只看 vCPU 和内存,还要看磁盘吞吐上限、网络带宽、临时盘类型、是否支持 Premium SSD、是否支持加速网络。例如,一个日志聚合服务需要高网络吞吐和稳定磁盘 IO,若只按 vCPU 数量选型,可能在高峰期出现网络或磁盘瓶颈。

在平台层面,AKS 把计算资源组织为节点池,Pod 是调度单位;App Service 把计算资源组织为应用服务计划,实例是伸缩单位;Functions 把计算资源组织为消费计划或 Premium 计划,执行单元是函数调用。理解这些“伸缩单位”的差异,才能正确设置高可用与容量策略。

Azure 虚拟化计算平台:控制权谱系与高可用工程主线 IaaS:你控制 OS 及以上 虚拟机 VM 单实例 · 手动/自动伸缩 虚拟机规模集 VMSS 同构实例组 · 自动缩放 可用性集 / 可用区 故障域与更新域隔离 负载均衡 / 应用网关 流量分发与健康探测 磁盘 / 网络 / 扩展 Premium SSD · 加速网络 PaaS:平台托管运行时 App Service Web 应用 · 部署槽 · 自动缩放 Azure Functions 事件驱动 · 消费/Premium 计划 Container Apps 容器 · KEDA 伸缩 · 入口 AKS(控制面托管) 节点池 · Pod 调度 · 服务发现 平台级高可用能力 区域冗余 · 健康检查 · 滚动升级 高可用平台工程路线 1. 定义 SLA 与 RTO/RPO 业务目标驱动技术选型 2. 选择计算抽象层级 IaaS / PaaS / 混合边界 3. 设计冗余与故障域 可用区 · 区域对 · 多活 4. 容量与伸缩策略 指标驱动 · 预留缓冲 5. 可观测与演练 指标 · 日志 · 故障注入 抽象 上移 工程 落地 控制权越靠左,运维责任越大;越靠右,平台托管越多,但约束也越强。

三、高可用业务平台工程的整体架构

高可用不是“多开一台 VM”,而是从业务目标反推技术设计。一个可落地的高可用平台通常包含五层:接入层、计算层、数据层、平台服务层、运维层。接入层负责流量分发与 TLS 终止,常见组合是 Application Gateway 或 Front Door 加 WAF;计算层承载业务进程,可以是 VMSS、App Service 实例或 AKS Pod;数据层决定持久化与复制策略,如 Azure SQL 的异地复制、Storage 的 LRS/ZRS/GRS;平台服务层提供密钥、配置、消息与缓存;运维层负责监控、告警、备份与演练。

以“订单查询 API”为例,假设业务要求 RTO ≤ 15 分钟、RPO ≤ 5 分钟。若选择 VMSS + Azure SQL,则需要在两个可用区部署 VMSS 实例,SQL 使用区域冗余配置并开启自动故障转移;若选择 App Service + Azure SQL,则 App Service 计划至少三实例并开启区域冗余,SQL 同样区域冗余。两种方案都能满足目标,但前者需要你维护 OS 补丁与实例健康脚本,后者由平台处理实例健康与部分升级。这里的关键判断依据是:团队是否具备持续维护 OS 与中间件的能力。

四、学习路线:从资源认知到平台工程

本课程后续内容将沿着“资源 → 可用性 → 伸缩 → 网络 → 数据 → 自动化 → 可观测 → 容灾”的路径展开。建议的学习顺序是:

  1. 先掌握 VM、VMSS、可用区、可用性集的基本概念与选型方法,能独立完成一台 VM 的规格选择与磁盘配置。
  2. 再理解负载均衡、Application Gateway、Front Door 的流量路径与健康探测机制,能画出请求从客户端到后端的完整链路。
  3. 然后进入 AKS 与 App Service 的托管计算模型,理解 Pod、节点池、部署槽、自动缩放规则的实际行为。
  4. 接着学习数据层高可用:Azure SQL 的故障转移组、Storage 的冗余选项、Cosmos DB 的多区域写入。
  5. 最后把监控、备份、IaC 与故障演练串起来,形成可复现的高可用平台工程闭环。
学习建议:每学一个计算服务,都问自己三个问题——它的伸缩单位是什么?它的故障域是什么?它的健康判断依据是什么?这三个问题能帮你快速定位高可用设计的薄弱点。

总结来说,Azure 虚拟化计算平台的核心不是“选哪个服务”,而是“在控制权、运维成本与可用性目标之间找到平衡”。IaaS 给你更大的控制面,PaaS 给你更快的交付速度;计算资源谱系决定了你的伸缩与故障隔离粒度;高可用平台工程则要求你把 SLA、RTO/RPO、冗余设计、容量策略与可观测能力串成一条可验证的链路。掌握这条主线,后续每一章的具体技术才有落点。