Skip to content

云计算基础概念

什么是云计算?云计算的核心特征是什么?

答:云计算是一种通过互联网提供按需计算资源的模式,核心特征包括:

特征说明
按需自助服务用户无需人工交互即可自行配置和使用计算资源
广泛网络访问资源可通过标准网络协议被各种终端设备访问
资源池化多租户模式,物理和虚拟资源按需动态分配
快速弹性资源可以快速弹性伸缩,对用户而言可用资源近乎无限
可计量服务按使用量计费,资源使用可监控、控制和报告

云计算的服务模型有哪些?(面试高频)

答:云计算有三种基本服务模型:

1. IaaS(基础设施即服务)

  • 提供虚拟化计算资源:虚拟机、网络、存储
  • 用户管理:操作系统、中间件、应用、数据
  • 云厂商管理:虚拟化、硬件、网络、数据中心
  • 代表产品:AWS EC2、阿里云 ECS、腾讯云 CVM、OpenStack

2. PaaS(平台即服务)

  • 提供应用开发和部署平台
  • 用户管理:应用代码和数据
  • 云厂商管理:运行时、中间件、OS、虚拟化、硬件
  • 代表产品:Google App Engine、阿里云 SAE、Heroku

3. SaaS(软件即服务)

  • 提供完整的软件应用
  • 用户只管使用,无需管理任何底层
  • 代表产品:Salesforce、钉钉、企业微信、Google Workspace

面试技巧:可以类比理解——IaaS 是租毛坯房(自己装修),PaaS 是租精装房(直接入住),SaaS 是住酒店(拎包入住)。

云计算的部署模式有哪些?

答:

部署模式定义适用场景
公有云第三方云服务商通过互联网向公众提供资源中小企业、弹性需求高的业务、初创公司
私有云为单一组织内部专有使用而构建的云金融、政务、医疗等合规要求高的行业
混合云公有云+私有云的组合,数据和应用在两者间共享核心数据在私有云、弹性部分用公有云
社区云多个具有共同诉求的组织共享的云基础设施特定行业联盟、政府机构合作

公有云与私有云的区别(面试必考)

公有云和私有云的核心区别是什么?

答:这是云计算面试中最高频的基础题,从以下维度对比:

对比维度公有云私有云
所有权第三方云服务商拥有和管理企业自己拥有和管理
访问权限多租户共享,通过互联网公开访问单租户专属,通过内部网络或 VPN 访问
部署位置云服务商的数据中心企业自建数据中心或托管机房
初始成本低(按需付费,无需硬件采购)高(需要采购服务器、网络、存储等硬件)
运营成本按使用量付费(OPEX)硬件折旧+运维人力+电费(CAPEX+OPEX)
弹性扩展极强,几乎无限弹性有限弹性,受限于硬件资源池
安全合规共享安全模型,需满足行业合规认证完全自主控制,满足特定合规要求
运维复杂度低(云厂商负责基础设施运维)高(需要专业运维团队)
定制化受限,只能使用云厂商提供的服务完全可控,可按需深度定制
网络延迟受公网影响,延迟相对较高内网通信,延迟低
典型用户互联网企业、中小企业、初创公司金融、政务、医疗、大型企业

什么是混合云?企业为什么选择混合云?

答:混合云是公有云和私有云的组合,数据和应用程序可以在两者之间共享。

企业选择混合云的核心原因

  1. 安全合规:核心敏感数据放在私有云,非敏感业务放在公有云
  2. 弹性伸缩:业务高峰期使用公有云弹性资源(云爆发),低峰期回归私有云
  3. 成本优化:稳态业务跑在私有云,敏态业务跑在公有云
  4. 灾备:私有云为主,公有云作为灾备站点
  5. 逐步上云:从私有云逐步迁移到公有云的过渡方案

企业真实案例:某金融企业将用户核心交易数据存放在私有云,将前端 Web 服务和数据分析业务部署在公有云,通过专线打通私有云和公有云网络,实现混合云架构。

什么是云爆发(Cloud Bursting)?

答:云爆发是一种混合云架构模式:平时业务运行在私有云上,当业务高峰期私有云资源不足时,自动将溢出的负载弹性扩展到公有云。业务高峰期过后,释放公有云资源,回到私有云运行。

工作流程

正常时期:所有业务在私有云运行
高峰期 → 私有云资源不足 → 自动触发扩容 → 公有云创建资源 → 负载分担
高峰期过后 → 公有云资源自动释放 → 回到全私有云运行

适用场景:电商大促、抢票系统、季节性业务高峰


KVM 虚拟化面试题

什么是 KVM?KVM 与 QEMU 的关系是什么?

答:KVM(Kernel-based Virtual Machine) 是 Linux 内核的虚拟化模块,将 Linux 内核变成一个 Hypervisor(虚拟机监控器)。

KVM 与 QEMU 的关系

  • KVM:提供 CPU 和内存的硬件辅助虚拟化(需要 CPU 支持 VT-x/AMD-V),只负责虚拟化 CPU 和内存
  • QEMU:提供完整的虚拟机模拟(I/O 设备模拟:磁盘、网卡、USB 等),但纯 QEMU 是软件模拟,性能差
  • KVM + QEMU:KVM 负责 CPU/内存加速(硬件虚拟化),QEMU 负责设备模拟,两者配合组成完整的虚拟化方案
虚拟机 → QEMU(I/O设备模拟) → KVM(CPU/内存虚拟化) → Linux 内核 → 硬件

面试一句话总结:KVM 是内核模块提供虚拟化能力,QEMU 是用户态工具提供设备模拟,两者配合使用才能创建和管理虚拟机。

KVM 支持的 CPU 虚拟化技术有哪些?

答:

技术说明
Intel VT-xIntel 的硬件辅助虚拟化技术,提供 VMX 根模式和非根模式
AMD-VAMD 的硬件辅助虚拟化技术,提供 SVM 模式
VT-dI/O 设备直通技术,将物理设备直接分配给虚拟机
SR-IOV单根 I/O 虚拟化,一个物理网卡虚拟出多个 VF 给虚拟机

面试追问:怎么确认服务器支持 KVM 虚拟化?

bash
# 检查 CPU 是否支持虚拟化
grep -E "vmx|svm" /proc/cpuinfo

# 检查 KVM 模块是否加载
lsmod | grep kvm

libvirt 是什么?它和 KVM 有什么关系?

答:libvirt 是一个虚拟化管理 API 和守护进程,提供统一的接口来管理多种 Hypervisor(KVM、Xen、VMware 等)。

  管理工具(virsh/virt-manager)

        libvirt API

    KVM/Xen/QEMU 等 Hypervisor

        硬件层

核心组件

  • libvirtd:运行在宿主机上的守护进程
  • virsh:命令行管理工具
  • virt-manager:图形化管理工具
  • virt-install:命令行创建虚拟机的工具

常用 virsh 命令(面试要会)

bash
virsh list                     # 列出运行中的虚拟机
virsh list --all               # 列出所有虚拟机
virsh start <vm_name>          # 启动虚拟机
virsh shutdown <vm_name>       # 关闭虚拟机
virsh destroy <vm_name>        # 强制关闭虚拟机
virsh define <xml_file>        # 定义虚拟机(从 XML)
virsh undefine <vm_name>        # 删除虚拟机定义
virsh edit <vm_name>           # 编辑虚拟机 XML 配置
virsh dominfo <vm_name>        # 查看虚拟机信息
virsh vcpuinfo <vm_name>       # 查看 vCPU 信息
virsh dommemstat <vm_name>     # 查看内存统计
virsh migrate <vm_name> <dest> # 迁移虚拟机

虚拟机的 XML 配置文件主要包含哪些部分?

答:使用 virsh edit 可以看到虚拟机的完整 XML 配置,关键部分包括:

xml
<domain type='kvm'>
  <name>vm-name</name>            <!-- 虚拟机名称 -->
  <memory unit='GiB'>8</memory>  <!-- 内存大小 -->
  <vcpu>4</vcpu>                  <!-- vCPU 数量 -->
  <os>
    <type arch='x86_64'>hvm</type> <!-- 虚拟机类型 -->
    <boot dev='hd'/>               <!-- 启动设备 -->
  </os>
  <cpu mode='host-passthrough'/>   <!-- CPU 模式 -->
  <features>
    <acpi/><apic/><pae/>          <!-- 高级特性 -->
  </features>
  <devices>
    <disk type='file' device='disk'>  <!-- 磁盘设备 -->
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/vm.qcow2'/>
      <target dev='vda' bus='virtio'/>
    </disk>
    <interface type='bridge'>      <!-- 网络设备 -->
      <source bridge='br0'/>
      <model type='virtio'/>
    </interface>
  </devices>
</domain>

面试重点host-passthrough 模式将物理 CPU 的全部特性透传给虚拟机,适合需要 CPU 特定指令集的场景(如 DPDK、AI 推理)。

KVM 有哪几种网络模式?

答:

网络模式原理适用场景
NAT 模式(默认)虚拟机通过宿主机 NAT 访问外网,宿主机 iptables 转发桌面测试环境
桥接模式(Bridge)虚拟机直接桥接到物理网络,拥有独立 IP生产环境,如 OpenStack 计算节点
隔离模式(Isolated)虚拟机之间可以通信,但不能访问宿主机和外网安全隔离测试
Open vSwitch使用 OVS 虚拟交换机,支持 VLAN/VXLAN/OpenFlow大规模虚拟化环境,OpenStack 集成
MacVTap直接桥接模式,性能高,但宿主机和虚拟机不能通信高性能场景

面试高频题:生产环境中为什么使用桥接模式而不是 NAT 模式? 答:桥接模式下虚拟机直接暴露在物理网络中,拥有独立 IP,可以被其他物理机和外部直接访问;NAT 模式需要端口转发,存在性能和单点问题,不适合生产环境。

KVM 支持哪些存储格式?

答:

格式特点适用场景
raw原始格式,性能最好,占用实际大小高性能数据库场景
qcow2QEMU 写时复制格式,支持快照、压缩、加密推荐格式,绝大多数场景
qed高性能 qcow2 替代品(已弃用)历史兼容
vmdkVMware 格式与 VMware 环境互操作
vhd/vhdxHyper-V 格式与 Hyper-V 环境互操作
bash
# 创建 qcow2 磁盘
qemu-img create -f qcow2 /var/lib/libvirt/images/vm.qcow2 50G

# 查看磁盘信息
qemu-img info /var/lib/libvirt/images/vm.qcow2

# 转换格式
qemu-img convert -f raw -O qcow2 source.raw target.qcow2

# 快照(仅 qcow2 支持)
qemu-img snapshot -c baseline vm.qcow2      # 创建快照
qemu-img snapshot -a baseline vm.qcow2      # 回滚快照
qemu-img snapshot -l vm.qcow2               # 列出快照

什么是 QCOW2 的写时复制(Copy-on-Write)?

答:QCOW2 的核心特性是写时复制:

  1. 创建快照时:只记录原磁盘的变化部分(增量),不复制全量数据
  2. 子镜像引用父镜像:多个虚拟机可以共享同一个基础镜像作为 backing file,各自只存储差异部分
  3. 节省空间:创建 10 台使用相同基础镜像的虚拟机,磁盘空间仅为基础镜像大小 + 每台增量大小
bash
# 创建基础镜像
qemu-img create -f qcow2 base.qcow2 20G

# 安装操作系统到 base.qcow2

# 基于基础镜像创建子镜像
qemu-img create -f qcow2 -b base.qcow2 -F qcow2 vm1.qcow2
qemu-img create -f qcow2 -b base.qcow2 -F qcow2 vm2.qcow2

父镜像必须为只读,修改只能发生在子镜像层。这种方式在企业批量部署场景中极为常用。

KVM 虚拟机性能调优有哪些手段?(企业高频题)

答:

1. CPU 调优

bash
# CPU pinning:vCPU 绑定到物理 CPU 核心
virsh vcpupin vm-name 0 0     # vCPU0 绑定到物理 CPU0
virsh vcpupin vm-name 1 1     # vCPU1 绑定到物理 CPU1

# 宿主机隔离,避免干扰
# 在 /etc/default/grub 中配置 isolcpus
GRUB_CMDLINE_LINUX="isolcpus=0-3"

2. NUMA 亲和性:避免跨 NUMA 节点访问内存,减少内存延迟

3. 使用 virtio 半虚拟化驱动

  • 磁盘使用 bus=virtio,网络使用 model type='virtio'
  • virtio 绕过设备模拟层,性能接近原生

4. 巨页内存(Huge Pages)

bash
# 宿主机配置 1G 巨页
echo 1024 > /proc/sys/vm/nr_hugepages

# 虚拟机配置使用巨页
<memoryBacking><hugepages/></memoryBacking>

5. I/O 调优

  • 使用 cache=nonecache=writeback 避免双缓存
  • 磁盘 IO 模式使用 iothreads 提高并发性能

6. vCPU 过量分配控制

  • 避免 vCPU 总数超过物理 CPU 核心数过多
  • 合理设置 CPU 权重和上限

KVM 热迁移(Live Migration)的原理是什么?

答:热迁移是将运行中的虚拟机从一台宿主机迁移到另一台宿主机,业务不中断。

迁移流程

  1. 预拷贝阶段:将虚拟机的全部内存数据从源节点拷贝到目标节点
  2. 迭代拷贝:不断拷贝内存中变化的部分(脏页),每轮脏页量逐步减少
  3. 停顿时机:当脏页量小到可接受时,短暂暂停虚拟机,拷贝最后一轮脏页和设备状态
  4. 恢复运行:在目标节点恢复虚拟机运行
bash
# 热迁移命令(需共享存储)
virsh migrate --live vm-name qemu+tcp://target-host/system

# 带进度查看
virsh migrate --live --verbose vm-name qemu+tcp://target-host/system

热迁移的前提条件

  • 共享存储(NFS、Ceph、GlusterFS)
  • 源和目标宿主机 CPU 兼容(或使用 host-passthrough 模式)
  • 相同或兼容的虚拟化版本
  • 足够网络带宽(建议万兆网络)

热迁移失败常见原因

  • 内存脏页速率过高(大内存 VM 迁移困难)
  • 网络带宽不足
  • 源和目标宿主机虚拟化版本不兼容
  • 虚拟机使用了 SR-IOV 直通设备

OpenStack 面试题(云计算视角)

OpenStack 在云计算中的定位是什么?

答:OpenStack 是一个开源的 IaaS(基础设施即服务)云平台,通过将数据中心中的物理服务器、网络和存储资源虚拟化,对外提供统一的云计算资源管理能力。它被广泛用于构建私有云和公有云基础设施。

可以说 OpenStack 是私有云事实上的开源标准,类似于 AWS 的开源替代品。

OpenStack 核心组件速记

面试中被问到 OpenStack 组件,可以按功能分类记忆:

功能分类组件一句话记忆
计算Nova管虚拟机生命周期
网络Neutron管虚拟网络
存储-块Cinder管云硬盘
存储-对象Swift管对象存储
镜像Glance管虚拟机镜像
认证Keystone管认证鉴权
界面Horizon管 Web 控制台
编排Heat管自动化部署

记忆口诀:Nova 算、Neutron 连、Cinder 存、Keystone 管、Glance 映、Horizon 看。

OpenStack 和 Kubernetes 的定位有什么不同?

答:这是面试中最高频的对比题,需要清晰区分:

对比维度OpenStackKubernetes
定位IaaS(基础设施即服务)PaaS/容器编排平台
管理对象虚拟机、虚拟网络、虚拟存储容器、Pod、Service
虚拟化层级硬件级虚拟化(KVM)操作系统级虚拟化(容器)
适用场景传统应用上云、VM 管理微服务、云原生应用
网络模型Neutron 虚拟网络(VXLAN、VLAN)CNI 插件(Calico、Flannel)
存储Cinder(块)、Swift(对象)PV/PVC、CSI 插件

企业真实情况:很多企业同时使用 OpenStack 和 K8s——OpenStack 提供底层虚拟机资源,K8s 运行在虚拟机上实现容器编排。

企业为什么选择 OpenStack 而不是直接买公有云?

答:

选择 OpenStack 的理由说明
数据安全合规金融、政务等对数据主权要求严格的行业
长期成本大规模(500+ 物理节点)长期成本低于公有云
深度定制可以完全自控网络、存储方案
避免厂商锁定开源技术栈,不被单一云厂商绑定
已有数据中心企业已有大量硬件资产,需要充分利用

公有云面试题(阿里云、腾讯云、华为云)

公有云的核心服务有哪些?

答:无论阿里云、腾讯云还是华为云,核心服务体系基本一致:

服务类别阿里云腾讯云华为云
计算ECSCVMECS
容器ACKTKECCE
对象存储OSSCOSOBS
块存储云盘CBSEVS
关系型数据库RDSCDBRDS
负载均衡SLBCLBELB
私有网络VPCVPCVPC
CDNCDNCDNCDN
DNSDNS解析DNSPodDNS
安全组安全组安全组安全组

阿里云 ECS 的售卖规格有哪些?(面试题)

答:阿里云 ECS(云服务器)按使用场景分为以下规格族:

规格族特点适用场景
通用型(g7/g8)CPU 和内存 1:4 平衡Web 应用、轻量级数据库
计算型(c7/c8)CPU 占比高,1:2高性能计算、游戏服务器
内存型(r7/r8)内存占比高,1:8内存数据库、缓存、大数据分析
大数据型(d系列)本地 HDD 磁盘Hadoop、日志处理
GPU 型(gn系列)配备 NVIDIA GPUAI 训练、图形渲染
裸金属(ebm系列)无虚拟化损耗核心数据库、高性能计算

面试高频问题:如何根据业务选择合适的 ECS 规格?

  • CPU 密集型 → 计算型
  • 内存密集型 → 内存型
  • I/O 密集型 → 大数据型或 SSD 云盘
  • 业务波动大 → 支持弹性伸缩的通用型

什么是 VPC?VPC 的核心组件有哪些?

答:VPC(Virtual Private Cloud) 是在公有云上创建的隔离的虚拟网络环境,用户可以在 VPC 中自定义 IP 地址段、子网、路由表和网关等网络配置。

核心组件

组件作用
VPC 网络隔离的虚拟网络,一个 VPC 就是一个独立的网络环境
交换机(子网)VPC 内的网段划分,不同可用区创建不同交换机实现跨 AZ 部署
路由表控制 VPC 内的网络流量转发
NAT 网关为 VPC 内无公网 IP 的云资源提供互联网访问
对等连接两个 VPC 之间内网互联
安全组实例级别的状态过滤防火墙,白名单机制
网络 ACL子网级别的无状态防火墙

VPC 网络规划面试题

问:一个公司业务需要部署在多个可用区做高可用,VPC 应该如何设计?

答:创建 1 个 VPC,在 2-3 个不同可用区各创建 1 个交换机(子网),
业务应用部署在不同可用区的交换机上。前端通过 SLB/CLB 负载均衡
分发流量,后端数据库使用主备或集群模式跨可用区部署。

阿里云、腾讯云、华为云的主要区别是什么?(面试高频)

答:面试中常问到三家公有云的选型对比,建议从以下维度分析:

对比维度阿里云腾讯云华为云
市场份额国内第一(约 34%)国内第二(约 18%)国内第三(约 11%)
核心优势生态最完善,产品线最丰富社交+游戏生态,音视频能力强政企市场,国产化信创
计算产品ECS(实例规格最全)CVMECS(鲲鹏/昇腾生态)
容器服务ACK(功能最成熟)TKE(与微信生态集成)CCE(云原生 2.0)
AI 能力通义大模型、PAI 平台混元大模型、TI 平台盘古大模型、ModelArts
数据库RDS、PolarDB、Redis 等CDB、TDSQL、 TendisGaussDB、DDS
海外覆盖亚太最强,全球 30+ 区域东南亚布局较多全球 30+ 区域
政企资质等保、ISO 认证齐全等保、ISO 认证齐全等保三级、信创认证最全
运维工具CloudMonitor、CloudShell云监控、Cloud Shell云监控、CloudShell
开发者生态文档最完善,社区活跃腾讯云社区、文档较好文档和社区相对偏弱

企业选型建议

  • 互联网/电商/金融科技 → 阿里云(产品线最全、生态最成熟)
  • 游戏/社交/音视频 → 腾讯云(底层 IM 和音视频能力强)
  • 政企/金融/信创 → 华为云(信创合规、等保安全)
  • 出海东南亚 → 阿里云(东南亚节点最多)
  • 混合云/私有云 → 华为云(HCS 混合云方案成熟)

什么是可用区(AZ)和地域(Region)?如何设计高可用架构?

答:

地域(Region):物理上隔离的数据中心区域,不同地域间完全隔离 可用区(AZ):同一地域内相互独立的物理区域,AZ 间通过低延迟光纤互联

高可用架构设计原则

关键原则

  1. 至少部署 2 个可用区,避免单 AZ 故障
  2. 应用层多可用区部署 + SLB 负载均衡
  3. 数据库跨 AZ 主备/集群部署
  4. 关键业务需要考虑多 Region 部署(异地灾备)

弹性伸缩(Auto Scaling)怎么配置?(企业实战题)

答:弹性伸缩是公有云的核心能力,面试中主要考察架构设计思路。

bash
# 阿里云 ESS 示例
# 1. 创建伸缩组
ess:CreateScalingGroup
  --min-size 2
  --max-size 10
  --default-cooldown 300

# 2. 创建伸缩配置(指定 ECS 规格、镜像等)
ess:CreateScalingConfiguration
  --image-id centos7_64_40G_aliaegis
  --instance-type ecs.g7.large

# 3. 创建伸缩规则
ess:CreateScalingRule
  --scaling-rule-type SimpleScalingRule
  --adjustment-type QuantityChangeInCapacity
  --adjustment-value 2

# 4. 创建定时任务或报警任务
ess:CreateAlarm
  --alarm-actions ScalingRuleId
  --metric-name CpuUtilization
  --comparison-operator >=
  --threshold 80

弹性伸缩的典型场景

  • 定时模式:电商大促前预扩容,大促后释放
  • 动态模式:基于 CPU/内存/网络流量等指标自动扩缩容
  • 混合模式:定时模式 + 动态模式结合

公有云的 3AZ 高可用架构设计题

答:这是公有云面试中最高频的架构设计题,需要手画架构图或口述方案。

题目:设计一个电商网站的高可用架构,要求跨 3 个可用区部署,能容忍单 AZ 故障。

标准答案

DNS → CDN(静态加速)
  → 全局负载均衡(DNS 解析到多 Region)
    → SLB/ALB(跨 3 个 AZ 分发流量)
      → ECS 集群(3 个 AZ 各部署一组)
        → 共享 RDS(主库在 AZ-A,备库在 AZ-B/Z)
        → 共享 Redis(集群模式跨 AZ)
        → OSS(对象存储,多 AZ 冗余)

关键要点

  1. SLB 自身多 AZ 部署,不会单点故障
  2. ECS 部署在 3 个 AZ,使用弹性伸缩应对突发流量
  3. RDS 主备跨 AZ,自动切换
  4. Redis 集群跨 AZ 部署
  5. OSS 自动多 AZ 冗余存储
  6. 数据层使用分布式数据库或分库分表

对象存储与块存储的区别?(公有云面试题)

答:

对比维度对象存储(OSS/COS/OBS)块存储(云盘/EBS)
访问方式HTTP/HTTPS API(RESTful)块设备接口(挂载为磁盘)
数据类型非结构化数据(图片、视频、备份)结构化数据(文件系统、数据库)
可修改性整体写入,不可随机修改支持随机读写
容量近乎无限单盘最大 32TB
延迟较高(毫秒级)低(微秒级)
使用方式SDK/CLI/Web 上传挂载到 ECS,格式化为文件系统
冗余机制自动多副本/纠删码多副本/快照
适用场景静态文件存储、备份、归档操作系统盘、数据库数据盘

安全组和网络 ACL 的区别?

答:

对比维度安全组网络 ACL
作用范围实例级别(ECS 实例)子网级别(VPC 子网)
有无状态有状态(允许出自动允许回)无状态(需要单独配置出方向)
规则顺序所有规则都生效按优先级顺序匹配
默认规则默认拒绝所有入站,允许所有出站默认拒绝所有入站和出站
适用场景精细控制单个 ECS 的访问全局控制子网的访问策略

企业安全最佳实践

安全组:控制单个应用服务的入站访问(如仅允许 80/443)
网络 ACL:整个 VPC/子网的边界防护(如禁止所有非标端口)
两者组合使用实现纵深防御

云上安全:什么是 DDoS 防护?WAF 和云防火墙的区别?

答:

DDoS 防护:防御分布式拒绝服务攻击,公有云厂商一般提供免费的基础防护(5-10Gbps)和付费的高防 IP

WAF(Web 应用防火墙)

  • 防御应用层攻击:SQL 注入、XSS、CSRF、CC 攻击
  • 工作在第 7 层(HTTP/HTTPS)
  • 配置:通过修改 DNS 将流量指向 WAF

云防火墙

  • 统一管理互联网边界、VPC 边界、内网流量的访问控制
  • 集中管理安全策略、入侵防御(IPS)
  • 工作在第 3-4 层

企业的三层防护架构

DDoS 防护(网络层)→ WAF(应用层)→ 安全组/云防火墙(主机层)

云计算架构设计与实践

企业上云迁移的策略有哪些?

答:企业上云迁移("上云")有六种常见策略,简称 6R 策略

策略说明适用场景
Rehost(直接迁移)直接迁到云上,不做修改,即"抬腿就走"快速上云,前期迁移
Replatform(平台优化)做少量修改利用云平台特性,如 RDS 替代自建 MySQL利用云原生服务
Refactor(重构)对应用进行云原生改造,拆分为微服务需要充分利用云弹性
Repurchase(替换)弃用原有软件,采用 SaaS 产品替代有成熟的 SaaS 替代品
Retire(淘汰)下线不再使用的老旧系统清理冗余系统
Retain(保留)部分系统保留在本地,不迁移合规要求或改造成本过高

企业真实情况:大部分企业采用"逐步迁移"策略,先迁移非核心系统到云上积累经验,再迁移核心业务;多数采用 Rehost + Replatform 组合,Refactor 通常放在后期。

什么是云原生?云原生包含哪些核心技术?

答:云原生(Cloud Native) 是一种构建和运行应用程序的方法论,充分利用云计算的优势。

核心特征

  • 容器化:应用打包成容器镜像,环境一致性
  • 微服务:应用拆分为独立部署的小服务
  • 声明式 API:通过 YAML/JSON 声明期望状态
  • 自动编排:自动化部署、扩缩容、自愈

技术栈

技术类别常见产品
容器运行时Docker、containerd
容器编排Kubernetes、KubeSphere
服务网格Istio、Linkerd
API 网关Kong、APISIX
监控Prometheus、Grafana
日志ELK、Loki
CI/CDJenkins、GitLab CI、ArgoCD
基础设施即代码Terraform、Ansible
无服务器Knative、Function Compute

面试高频:什么是云原生应用的 12 要素?(参考 12factor.net

什么是基础设施即代码(IaC)?常见的 IaC 工具对比

答:IaC(Infrastructure as Code) 是通过代码(而非手动操作)来定义和管理基础设施的实践。

工具类型特点适用场景
Terraform声明式多云支持,状态管理完善基础设施全生命周期管理
Ansible声明式/过程式无 Agent,SSH 执行配置管理和应用部署
Pulumi声明式使用通用编程语言(Python/Go/TS)开发人员友好的 IaC
CloudFormation声明式阿里云 ROS、华为云 RFS 类似AWS/阿里云原生环境
Packer镜像构建创建一致性机器镜像不可变基础设施

面试加分项:Terraform + Ansible 是黄金组合:

Terraform:创建云资源(VPC、ECS、RDS、SLB)
Ansible:配置部署(安装软件、配置应用、部署代码)

什么是 CDN?CDN 的核心原理是什么?

答:CDN(Content Delivery Network,内容分发网络) 通过在全球部署的边缘节点缓存内容,加速用户访问。

核心原理

用户请求 → DNS 解析到最近节点 → 边缘节点提供服务
  → 如果边缘节点有缓存,直接返回
  → 如果没有缓存,回源站拉取并缓存后返回

CDN 的核心价值

  1. 加速访问:用户就近获取数据,降低延迟
  2. 减轻源站压力:大量请求被边缘节点拦截
  3. 抗 DDoS:CDN 节点分散攻击流量

面试题:动态内容能用 CDN 加速吗? 答:可以,CDN 支持全站加速(DCDN),通过智能路由、动态加速等技术优化动态内容的传输路径。


综合面试题(企业真实场景)

场景 1:公司业务从自建机房迁移到公有云,你的方案是什么?

答:这是云计算面试中最常见的综合题,考察全盘规划能力。

迁移方案(5 步走)

第一阶段:调研评估(1-2 周)

  • 资产盘点:所有服务器的配置、IP、端口、依赖关系
  • 应用分类:按重要程度分为 P0(核心)、P1(重要)、P2(一般)
  • 评估迁移难度:是否可 Rehost?是否需改造?

第二阶段:方案设计(1 周)

  • 网络规划:VPC 网段设计(避免和 IDC 冲突)
  • 安全架构:安全组、WAF、堡垒机、日志审计
  • 高可用设计:多 AZ 部署方案
  • 备份策略:每日全量+增量备份,异地容灾

第三阶段:迁移演练(2 周)

  • 搭建云上测试环境
  • 进行模拟迁移,验证应用功能
  • 制定回滚方案

第四阶段:正式迁移

  • 分批迁移:先迁移非核心系统,再迁移核心系统
  • 灰度发布:每次迁移部分节点验证后再全部切换
  • 数据迁移:使用云厂商的数据传输服务(如阿里云 DTS)

第五阶段:运维优化(持续性)

  • 配置弹性伸缩、监控告警
  • 成本优化:根据使用情况调整实例规格、购买预留实例
  • 安全加固

场景 2:双 11 大促或活动高峰,云上如何应对流量洪峰?

答:

1. 扩容方案

  • 提前预扩容(2-3 倍常规容量)
  • 配置弹性伸缩规则,基于 CPU/连接数/QPS 自动扩缩
  • 容器化应用可以使用 HPA 自动扩容 Pod

2. 缓存策略

  • 热点数据提前预热到 Redis
  • 静态资源全量推到 CDN
  • 数据库查询结果缓存

3. 限流熔断

  • 接入层限流(Nginx+lua、Sentinel)
  • 服务熔断降级(非核心业务降级)
  • 消息队列削峰填谷

4. 数据库优化

  • 读写分离(RDS 只读实例)
  • 数据库连接池优化
  • 大促前 DBA 进行慢查询治理

5. 压测验证

  • 大促前必须做全链路压测
  • 找到容量瓶颈并优化
  • 确定容量上限,设定触发扩容的阈值

企业真实案例:某电商大促前进行全链路压测,发现数据库连接池是瓶颈,通过 RDS 扩容和连接池参数优化,QPS 从 2 万提升到 8 万。

场景 3:如何降低公有云的成本?

答:这是企业面试中越来越常见的问题,考察成本意识和优化能力。

1. 计算成本优化

  • 购买预留实例/节省计划(比按量付费便宜 40-60%)
  • 使用抢占式实例(价格低 80-90%,适合无状态应用)
  • 选择合适规格:避免规格过大造成浪费
  • 使用弹性伸缩:按需自动缩容,避免资源闲置

2. 存储成本优化

  • 对象存储:按访问频率选择存储类型(标准/低频/归档)
  • 生命周期管理:自动将过期数据转为低频或归档
  • 删除未挂载的云盘、快照
  • 云盘按需分配,避免过度预配置

3. 网络成本优化

  • 使用 CDN 降低回源流量
  • 内网通信不走公网(同 Region 内网免费)
  • 合理规划跨 Region 流量

4. 管理成本优化

  • 设置预算告警(超预算自动通知)
  • 使用成本分析工具(阿里云成本管家、AWS Cost Explorer)
  • 定期巡检闲置资源(未绑定的 EIP、未使用的 SLB)

真实案例:某互联网公司通过使用抢占式实例处理离线计算任务,将计算成本降低 70%;通过生命周期管理将 1 年以上未访问的日志文件转为归档存储,存储成本降低 80%。

场景 4:云上出现故障,如何排查?(排错指南)

答:

故障现象排查链路常用命令/操作
ECS 无法连接VPC 状态 → 安全组 → 弹性 IP → 系统防火墙ping、telnet、安全组规则检查
数据库连接超时白名单 → 连接数 → 慢查询 → 资源使用show processlist、DMS 慢查询分析
应用响应慢负载均衡 → 后端 ECS → 数据库 → 缓存SLB 监控、ECS 监控、慢查询日志
磁盘空间满登录 ECS 检查磁盘 → 清理日志/扩容df -h、扩容云盘
网络延迟高MTR 诊断 → CDN 是否命中 → 跨 Region云厂商的网络探测工具、MTR
服务被攻击流量监控 → DDoS 高防 → WAF → 安全组查看流量报表、配置 DDoS 防护策略

通用排错思路(从外到内)

DNS解析 → 网络连通 → 云资源状态(SLB/ECS/RDS)→ 应用日志 → 代码

云计算面试技术栈能力矩阵

答:根据企业面试的真实情况,云计算岗位的技术栈要求可归纳为以下层次:

能力层级技术要求面试占比
基础层计算机网络(TCP/IP、DNS、HTTP)、Linux 基础20%
虚拟化层KVM 原理、QEMU、libvirt、虚拟化网络/存储15%
云平台层OpenStack 架构、组件、排错;公有云服务(ECS/RDS/VPC/SLB)30%
容器层Docker、Kubernetes、Helm、服务网格20%
自动化层Terraform、Ansible、CI/CD 流水线、监控(Prometheus)10%
架构层高可用设计、容灾方案、成本优化、安全架构5%

应聘建议

  • 初级岗位:重点掌握基础层 + 虚拟化层 + 至少一家公有云常用服务
  • 中级岗位:在初级基础上 + OpenStack 运维经验 + 容器技术 + 自动化
  • 高级岗位:全栈能力 + 架构设计经验 + 大规模集群管理 + 云原生转型经验

云计算面试高频场景题清单

根据一线互联网和传统企业的真实面试反馈,以下场景题出现频率最高:

  1. "介绍你们公司现在的云计算架构?"(开场必问,考察真实经验)
  2. "虚拟机创建失败如何排查?"(排错能力)
  3. "如何设计高可用架构?"(架构设计)
  4. "大促流量高峰如何应对?"(弹性伸缩)
  5. "如何降低成本?"(成本优化)
  6. "如何做混合云?"(混合云架构)
  7. "上云迁移怎么规划?"(迁移方案)
  8. "云上遇到故障怎么排查?"(排错思路)
  9. "OpenStack 和公有云怎么选?"(技术选型)
  10. "容器化改造怎么推进?"(云原生转型)

面试技巧:这些场景题没有标准答案,面试官考察的是你的思路和经验。回答时按照"问题分析 → 解决方案 → 效果验证 → 后续优化"的结构组织,会显得更有条理和实战感。