云计算基础概念
什么是云计算?云计算的核心特征是什么?
答:云计算是一种通过互联网提供按需计算资源的模式,核心特征包括:
| 特征 | 说明 |
|---|---|
| 按需自助服务 | 用户无需人工交互即可自行配置和使用计算资源 |
| 广泛网络访问 | 资源可通过标准网络协议被各种终端设备访问 |
| 资源池化 | 多租户模式,物理和虚拟资源按需动态分配 |
| 快速弹性 | 资源可以快速弹性伸缩,对用户而言可用资源近乎无限 |
| 可计量服务 | 按使用量计费,资源使用可监控、控制和报告 |
云计算的服务模型有哪些?(面试高频)
答:云计算有三种基本服务模型:
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) |
| 弹性扩展 | 极强,几乎无限弹性 | 有限弹性,受限于硬件资源池 |
| 安全合规 | 共享安全模型,需满足行业合规认证 | 完全自主控制,满足特定合规要求 |
| 运维复杂度 | 低(云厂商负责基础设施运维) | 高(需要专业运维团队) |
| 定制化 | 受限,只能使用云厂商提供的服务 | 完全可控,可按需深度定制 |
| 网络延迟 | 受公网影响,延迟相对较高 | 内网通信,延迟低 |
| 典型用户 | 互联网企业、中小企业、初创公司 | 金融、政务、医疗、大型企业 |
什么是混合云?企业为什么选择混合云?
答:混合云是公有云和私有云的组合,数据和应用程序可以在两者之间共享。
企业选择混合云的核心原因:
- 安全合规:核心敏感数据放在私有云,非敏感业务放在公有云
- 弹性伸缩:业务高峰期使用公有云弹性资源(云爆发),低峰期回归私有云
- 成本优化:稳态业务跑在私有云,敏态业务跑在公有云
- 灾备:私有云为主,公有云作为灾备站点
- 逐步上云:从私有云逐步迁移到公有云的过渡方案
企业真实案例:某金融企业将用户核心交易数据存放在私有云,将前端 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-x | Intel 的硬件辅助虚拟化技术,提供 VMX 根模式和非根模式 |
| AMD-V | AMD 的硬件辅助虚拟化技术,提供 SVM 模式 |
| VT-d | I/O 设备直通技术,将物理设备直接分配给虚拟机 |
| SR-IOV | 单根 I/O 虚拟化,一个物理网卡虚拟出多个 VF 给虚拟机 |
面试追问:怎么确认服务器支持 KVM 虚拟化?
# 检查 CPU 是否支持虚拟化
grep -E "vmx|svm" /proc/cpuinfo
# 检查 KVM 模块是否加载
lsmod | grep kvmlibvirt 是什么?它和 KVM 有什么关系?
答:libvirt 是一个虚拟化管理 API 和守护进程,提供统一的接口来管理多种 Hypervisor(KVM、Xen、VMware 等)。
管理工具(virsh/virt-manager)
↓
libvirt API
↓
KVM/Xen/QEMU 等 Hypervisor
↓
硬件层核心组件:
- libvirtd:运行在宿主机上的守护进程
- virsh:命令行管理工具
- virt-manager:图形化管理工具
- virt-install:命令行创建虚拟机的工具
常用 virsh 命令(面试要会):
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 配置,关键部分包括:
<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 | 原始格式,性能最好,占用实际大小 | 高性能数据库场景 |
| qcow2 | QEMU 写时复制格式,支持快照、压缩、加密 | 推荐格式,绝大多数场景 |
| qed | 高性能 qcow2 替代品(已弃用) | 历史兼容 |
| vmdk | VMware 格式 | 与 VMware 环境互操作 |
| vhd/vhdx | Hyper-V 格式 | 与 Hyper-V 环境互操作 |
# 创建 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 的核心特性是写时复制:
- 创建快照时:只记录原磁盘的变化部分(增量),不复制全量数据
- 子镜像引用父镜像:多个虚拟机可以共享同一个基础镜像作为 backing file,各自只存储差异部分
- 节省空间:创建 10 台使用相同基础镜像的虚拟机,磁盘空间仅为基础镜像大小 + 每台增量大小
# 创建基础镜像
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 调优
# 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)
# 宿主机配置 1G 巨页
echo 1024 > /proc/sys/vm/nr_hugepages
# 虚拟机配置使用巨页
<memoryBacking><hugepages/></memoryBacking>5. I/O 调优
- 使用
cache=none或cache=writeback避免双缓存 - 磁盘 IO 模式使用
iothreads提高并发性能
6. vCPU 过量分配控制
- 避免 vCPU 总数超过物理 CPU 核心数过多
- 合理设置 CPU 权重和上限
KVM 热迁移(Live Migration)的原理是什么?
答:热迁移是将运行中的虚拟机从一台宿主机迁移到另一台宿主机,业务不中断。
迁移流程:
- 预拷贝阶段:将虚拟机的全部内存数据从源节点拷贝到目标节点
- 迭代拷贝:不断拷贝内存中变化的部分(脏页),每轮脏页量逐步减少
- 停顿时机:当脏页量小到可接受时,短暂暂停虚拟机,拷贝最后一轮脏页和设备状态
- 恢复运行:在目标节点恢复虚拟机运行
# 热迁移命令(需共享存储)
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 的定位有什么不同?
答:这是面试中最高频的对比题,需要清晰区分:
| 对比维度 | OpenStack | Kubernetes |
|---|---|---|
| 定位 | IaaS(基础设施即服务) | PaaS/容器编排平台 |
| 管理对象 | 虚拟机、虚拟网络、虚拟存储 | 容器、Pod、Service |
| 虚拟化层级 | 硬件级虚拟化(KVM) | 操作系统级虚拟化(容器) |
| 适用场景 | 传统应用上云、VM 管理 | 微服务、云原生应用 |
| 网络模型 | Neutron 虚拟网络(VXLAN、VLAN) | CNI 插件(Calico、Flannel) |
| 存储 | Cinder(块)、Swift(对象) | PV/PVC、CSI 插件 |
企业真实情况:很多企业同时使用 OpenStack 和 K8s——OpenStack 提供底层虚拟机资源,K8s 运行在虚拟机上实现容器编排。
企业为什么选择 OpenStack 而不是直接买公有云?
答:
| 选择 OpenStack 的理由 | 说明 |
|---|---|
| 数据安全合规 | 金融、政务等对数据主权要求严格的行业 |
| 长期成本 | 大规模(500+ 物理节点)长期成本低于公有云 |
| 深度定制 | 可以完全自控网络、存储方案 |
| 避免厂商锁定 | 开源技术栈,不被单一云厂商绑定 |
| 已有数据中心 | 企业已有大量硬件资产,需要充分利用 |
公有云面试题(阿里云、腾讯云、华为云)
公有云的核心服务有哪些?
答:无论阿里云、腾讯云还是华为云,核心服务体系基本一致:
| 服务类别 | 阿里云 | 腾讯云 | 华为云 |
|---|---|---|---|
| 计算 | ECS | CVM | ECS |
| 容器 | ACK | TKE | CCE |
| 对象存储 | OSS | COS | OBS |
| 块存储 | 云盘 | CBS | EVS |
| 关系型数据库 | RDS | CDB | RDS |
| 负载均衡 | SLB | CLB | ELB |
| 私有网络 | VPC | VPC | VPC |
| CDN | CDN | CDN | CDN |
| DNS | DNS解析 | DNSPod | DNS |
| 安全组 | 安全组 | 安全组 | 安全组 |
阿里云 ECS 的售卖规格有哪些?(面试题)
答:阿里云 ECS(云服务器)按使用场景分为以下规格族:
| 规格族 | 特点 | 适用场景 |
|---|---|---|
| 通用型(g7/g8) | CPU 和内存 1:4 平衡 | Web 应用、轻量级数据库 |
| 计算型(c7/c8) | CPU 占比高,1:2 | 高性能计算、游戏服务器 |
| 内存型(r7/r8) | 内存占比高,1:8 | 内存数据库、缓存、大数据分析 |
| 大数据型(d系列) | 本地 HDD 磁盘 | Hadoop、日志处理 |
| GPU 型(gn系列) | 配备 NVIDIA GPU | AI 训练、图形渲染 |
| 裸金属(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(实例规格最全) | CVM | ECS(鲲鹏/昇腾生态) |
| 容器服务 | ACK(功能最成熟) | TKE(与微信生态集成) | CCE(云原生 2.0) |
| AI 能力 | 通义大模型、PAI 平台 | 混元大模型、TI 平台 | 盘古大模型、ModelArts |
| 数据库 | RDS、PolarDB、Redis 等 | CDB、TDSQL、 Tendis | GaussDB、DDS |
| 海外覆盖 | 亚太最强,全球 30+ 区域 | 东南亚布局较多 | 全球 30+ 区域 |
| 政企资质 | 等保、ISO 认证齐全 | 等保、ISO 认证齐全 | 等保三级、信创认证最全 |
| 运维工具 | CloudMonitor、CloudShell | 云监控、Cloud Shell | 云监控、CloudShell |
| 开发者生态 | 文档最完善,社区活跃 | 腾讯云社区、文档较好 | 文档和社区相对偏弱 |
企业选型建议:
- 互联网/电商/金融科技 → 阿里云(产品线最全、生态最成熟)
- 游戏/社交/音视频 → 腾讯云(底层 IM 和音视频能力强)
- 政企/金融/信创 → 华为云(信创合规、等保安全)
- 出海东南亚 → 阿里云(东南亚节点最多)
- 混合云/私有云 → 华为云(HCS 混合云方案成熟)
什么是可用区(AZ)和地域(Region)?如何设计高可用架构?
答:
地域(Region):物理上隔离的数据中心区域,不同地域间完全隔离 可用区(AZ):同一地域内相互独立的物理区域,AZ 间通过低延迟光纤互联
高可用架构设计原则:
关键原则:
- 至少部署 2 个可用区,避免单 AZ 故障
- 应用层多可用区部署 + SLB 负载均衡
- 数据库跨 AZ 主备/集群部署
- 关键业务需要考虑多 Region 部署(异地灾备)
弹性伸缩(Auto Scaling)怎么配置?(企业实战题)
答:弹性伸缩是公有云的核心能力,面试中主要考察架构设计思路。
# 阿里云 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 冗余)关键要点:
- SLB 自身多 AZ 部署,不会单点故障
- ECS 部署在 3 个 AZ,使用弹性伸缩应对突发流量
- RDS 主备跨 AZ,自动切换
- Redis 集群跨 AZ 部署
- OSS 自动多 AZ 冗余存储
- 数据层使用分布式数据库或分库分表
对象存储与块存储的区别?(公有云面试题)
答:
| 对比维度 | 对象存储(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/CD | Jenkins、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 的核心价值:
- 加速访问:用户就近获取数据,降低延迟
- 减轻源站压力:大量请求被边缘节点拦截
- 抗 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 运维经验 + 容器技术 + 自动化
- 高级岗位:全栈能力 + 架构设计经验 + 大规模集群管理 + 云原生转型经验
云计算面试高频场景题清单
根据一线互联网和传统企业的真实面试反馈,以下场景题出现频率最高:
- "介绍你们公司现在的云计算架构?"(开场必问,考察真实经验)
- "虚拟机创建失败如何排查?"(排错能力)
- "如何设计高可用架构?"(架构设计)
- "大促流量高峰如何应对?"(弹性伸缩)
- "如何降低成本?"(成本优化)
- "如何做混合云?"(混合云架构)
- "上云迁移怎么规划?"(迁移方案)
- "云上遇到故障怎么排查?"(排错思路)
- "OpenStack 和公有云怎么选?"(技术选型)
- "容器化改造怎么推进?"(云原生转型)
面试技巧:这些场景题没有标准答案,面试官考察的是你的思路和经验。回答时按照"问题分析 → 解决方案 → 效果验证 → 后续优化"的结构组织,会显得更有条理和实战感。
