简介面向云计算课程学习者、考研学生及需要系统梳理理论框架的从业者这份《刘鹏云计算第三版习题答案》以讲义形式呈现围绕教材核心章节逐题解析内容覆盖云计算基础概念、IaaS/PaaS/SaaS三种服务模型、公有云/私有云/混合云/社区云部署模式以及虚拟化、分布式存储、平台安全等关键技术并结合企业ERP、客户关系管理、电子政务等应用场景说明实践价值。资源仅含1个docx文档压缩包大小9.51MB结构清晰、便于按章节翻阅与打印可配合教材进行自测与复习。每道习题均给出对应知识点解析与答题思路有助于读者比对教材原文、掌握考点。目前已有1700人学习下载适合用于课后作业核对、考前冲刺及建立完整的云计算知识体系尤其可辅助理解架构设计思路与安全策略要点。1. 习题答案为什么是理解云计算的捷径先背结论再拆机制一套《云计算》第三版的习题答案表面上是考前突击用的速成材料但内行看它看到的是教材出题人划定的知识权重图。云计算的习题几乎绕不开五大特性、三种服务模型、四种部署模式以及虚拟化、分布式存储、安全这几根支柱。习题答案给的是结论结论背后才是机制。反直觉的是直接背答案的人考完全忘把答案当问题清单、逐条追问为什么这么设计的人反而能靠一套答案把资源池化、多副本一致性和弹性伸缩的取舍串成体系。这份资源的真正价值不在答案本身而在于它把散乱的知识点压缩成了一批高密度问题——每一道题都是一个机制入口每个标准答案背后都能挖出一个设计决策。2. 五大特性和服务模型答案里每一个词都是一条机制链路习题第一板块通常会问云计算有哪些特点标准答案就是按需服务、广泛网络接入、资源池化、快速弹性、可计量服务这五条。多数人把它当填空题背但换个视角看这五条其实是云平台要解决的五个核心问题的对外表现。按需服务对应的是请求与调度的解耦用户说要一台2核4G的机器这个愿望经过控制平面API变成一次资源申请再落到调度器身上——调度器要决定这台虚拟机放在哪台物理机上什么时候启动什么时候回收。广泛网络接入的意思是所有能力必须以标准化接口暴露不然一切皆服务无从谈起移动端、命令行、脚本调用全靠这一条支撑。资源池化是物理资源和逻辑资源的分层物理机只是原料逻辑上按规格切成一份份的计算切片。快速弹性是调度器的扩缩容能力流量涨了五分钟内要能再出一批机器。可计量服务则意味着每一份资源都要可计数、可出账单。2.1 五大特性不是口号是资源管理策略我一般会这么理解这五条的关系资源池化是前提按需服务和快速弹性是资源池之上的调度能力广泛网络接入是接口层可计量服务则是商业闭环。习题答案把这五条并列列出但机制上它们是分层的。比如资源池化的考点标准答案一定会写提高资源利用率和降低成本但这个结论成立的前提是调度器能准确感知每台物理机的剩余水位于是就有了资源水位这个隐形概念——类似容器编排里的可分配量与已分配量的差值。你打开某个云控制台新建虚拟机时看到的规格清单本质上是调度器从资源池里划出的一段逻辑切片而账单里的计费周期就是这段切片被独占的时间。答案没写穿的这一层才是理解云计算的起点。资源池化还会牵出一个超卖的问题。物理机上标称64核128G不代表只能分给用户64核和128G。公有云经常按过载比设计资源池比如一台物理机的CPU超卖比例是1:2那就是把128个逻辑核当成256个来卖。超卖提高的是营收赌的是用户不会同时把CPU跑满。习题答案里资源利用率四个字到了运营层面就是超卖比例、租户实际负载、热点消除三者的博弈。超卖比例调太高某个月度大促流量一冲物理机上的虚拟机互相抢CPU整台机器变成热点一组业务跟着抖。所以调度器里通常会带一个水位保护线剩余资源低于阈值就不再接收新虚拟机防止把物理机打爆。2.2 三种服务模型的分层谁拥有升级权谁在凌晨被叫起来IaaS、PaaS、SaaS是必考送分题但最常见的误区是把它们看成从低到高的三个套餐。我一般会这么理解三种模型的分界不是性能不是价格而是故障域归谁和升级权归谁。IaaS只抽象硬件网络、计算、存储是服务商的内核、运行库、应用是你自己的所以IaaS里内核panic是用户的事半夜数据库OOM也是用户被叫醒。PaaS抽象运行时操作系统、中间件、扩展能力全部接管用户只写业务代码但冷启动延迟、语言运行时版本、内置服务的配额都变成你的新约束。SaaS抽象整个应用连升级和数据备份都归服务商用户手里只剩配置项和打开浏览器的权限。习题答案里一句IaaS提供基础设施服务其实藏着最关键的信息。做题时判断某场景该选哪一层别背定义先问一句我愿不愿意接管这一层的故障恢复想控制底层网络策略就选IaaS想省去中间件运维就选PaaS连业务数据都想外包就选SaaS。这个判断框架比罗列特征稳定得多因为工程师真正关心的是夜里两点谁会收到告警。把这一层想清楚再回去看答案里PaaS提供平台服务这类表述会发现它其实是在说平台故障不需要你负责。运维视角会更明显。IaaS里一台虚拟机宕了重装系统、恢复应用、回溯数据全流程都是用户在扛PaaS里应用实例被平台重启理论上用户只看到日志里多了一行实例被调度到另一节点SaaS里连这个日志用户都不用看。所谓抽象层级本质就是你愿意把多少运维风险用钱和API交出去。习题答案只描述层次不描述责任划分而责任划分才是选型的命门。2.3 可计量付费的机制从配额到账单之间发生了什么习题里有一类简答叫说明云计算的计费模型标准答案大致是按需付费、按用量付费。但计费在系统里不是一个账单模块而是一条数据链路。一次虚拟机创建请求进入控制平面后会先后经过配额校验、资源预留、调度分配、生命周期管理最后落到计量模块。计量模块按时间片记录这台虚拟机占用了多少CPU、多少内存、多少公网流量。账单是这些记录的聚合结果而不是实时计算的结果。所以你会看到按秒计费的产品其实是把计量时间片切得很小本质上还是离散采样。控制平面环节核心职责常见失败场景配额校验检查账号的剩余配额配额不足时请求直接拒绝资源预留从资源池预占资源预留与分配之间缺乏锁导致超卖调度分配选定物理机调度倾斜导致某台机器过载生命周期管理创建、销毁、重启状态机在异常时卡住计量采样记录资源占用时间片采样丢失导致账单漏计习题答案不会考计量模块怎么设计但会考云计算的按需付费为什么能做到。答因为资源可被量化只能拿一半分补上资源池化之后CPU时间、内存容量、存储IO、网络带宽都可被精确计量与采样再把计量是离散的、账单是聚合的说清楚就能把送分题答出区分度。这道题背后折射的是云平台的一个重要特性一切可被观测才一切可被计费。没有计量就没有计费没有计费就没有商业闭环。2.4 广泛网络接入与API一切云服务的共同底座习题答案的五大特性里广泛网络接入是最容易被当作废话的一条但它实际上是云平台所有组件之间互通的底层规矩。为什么这么说因为资源池化也好、快速弹性也好都是系统内部的调度行为用户感知不到。用户唯一感知到的是入口——控制台、命令行、SDK三者背后都是同一层API这才是广泛网络接入的工程含义计算、存储、网络、安全这些资源全部对象化对象暴露成可编程的接口或事件用户可以用代码创建虚拟机、修改安全组、查询计量报表。这也是为什么很多团队要求云运维至少会一种脚本语言。手动点控制台只能管理几十台机器用API走批量创建一次循环就能拉起几百台。某公司搞大促扩容负责手动点击的同学点了半小时另一个同学写了个脚本十分钟把机器建完顺手把标签打了、把安全组绑了。谁在凌晨被叫起来答案是没写脚本那位。习题答案用广泛网络接入五个字带过但它的机制含义是一切资源皆对象一切操作皆API。理解了这层就明白为什么云厂商的文档永远是先给API参考再给控制台截图——控制台只是API的图形化外壳。2.5 从五大特性到SLA答案没写的可用性预算标准答案里不会出现99.9%但五大特性要变成商业承诺必须翻译成SLA。99.9%的可用性意味着一年最多宕机8.76小时99.99%只有52.6分钟多一个9运维成本指数上升。按需服务承诺的是资源随时可取但随时在SLA里是概率事件可计量付费承诺的是账单精度但精度在SLA里是计量漂移的容忍上限。所以做架构设计题时把五大特性与SLA关联起来是一个容易被忽略的加分点谈到高可靠就补一句SLA决定冗余设计要花多少钱谈到弹性就补一句扩缩容响应时间受SLA约束。答案给的是名词SLA给的是数字数字才是工程决策的输入。3. 部署模式与虚拟化边界是怎么被制造出来的3.1 四种部署模式的真实分界线不是物理位置习题答案把部署模式分为公有云、私有云、混合云和社区云给了定义就完事。但公有云面向公众、私有云仅供内部使用这种答法治标不治本。真正要搞懂的是四种模式的区别在控制面和数据面分别体现在哪里。公有云和私有云的差别不是服务器放在哪个机房而是资源池的控制权归属和信任边界。私有云即便底层用了和公有云一样的虚拟化技术、一样的分布式存储它的调度策略、多租户隔离、计费逻辑都可以被组织自己改写因为控制平面握在自己手里。公有云正好相反控制平面是平台方的还要把能力以API形式暴露给不可信的外部租户所以多租户隔离和安全加固的优先级极高。社区云比私有云更特殊。习题答案说社区云面向特定社区但机制上它是多个组织按共同合规要求共享同一套资源池控制面由一个多方治理委员会约束。这意味着社区云里连漏洞修复都可能是慢的——打补丁要委员会评审紧急小版本也要走流程。这种治理成本在设计架构时要算进去。某政务类平台选了社区云模型结果安全组规则变更要两个组织一起盖章一个紧急漏洞从发现到全网修复花了三天事后复盘发现问题不在技术栈而在控制面的决策链路。答案里的面向特定社区五个字落到工程上就是控制权被多方分享所有变更都变慢。混合云的标准答案通常写兼顾弹性与安全但机制层面它要解决的是两个自治资源池之间的状态一致性问题。本地资源池与云端资源池各自有调度器各自有计量模块混合部署时至少要打通三样东西网络、统一身份管理、数据同步。习题里爱考混合云的难点只答网络打通是半对补上统一身份与数据同步才对得上架构设计的完整性。统一身份不打通两边账号体系对不上审计追责时都不知道该查哪边的日志。3.2 虚拟化物理资源怎么变成逻辑资源虚拟化是整个习题集的机制核心也是资源池化这个结论的物理基础。虚拟化通过一个软件层VMM/Hypervisor把物理CPU、内存、IO抽象成多个逻辑资源一台物理机变成几十台虚拟机。常见的实现思路分三路。CPU虚拟化早期用陷入-模拟客户机的特权指令触发异常陷入到VMM代为执行性能损耗大后来硬件辅助虚拟化提供了根模式和非根模式敏感指令不再逐个陷入性能大幅提升。内存虚拟化的核心是两级地址转换客户机虚拟地址先转成客户机物理地址再转成宿主机物理地址。硬件辅助的EPT/NPT把第二级转换做进MMU里缺页时由VMM补上。IO虚拟化有三条演进路线全模拟软件模拟设备、半虚拟化客户机知道自己跑在虚拟机上通过共享环形队列与宿主机交换数据绕开模拟开销、直通物理设备直接分配给虚拟机性能接近裸机但牺牲了灵活性。虚拟化切分出来的逻辑资源离池化还差一步这一步是调度。绝大多数教材会把虚拟化和资源池化分开考机制上它们一个是把物理机切开一个是把切好的碎片按需求拼给新虚拟机。习题答案里虚拟化提高资源利用率的结论要成立还得有一个好的放置策略调度器决定每一个新虚拟机放到哪台物理机。放置策略最朴素的是Best-Fit找剩余资源最紧的物理机高级一点的是考虑CPU和内存的多维装箱再往后是预测性调度根据历史负载数据做迁移。答案只说结论血泪经验是调度策略没写好资源池再大也会翻车。# 资源池分配模拟把“几核几G”的请求映射到物理机 class ResourcePool: def __init__(self, machines): # machines 为 [(剩余CPU核数, 剩余内存GB), ...] self.machines machines def allocate(self, cpu, mem): for i, (free_cpu, free_mem) in enumerate(self.machines): if free_cpu cpu and free_mem mem: self.machines[i] (free_cpu - cpu, free_mem - mem) return i # 命中返回物理机编号 raise Exception(资源不足) # 触发排队或弹性扩容 pool ResourcePool([(32, 128), (24, 64)]) print(pool.allocate(8, 16)) # 输出 0第一台机器还剩 (24, 112) print(pool.allocate(16, 32)) # 输出 1第一台剩不下落到第二台这个allocate函数按顺序扫描物理机找到第一台满足剩余资源条件的机器就返回。参数里cpu/mem是这份申请的诉求机器列表里的剩余cpu/mem是资源池当前的水位。真实调度器远比这个复杂——要加权计算CPU、内存、磁盘IO、网络带宽的多维约束还要考虑资源碎片、迁移成本和故障域。这个模拟演示的是资源池化最核心的一步请求与剩余水位匹配。注意它没处理最大满足还是首个满足的选择真实系统里后者更容易产生碎片前者则要付出扫描全部物理机的开销。3.3 网络虚拟化安全组与VPC在转发面上做了什么架构设计题里几乎必提安全习题答案写的网络安全通常包括防火墙、加密、访问控制。再往下挖一层公有云里最常用的两个网络对象——VPC和安全组机制上其实都是网络虚拟化的产物。VPC是一张隔离的虚拟二层网络。常见实现是Overlay隧道比如用VXLAN封装。数据包从虚拟机发出宿主机或虚拟交换机先给包打上一个VNIVXLAN Network Identifier再封装成UDP包转发到对端宿主机对端解封装后把原始包投递给目标虚拟机。不同VNI之间天然隔离广播域被限制在同一个VNI内部。普通答案说VPC提供逻辑隔离机制上就是VNI隔离。安全组则是一张有状态的分布式规则表。规则下发到每台宿主机上的虚拟交换机或智能网卡的流表里到达这台宿主机的东西向、南北向流量都会先查这张表命中则放行未命中则丢弃。这意味着安全组不需要一台集中的防火墙来转发所有流量吞吐不会被单点卡死相应地它也要求规则必须在所有宿主机上及时同步否则会出现规则已经改了某台机器还在按旧表放行的窗口期。习题答案不会考到VNI和流表但答安全组是分布式的、规则需要同步和答安全组就是一台防火墙就是全分和一半分的区别。网络虚拟化把物理网络变成了可以编程的资源这也是像管理虚拟机一样管理网络这一设计理念的来源。4. 分布式存储与架构设计可靠性是怎么被算出来的4.1 多副本不是备份是容错协议习题里分布式存储将数据分散存放在多个设备上提高可靠性和性能这句话看起来容易实际是分布式系统里最复杂的部分。要提高可靠性最朴素的办法是备份但备份解决的是误删了能恢复解决不了机器宕机时系统能不能继续写。后者需要的是在线副本协议。常见实现是每个数据块保存多份副本典型是三副本。写操作先落到主副本主副本再把数据同步给从副本真正返回写入成功之前需要满足一个仲裁条件。三副本常用读写都走quorum的策略要求至少2个副本完成IO才向客户端确认写入成功。因此三副本可以在任意一台机器故障时继续工作因为剩余两副本仍满足仲裁。三副本不是拍脑袋定的。N个副本能容忍的数量有公式floor((N-1)/2)个同时故障。N越大可靠性越高但写入放大、带宽占用、磁盘成本同步涨三副本是可靠性和成本的经验平衡点。习题答案说提高性能的那一半也很容易答偏。分布式存储通过把数据打散到多块磁盘上并行读写聚合IOPS和带宽这是性能的来源。但打散数据会带来新的问题数据放哪个节点、节点增减时数据怎么迁移。一致性哈希就是为解决节点增减时最小化数据迁移而设计的关键机制。# 一致性哈希环数据项顺时针找第一个虚拟节点 import hashlib def ring_hash(key: str) - int: return int(hashlib.md5(key.encode()).hexdigest(), 16) class ConsistentHashRing: def __init__(self, nodes, vnodes16): self.ring {} for node in nodes: for i in range(vnodes): # 每个物理节点生成多个虚拟节点 h ring_hash(f{node}:{i}) self.ring[h] node def locate(self, key): h ring_hash(key) for pos in sorted(self.ring): if pos h: return self.ring[pos] return self.ring[sorted(self.ring)[0]] # 绕环回起点 nodes [node-a, node-b, node-c] ring ConsistentHashRing(nodes) print(ring.locate(用户10001的头像))参数vnodes是每个物理节点在环上插入的虚拟节点个数。虚拟节点越多环上分布越均匀避免某个节点承担过大的哈希区间。真实系统里还要定期用心跳检测节点存活节点掉线时它负责的区间自动转移给下一个节点。习题答案只写分布式存储可靠性高、扩展性好但扩展性好的来源正是哈希映射的可重定位——新增一个节点时只有落在新增节点区间上的那部分数据需要迁移其余数据不动。如果只做简单取模映射加一台机器几乎要迁移全部数据那才是真正的灾难。4.2 架构设计题为什么标准答案总是分层冗余自动化云计算的架构设计题标准答案通常长这样资源层、虚拟化层、平台层、服务层每层之间通过API交互。答案背下来容易但为什么业界普遍接受这个分层答案分层回答的是控制面和数据面的分离问题。数据面负责高性能的转发与读写网络转发、存储读写、虚拟机运行这些路径要求低延迟高吞吐不能每笔流量都去问控制面。控制面负责决策调度、健康检查、扩缩容、计费更新频率低但对一致性要求高。习题答案强调的高可用落实到机制就是冗余加故障转移弹性落实到机制就是配额与自动伸缩联动安全落实到机制就是租户隔离加最小权限。可以说一道架构设计题的标准答法其实是把云厂商公开架构文档里的共同骨架复述了出来。另一个容易被忽略的点是自动化。架构设计题的标准答案只要写资源管理就一定会提到自动化部署因为一台物理机要变成可用资源中间远不止装一个虚拟化软件还要完成网络配置、存储挂载、监控注册、镜像拉取这一步往往比创建虚拟机本身更耗时。所以平台层的镜像服务、配置管理、监控告警本质上是在把从物理机到资源的流程标准化。习题答案里三个字平台技术展开就是这一整套自动化链路。答架构题写到资源层三个字容易但如果你能再说一句物理机的上线过程自动化程度决定平台可用性阅卷人就知道你真干过这事。4.3 块存储、文件存储、对象存储三份存储三个命名空间三种存储类型的比较是填空题高发区。答案背得出块存储性能高、文件存储共享方便、对象存储扩展性强但为什么机制的差别在命名空间和协议语义。块存储暴露的是裸设备语义按块号寻址走块设备协议延迟最低适合数据库这种对单机IO极度敏感的场景。但块设备没有跨节点的目录或文件锁协议所以云硬盘默认只能给一台虚拟机挂载两台虚拟机同时读写同一个块设备会踩到并发写同一块地址的坑。文件存储走POSIX语义有目录树有文件名支持多客户端共享访问共享协议就是为此设计的代价是元数据查询和锁管理带来额外开销。对象存储是扁平化命名空间桶加对象两层不搞目录树用HTTP REST API读写每个对象自带元数据天然适合海量非结构化数据扩展性最好但单对象的读写延迟通常比块存储高。习题答案常考选择哪种存储答题的关键不是比较性能数字而是先判断访问模式是单机随机读写、多机共享文件、还是海量对象上传下载。判断对了性能、成本、扩展性结论自然对。这块是最容易靠背答案得分、也最容易在真实选型里吃亏的内容。某图像处理Demo上线时选了文件存储存用户原图结果目录里积累了几十万个文件后元数据服务直接把写入拖垮后来换成对象存储才解决问题。答案里的扩展性强机制含义是命名空间的扁平化让元数据可以水平分片而文件系统的目录树天然是单点。5. 常见问题与避坑习题答案里最容易被照抄翻车的五处一套习题答案虽然按知识点整理了标准结论但很多答案是高度压缩的结论直接照抄到笔试和真实环境里都会翻车。以下几个坑是反复出现的。5.1 现象把三种服务模型当成性能金字塔很多同学背完IaaS、PaaS、SaaS的定义选型时直接选SaaS认为SaaS更高端。结果某次要做边缘计算场景现场根本没有可控的SaaS运行时只能回到IaaS自建。原因三种服务模型不是高低之分而是控制权交接程度的不同。SaaS在抽象层级上最高但也意味着你最没话语权平台升级、数据位置、运行环境都不由你决定。解决按故障域和升级权来选谁负责这一层谁就有最终决策权。不要因为抽象程度高就认为先进抽象只换责任不换优劣。5.2 现象多副本的答案永远写成备份某同学答三副本的作用写像备份一样防止数据丢失结果被扣分。原因备份是离线副本应对的是误删和灾难恢复副本是在线数据承担读写流量应对的是节点故障下的可用性。二者目标、粒度、一致性要求都不同。解决答题写数据冗余加故障恢复加读取负载均衡必要时补一句副本机制追求接近零的数据丢失备份则允许按备份频率回溯。把在线和离线这对词写清楚判断题就不再踩坑。5.3 现象私有云被认为天然更安全习题答案里私有云仅供组织内部使用让不少人产生幻觉——东西放在自己机房里肯定更安全。某公司把核心系统搬回自建私有云结果物理机房漏水、管理员误删配置、安全补丁滞后三件事一起找上门。原因私有云的安全模型里多了物理环境和管理员权限这两个内部威胁面而公有云经过大量租户打磨安全基线往往更成熟。解决不要用部署模式推导安全等级要用威胁模型推断——资产最怕谁、攻击面在哪、谁能触碰控制台再由这些决定部署模式与安全策略。安全是控制面和数据面的访问控制问题不是机房位置问题。5.4 现象装了虚拟机就以为自己是私有云有外包项目交付时在几台物理机上装了虚拟化软件加上一套管理面板就对外宣称我们提供私有云。客户试用时发现没人去创建虚拟机也没有计量报表最后验收不通过。原因虚拟化只完成了资源切分云计算还要有自助服务、调度、配额、计量、多租户隔离这些平台能力。管理面板不等于控制平面。解决验证一个系统是不是云看四条有没有资源池、有没有自助API、有没有配额与计量、有没有租户隔离。缺一条都只能叫虚拟化管理平台。5.5 现象混合云等于公有云加私有云某项目标书里写混合云架构实际只是两朵云各自跑各自的业务没有打通身份和数据。原因把部署模式当成了资源位置的组合忽略了混合云的定义是统一管理面下的多个资源池协同。解决判断时检查三件事网络是否打通、身份是否统一、数据能否在两边按策略流动。三者都满足才算混合云否则只是同时用了两种云。习题答案喜欢写混合云兼顾弹性与安全但这句结论的前提是有一个能把两边的策略、身份、数据揉到一起的控制面而控制面本身才是最难做的部分。6. 设计取舍习题答案是坐标系不是施工图习题答案给的标准结论是在理想模型下成立的工程实现的取舍比答案复杂得多。比如多副本提高可靠性这个结论在真实系统里不会一味增加副本数因为磁盘成本、网络带宽、写入时延都在随副本数增长。三副本是实践里最常见的平衡点但有些元数据服务用两副本加日志有些日志型存储用三副本加纠删码。关键设计决策永远是在可靠性、性能和成本之间找平衡点没有哪个结论可以脱离约束直接套用。另一个例子是弹性伸缩。习题答案说快速弹性是云的优势但真实系统的伸缩组一定要配最小实例数否则业务低谷时可能缩到只剩一台机器流量突刺一来就雪崩。答案把弹性说成特性工程把弹性说成风险与预案。习题答案工程实现要点多副本提高可靠性三副本加quorum用仲裁容忍故障虚拟化提高资源利用率多维调度加负载预测避免碎片和热点按需付费计量采样加账单聚合离线对账弹性伸缩配额加实例数下限不只靠负载触发验证方法也很简单拿一台真实云主机做实验。创建一台2核4G的虚拟机向里面加压测流量打开云控制台的监控图表看CPU曲线和扩缩容事件再对比账单上的计量周期。把教材答案当成实验假设而不是权威结论被验证过的结论才真正属于你。带项目的某导师说过一句话我现在写进团队约定里答案用来建立坐标系不拿来画施工图。从那以后我每次评估一个系统是不是云都强制走一遍五特性检查清单每次选存储都先问访问模式再查性能数字每次看安全方案都先画威胁模型再谈部署模式。这套方法从来不会让我后悔希望帮到你。本文还有配套的精品资源点击获取