简介:这份习题答案集围绕刘鹏《云计算》第三版内容整理,面向高校云计算课程学习者、备考人员及授课教师,用于对照教材习题检验理解、梳理章节重点并查漏补缺。内容覆盖云计算基础知识、IaaS/PaaS/SaaS服务模型、公有云/私有云/混合云/社区云部署模式,以及架构设计中的虚拟化、分布式存储、平台与安全技术,并延伸至企业、个人和公共服务应用场景及数据泄露、访问控制、加密、灾难恢复等安全议题,可帮助读者把概念辨析、架构要点与应用分析串联起来。压缩包共1个docx文件,约9.51MB,以讲义形式呈现,适合课程复习、考前梳理或教师命题时参考。已有1700人学习,便于读者按章节定位概念、核对答案思路,并建立从基础理论到场景应用的完整知识框架。
1. 云计算到底是什么:先别背定义,想想“租房”这件事
很多人第一次翻开云计算教材第三版,看到课后习题里“按需服务”“资源池化”这些词,脑子是懵的——每个字都认识,连起来不知道在说啥。我第一次也是,硬背了三天,合上书还是不会画架构图。其实你可以把云计算想成租房:自己买服务器等于盖房,买地、施工、维护全包;云计算等于拎包入住,用多少付多少,水电网都有人管。它解决的核心问题就一个:让计算资源像水电一样随取随用,不用自己囤一堆机器。适合谁?零基础想入门云计算、要应付课程习题、又不想一上来就被术语劝退的人。这份习题答案讲义,就是帮你把“租来的房”一间间看清楚。
2. 先搞懂三种服务模型:IaaS、PaaS、SaaS 到底谁管哪一层
2.1 用“吃饭”把三种模型对上号
教材里讲服务模型,一般上来就是三个英文缩写。新手最容易犯的错,是把它们当成三个并列的产品名字去背,结果背完就忘。换个方式,用吃饭来对号入座。
IaaS 就像你自己买菜做饭。云厂商把厨房、灶台、水电给你准备好,菜怎么买、火候怎么控、盐放多少,全是你自己的事。对应到技术上,云厂商管硬件和虚拟化,你管操作系统、运行环境、应用代码。你租的是一台“空机器”,装什么系统、跑什么服务,自己决定。
PaaS 像半成品净菜。菜切好了、调料配好了,锅和灶也是现成的,你只负责下锅炒。对应到技术上,云厂商管到操作系统和运行环境,你只写自己的应用代码。数据库、中间件这些“锅碗瓢盆”,平台已经给你摆好了。
SaaS 像直接点外卖。你打开软件就用,不用关心后厨几个人、灶台什么牌子。对应到技术上,你几乎什么都不用管,登录网页或客户端就能干活。邮箱、在线文档、在线表格,都是这个路子。
为什么零基础要先搞懂这三个?因为后面所有的架构设计、部署模式、安全策略,都挂在这三个模型上。你分不清谁管哪一层,画架构图的时候就会把“数据库”画到 IaaS 的框里,把“操作系统”画到 PaaS 的框里,一画就错。我第一次学的时候,就是靠“谁管操作系统”这一条分界线,把三个模型彻底分开的。
2.2 一张对照表:别再把 PaaS 和 SaaS 搞混
新手最容易混的是 PaaS 和 SaaS,因为这两个听起来都像“别人帮你弄好了”。区别其实很简单:PaaS 给你一个能开发的环境,SaaS 给你一个能直接用的成品。下面这张表可以贴在书桌上,做习题的时候对着看。
| 服务模型 | 你负责管什么 | 云厂商负责管什么 | 典型使用场景 | 记忆口诀 |
|---|---|---|---|---|
| IaaS | 操作系统、运行环境、应用代码 | 硬件、虚拟化、机房 | 需要自己装环境、做实验 | 租空房,自己装修 |
| PaaS | 只写应用代码 | 操作系统、运行环境、中间件 | 快速部署自己的应用 | 租厨房,净菜下锅 |
| SaaS | 几乎什么都不管 | 从硬件到软件全包 | 直接用现成软件干活 | 点外卖,开盒就吃 |
做习题时有个很实用的判断方法:题目里出现“用户自己安装操作系统”,基本就是 IaaS;出现“用户只负责开发应用”,基本就是 PaaS;出现“用户通过浏览器直接使用”,基本就是 SaaS。这个判断法不严谨,但应付入门阶段的习题足够用,等你把基础打牢再回头补细节。
还有一点要提醒:这三个模型不是“谁比谁高级”,而是“谁承担多少运维责任”。责任越往下推给云厂商,你越省事,但可控性也越低。教材里讲“按需付费”,其实付的不只是机器钱,也包括你把运维责任交出去的那部分成本。
2.3 用 20 行 Python 给服务模型做判断
光看表容易手痒,可以写一小段代码把判断逻辑跑一遍。这段代码不调用任何云平台接口,只用 Python 标准库,目的是把“谁管哪一层”变成可以执行的规则。
# 判断一个云服务更接近 IaaS、PaaS 还是 SaaS # 核心思路:看用户自己管到哪一层 def classify_service(manages_os, manages_runtime, manages_app): """ manages_os: 用户是否自己管理操作系统(True/False) manages_runtime: 用户是否自己管理运行环境,比如数据库、中间件 manages_app: 用户是否自己管理应用程序代码 """ if manages_os and manages_runtime and manages_app: return "IaaS:你管操作系统及以上,云厂商只管硬件和虚拟化" elif not manages_os and manages_runtime and manages_app: return "PaaS:云厂商管到运行环境,你只管应用代码" elif not manages_os and not manages_runtime and manages_app: return "SaaS:你几乎不用管底层,直接用软件" else: return "边界模糊,需要结合具体产品判断" # 三种典型场景 print(classify_service(True, True, True)) # 自己装系统、自己装数据库、自己写代码 print(classify_service(False, True, True)) # 平台给了系统,数据库自己配,代码自己写 print(classify_service(False, False, True)) # 系统和运行环境都是平台的,只写业务代码三个参数分别对应“操作系统”“运行环境”“应用代码”这三层。第一行输出是 IaaS,因为你连操作系统都自己管;第二行输出是 PaaS,因为操作系统这一层已经由平台接管;第三行输出是 SaaS,因为连运行环境都不用你操心。跑完这段代码,再回去看教材里“三种服务模型的区别”那道习题,你会发现答案不用背,逻辑已经长在脑子里了。
提示:这段代码只用于理解概念,真实云产品的边界经常是模糊的,比如有的数据库服务既像 PaaS 又像 IaaS,遇到这种题先看题目问的是“运维责任”还是“产品形态”。
3. 第一个能跑的例子:用 40 行 Python 模拟一个“云资源池”
3.1 为什么第一个例子不装云 SDK 也能跑
很多新手卡在第一步:想动手,结果注册账号、实名认证、绑支付方式,折腾一晚上,代码一行没写,热情先耗光了。这是典型的入门翻车点。我的血泪经验是:入门阶段先用本地代码把“资源池化”的逻辑跑通,比在云控制台里点鼠标更能理解概念。云控制台把细节藏起来了,你点“创建”就出来一台机器,反而不知道背后发生了什么。
这个例子的目标很明确:用 Python 模拟一个资源池,池子里有固定数量的 CPU 和内存,谁来申请就分配,用完就归还,资源不够就拒绝。教材里讲的“资源池化”“按需分配”“快速扩展”,在这段代码里都能找到对应的行。不需要装任何第三方库,Python 3.8 以上直接跑。
为什么选 Python?因为语法接近大白话,零基础也能看懂每一行在干什么。你不需要先学完面向对象、不需要懂网络编程,只要知道“类”大概是个什么盒子就行。
3.2 动手写:把 CPU 和内存放进一个池子
新建一个文件,名字随便,比如cloud_pool.py,把下面这段代码完整敲进去。建议不要复制粘贴,手敲一遍,敲的过程中你会注意到每一行在做什么。
# 模拟一个最简云资源池:CPU 和内存按需分配、用完归还 class ResourcePool: def __init__(self, cpu_cores, memory_gb): self.cpu_cores = cpu_cores # 池子里总共多少核 CPU self.memory_gb = memory_gb # 池子里总共多少 GB 内存 self.used_cpu = 0 # 已经分出去多少核 self.used_memory = 0 # 已经分出去多少 GB def request(self, name, cpu, memory): # 先算一下池子里还剩多少资源 free_cpu = self.cpu_cores - self.used_cpu free_memory = self.memory_gb - self.used_memory # 剩余资源够,就分配;不够就拒绝 if cpu <= free_cpu and memory <= free_memory: self.used_cpu += cpu self.used_memory += memory print(f"[分配成功] {name} 拿到 {cpu} 核 / {memory} GB") return True else: print(f"[分配失败] {name} 需要 {cpu} 核 / {memory} GB," f"当前只剩 {free_cpu} 核 / {free_memory} GB") return False def release(self, name, cpu, memory): # 用完归还,池子里的资源重新变成可用状态 self.used_cpu -= cpu self.used_memory -= memory print(f"[已释放] {name} 归还 {cpu} 核 / {memory} GB") def status(self): # 打印当前池子的使用情况 print(f"池子使用情况:CPU {self.used_cpu}/{self.cpu_cores} 核," f"内存 {self.used_memory}/{self.memory_gb} GB") # 建一个 16 核 / 32 GB 的小资源池 pool = ResourcePool(16, 32) # 第一个申请:测试环境要 4 核 8 GB pool.request("测试环境", 4, 8) # 第二个申请:演示环境要 8 核 16 GB pool.request("演示环境", 8, 16) # 看一下池子还剩多少 pool.status() # 第三个申请:临时任务要 8 核 16 GB,这时候资源不够了 pool.request("临时任务", 8, 16) # 测试环境用完归还 pool.release("测试环境", 4, 8) # 归还之后再申请一次,这次能成功 pool.request("临时任务", 8, 16) # 最终状态 pool.status()代码里的cpu_cores和memory_gb是池子的总容量,你可以改成 8 核 16 GB 或者 32 核 64 GB,观察输出怎么变化。request方法对应“申请资源”,release方法对应“释放资源”,status方法对应“查看使用情况”。这三个动作,就是云平台控制台里最常见的三个按钮。
3.3 跑完看三行输出:按需分配到底长什么样
在终端里执行python cloud_pool.py,你会看到类似下面的输出:
[分配成功] 测试环境 拿到 4 核 / 8 GB [分配成功] 演示环境 拿到 8 核 / 16 GB 池子使用情况:CPU 12/16 核,内存 24/32 GB [分配失败] 临时任务 需要 8 核 / 16 GB,当前只剩 4 核 / 8 GB [已释放] 测试环境 归还 4 核 / 8 GB [分配成功] 临时任务 拿到 8 核 / 16 GB 池子使用情况:CPU 16/16 核,内存 32/32 GB第一行和第二行说明资源可以按需分配,不用一开始就把所有机器买断。第三行说明池子的容量是共享的,多个申请会互相影响。第四行是重点:资源不够的时候,系统会拒绝,而不是硬撑。第五行说明释放之后资源可以回收再利用。最后一行说明池子被占满了,再来新申请就得排队或者扩容。
这五六个动作,对应教材里“资源池化”“按需服务”“快速扩展”三个特点。资源池化就是把零散的 CPU 和内存放进一个池子统一管理;按需服务就是谁要多少给多少;快速扩展就是池子不够的时候加机器,而不是给每个申请单独买一台。你把这几个词和输出对上号,习题里问“云计算的特点是什么”,你就不用死记硬背了。
注意:这段代码没有处理“并发申请”的情况,真实云平台同一时刻可能有几千个申请进来,所以需要加锁和排队机制。入门阶段先理解单线程的逻辑,等基础打牢再去看并发。
3.4 把代码结果翻译回教材语言
跑完代码,建议做一件事:打开教材第三章的课后习题,找一道问“资源池化的好处”的题,用你自己的话把刚才的输出解释一遍。比如你可以写:资源池化让多个用户共享同一批 CPU 和内存,不用每人买一台机器,空闲的资源可以释放出来给下一个人用,所以利用率高、成本低。这样写出来的答案,比抄标准答案更有底气,因为你是看着输出推出来的。
如果题目问“云计算和传统 IDC 的区别”,你也可以用这段代码举例:传统 IDC 是每个申请单独一台物理机,池子里有多少核就只能分多少核,没法动态调整;云计算是把资源放进池子,按需分配、用完归还,所以更灵活。这种答法不一定拿满分,但能看出你真的理解了。
4. 四种部署模式怎么选:公有云、私有云、混合云、社区云
4.1 用“住哪儿”理解四种部署模式
服务模型讲的是“谁管哪一层”,部署模式讲的是“这套东西放在哪儿、给谁用”。教材里列了四种:公有云、私有云、混合云、社区云。名字听起来很正式,其实用住哪儿一打比方就清楚了。
公有云像住酒店。酒店是别人的,房间谁都能订,你拎包入住,按天付费。优点是省事、便宜、随时能换;缺点是隔壁住谁你管不着,隔音好不好要看酒店管理。对应到技术上,云厂商把资源开放给公众,你按需租用,数据和系统跑在厂商的机房里。
私有云像自己盖别墅。地是你的,房子是你的,装修风格你说了算。优点是隐私好、可控性强;缺点是盖房贵、维护麻烦,屋顶漏水得自己爬上去修。对应到技术上,组织内部自己建一套云平台,只给内部人用,安全性和可控性高,但前期投入和运维成本也高。
混合云像平时住酒店、重要东西放自己家保险柜。日常业务跑在公有云上,核心数据放在私有云里,两边打通。优点是灵活,该省的省、该保的保;缺点是要处理两边怎么连、数据怎么同步,架构复杂度上来了。
社区云像几个朋友合租一栋楼。一群人因为共同的需求凑到一起,共用一套云设施,成本分摊,规则共定。优点是比单独盖房便宜,比住酒店更有针对性;缺点是得协调各方需求,谁多出钱、谁多用资源,容易扯皮。
4.2 三个问题帮你判断该用哪种
新手做选型题最容易犯的错,是上来就背“公有云适合中小企业,私有云适合大企业”。这种口诀太粗,考试可能勉强能用,真到做项目就翻车。更靠谱的方式是问三个问题。
第一个问题:数据敏感不敏感?如果数据涉及个人隐私、核心业务,或者行业有明确的合规要求,优先考虑私有云或混合云。如果只是公开的演示项目、学习环境,公有云完全够用。
第二个问题:团队有没有运维能力?私有云不是买几台服务器就完事了,网络、存储、安全、监控都得有人管。小团队一上来就搞私有云,最后往往变成“买了机器没人维护”,血泪经验。没有专职运维,先从公有云起步,把精力放在业务上。
第三个问题:预算和弹性需求怎么平衡?业务波动大、需要快速扩容,公有云的按需付费更划算。业务稳定、长期跑,私有云摊薄下来可能更便宜。混合云适合“核心稳定、边缘波动”的场景,但前提是你能接受两套环境的管理成本。
这三个问题没有标准答案,但能帮你把“选型”从背口诀变成讲逻辑。做习题的时候,题目里一般会给出场景描述,你按这三个问题逐个过一遍,答案自然就出来了。
4.3 一张选型对照表与常见误判
| 部署模式 | 谁在用 | 主要优点 | 主要代价 | 常见误判 |
|---|---|---|---|---|
| 公有云 | 中小企业、个人开发者、临时项目 | 省事、弹性好、按需付费 | 数据在别人机房,长期成本可能偏高 | 以为什么都能上公有云,忽略了合规要求 |
| 私有云 | 对数据敏感的组织、大型团队 | 可控性强、安全性高 | 前期投入大、需要运维团队 | 小团队硬上私有云,最后没人维护 |
| 混合云 | 核心数据敏感、边缘业务波动的组织 | 灵活、兼顾安全与弹性 | 架构复杂、两边要打通 | 以为“公有云加私有云”就是混合云,忽略了网络打通和数据同步 |
| 社区云 | 有共同需求的群体、行业联盟 | 成本分摊、规则共定 | 协调成本高、责任边界容易模糊 | 把社区云当成公有云的一种,忽略了“特定社区”这个前提 |
最常见的误判是“私有云一定比公有云安全”。安全不是由部署位置决定的,而是由配置和管理决定的。私有云如果门禁不严、补丁不打,照样出事;公有云如果权限管好、加密到位,也能很稳。教材里讲安全章节的时候,会把这一点展开,入门阶段先记住“安全是管出来的,不是放出来的”。
5. 新手最容易踩的 5 个坑:从“背答案”到“能跑通”的排查清单
5.1 坑一:把虚拟化当成云计算
现象:习题里问“虚拟化和云计算是什么关系”,张口就答“一回事”,或者把“虚拟机”当成“云计算”的同义词。
原因:教材里虚拟化技术的篇幅很大,什么 Hypervisor、全虚拟化、半虚拟化,看多了容易把手段当成整体。加上很多实验课一上来就让你装虚拟机,更强化了这个印象。
解决:记住一条分界线——虚拟化解决“一台物理机怎么变成多台逻辑机”,云计算解决“这些逻辑机怎么按需租出去、怎么计费、怎么管理”。虚拟化是云计算的关键技术之一,但不是全部。翻到习题里“云计算的关键技术”那道题,把虚拟化、分布式存储、云计算平台技术、安全技术列成四个框,虚拟化只占一个框,这样就不会以偏概全了。
5.2 坑二:习题答案背得很熟,架构图一画就空白
现象:选择题做得飞快,判断题也对答如流,但题目一旦变成“画出云计算三层架构并说明各层功能”,笔就停住了。
原因:答案给的是结论,没给推导过程。你背的是“资源层、平台层、应用层”这三个词,但没想过为什么这么分、每层对应哪个服务模型。
解决:拿一张白纸,先画三个横框,从下往上写“资源层、平台层、应用层”。然后把 IaaS 填进资源层旁边,PaaS 填进平台层旁边,SaaS 填进应用层旁边。填完再问自己:虚拟化在哪一层?分布式存储在哪一层?安全机制覆盖哪几层?这张图能自己默画出来,架构设计那道大题基本就稳了。
5.3 坑三:一上来就啃分布式存储的底层代码
现象:第一天学云计算,第二天就去找分布式存储的开源项目,想读源码,三天后放弃,觉得自己不适合学这个。
原因:跳过了操作系统和网络基础。分布式存储里全是“副本”“一致性哈希”“脑裂”这些词,没有进程、内存、网络通信的概念打底,读起来像天书。
解决:入门阶段先把第 3 章那个资源池的例子跑通,理解“资源要放在池子里统一管理”这个思路。然后知道三件事就够了:数据放多台机器上比放一台更可靠;副本是防止某台机器坏了数据丢失;一致性是说多台机器上的数据要尽量一样。这三件事能用自己的话讲清楚,再去看分布式存储的章节,就不会发怵了。
5.4 坑四:觉得安全章节是凑数的,直接跳过
现象:复习的时候把安全章节翻过去,觉得概念多、分值低,不如多背两道架构题。
原因:安全章节确实显得散,身份认证、访问控制、数据加密、网络安全、灾难恢复,每块都能单独讲一章,新手抓不住主线。
解决:把安全策略归成四类,每类记一个生活例子。身份与访问控制——进小区要刷门禁卡;数据加密——快递箱上密码锁;网络安全——小区围墙和监控;灾难恢复——家里备灭火器和急救包。四类归完,再回去看习题里“云计算安全面临哪些挑战”,你就能按“数据泄露、未授权访问、恶意攻击、自然灾害”一条条对上,不用死背。
5.5 坑五:只看不跑,环境永远停在“明天装”
现象:收藏了十几份讲义,网盘里存了一堆资料,代码一次没跑过,环境永远在“明天装”。
原因:总想“等学完基础再动手”,结果基础越学越多,动手的时间越推越远。这是新手最大的后悔药——等到要用的时候,发现连 Python 都没装。
解决:今天就跑第 3 章那 40 行代码,不用装云 SDK,不用注册账号,有 Python 就能跑。跑完把输出截图存下来,旁边写一句“这行对应资源池化”。第二天再改一个参数,把池子从 16 核改成 8 核,看输出怎么变。每天十分钟,比收藏一百份资料管用。
6. 下一步学什么:从习题答案走到能自己搭一套的路线图
6.1 按这个顺序补基础,少走半年弯路
习题答案能帮你应付考试,但想真正入门,还得按顺序补几块基础。下面这张表是我带新手时最常用的顺序,你可以根据自己的时间调整,但尽量别跳步。
| 顺序 | 学什么 | 大概花多久 | 怎么检验自己学会了 |
|---|---|---|---|
| 1 | 操作系统与网络基础:进程、内存、IP、端口 | 两到三周 | 能用自己的话解释“一个请求从浏览器到服务器经过了什么” |
| 2 | 虚拟化与容器:先懂概念,再动手跑一个容器 | 两周 | 能说清虚拟机和容器的区别,能跑起一个最简单的容器 |
| 3 | 三种服务模型与四种部署模式 | 一周 | 随便给一个产品,能判断它属于 IaaS/PaaS/SaaS 中的哪一类 |
| 4 | 架构设计:画三层图,标出虚拟化、存储、安全的位置 | 两周 | 白纸默画三层架构,每个框能讲出功能 |
| 5 | 安全四类策略:身份、加密、网络、灾备 | 一周 | 每类能举一个生活例子,能对上教材习题 |
这张表不用严格按周执行,但顺序别乱。操作系统和网络是地基,虚拟化和容器是砖块,服务模型和部署模式是图纸,架构设计是盖房,安全是验收。地基没打好就盖房,迟早要返工。
6.2 一个可以马上做的练习
把第 3 章的资源池代码复制一份,改成两个池子:一个叫“公有池”,一个叫“私有池”。公有池放 8 核 16 GB,私有池放 4 核 8 GB。写一个函数,先往私有池申请,私有池不够再往公有池申请。跑通之后,你就用代码模拟了一遍“混合云”的基本逻辑。这个练习不超过 20 行,但能把部署模式那一章的知识点串起来。
我以前也是背完答案就合书,觉得懂了。后来被问“你这个资源池怎么扩容、扩容的时候已有申请怎么办”,当场卡住。从那以后我每次看完一章习题,都强制自己写一个不超过 50 行的小例子跑一遍,跑不通就回去翻书。这个习惯帮我省了很多后悔药。希望帮到你。
本文还有配套的精品资源,点击获取