认识云计算:魔法学院的公共资源池
小美、小强和小刚三个小朋友的故事还没讲完。上次我们说到,魔法学院的公共魔法池能同时满足三种不同的需求:小美要自己搭建魔法实验台,只需要基础的水晶和法杖供给,对应的是IaaS(基础设施即服务);小强要完成魔法编程作业,只需要一个能直接写咒语的平台,对应的是PaaS(平台即服务);小刚要和远方的魔法师朋友通讯,直接用现成的魔法通讯工具就行,对应的是SaaS(软件即服务)。三种服务模式的区别,其实就藏在三个小朋友的需求里——你到底需要自己准备多少东西,就能完成你的魔法任务?
要理解公共魔法池为什么这么有用,我们得先回到魔法学院过去几十年的历史。在公共魔法池出现之前,魔法学院的计算资源是分阶段演进的,刚好对应现实世界里计算机从单机到云的发展过程。
魔法学院计算资源的三个时代
第一个时代是魔法石时代(对应现实1940s-1990s的单机时代)。那时候每个魔法师都要自己带一块魔法石,所有魔法能量都来自这块石头。石头小的魔法师只能放个照明咒,石头大的能放个变形咒,要是石头坏了,所有魔法都用不了。对应现实里,早期的计算机比如1946年诞生的ENIAC,占地170平方米,重达30吨,耗电量150千瓦,算一次乘法要几秒,而且只能一个人用,所有程序、数据都存在自己的磁带上,别人根本用不了。魔法学院那时候每个班级都有自己的“魔法石”(也就是早期的服务器),每个班级的魔法作业都存在自己的魔法石里,要是魔法石坏了,整个班的作业都丢了,而且每个班级的魔法石能力不一样,有的班级的石头只能存100个魔法故事,有的能存10000个,资源差距特别大。
第二个时代是小魔法师联盟时代(对应现实1990s-2006年的局域网时代)。后来魔法学院发现,每个班级自己带魔法石太浪费了,有的班级石头用不完,有的班级不够用,于是就把一个年级的魔法师联合起来,建了一个公共的魔法水晶池,放在年级教室里,所有班级都能用。这样资源利用率高了很多,但是问题也来了:这个水晶池只能一个年级用,别的年级用不了,而且要是水晶池坏了,整个年级的魔法都用不了,还要专门请一个魔法师每天维护水晶池,充能、维修,成本很高。对应现实里,就是局域网的普及,一个学校、一个公司的电脑可以共享文件、共享打印机,但是资源还是局限在小范围内,而且需要专门的IT人员维护,成本很高。
第三个时代就是我们现在所在的公共魔法池时代(对应2006年至今的云计算时代)。2006年,亚马逊魔法大陆的魔法师们做了一个大胆的决定:把整个魔法大陆的魔法水晶、法杖、施法场地都统一起来,做成一个超大的公共魔法池,放在魔法大陆的地下,所有人都能通过魔法传送门按需取用,用多少付多少魔法币,不用自己维护。这就是云计算的起点——当年亚马逊推出的弹性计算云EC2服务,就是现实世界里第一个真正商用的公有云IaaS服务[^1]。魔法学院第一时间就把所有系统都搬到了公共魔法池上,一下子省了90%的维护成本,而且不管多少魔法师同时用,都不会卡顿。
三种服务模式的深度对比:你到底需要准备什么?
我们之前用三个小朋友的例子讲了三种服务模式的区别,现在我们可以把区别理得更清楚。云计算的服务模式是分层的,就像魔法池的分层供给:最底层是基础设施,中间是平台,最上层是软件,你需要的服务越往上,需要自己准备的东西就越少。
我们可以看下面这张对比表,不管是魔法学院的例子还是现实里的对应,都非常清晰:
| 服务模式 | 全称 | 你需要管理的部分 | 魔法学院例子 | 现实商用案例 | 适合谁 | |----------|------|------------------|--------------|--------------|--------| | IaaS | 基础设施即服务<br>Infrastructure as a Service | 操作系统、中间件、运行时、数据、应用程序 | 魔法水晶供给站:给你魔法水晶、基础法杖、施法场地,你自己选怎么搭配,自己管咒语练习,自己管魔法成果 | 阿里云ECS、AWS EC2、腾讯云CVM | 需要完全自定义环境的魔法师,比如要自己搭建魔法实验台的高级魔法师 | | PaaS | 平台即服务<br>Platform as a Service | 应用程序(代码/咒语) | 魔法作业平台:给你准备好法杖打磨、水晶充能的所有工具,你只要写对咒语,就能出魔法效果 | 微信小程序开发平台、Heroku、阿里云函数计算 | 只需要专注写咒语的魔法师,比如做魔法小程序、魔法
接续之前的对比表格,我们先把SaaS(软件即服务)的对应内容补全,再深入拆解三种服务模式的本质差异、云计算的底层特性,以及三个小朋友的真实实践案例,帮你彻底搞懂云计算的底层逻辑。
| 服务模式 | 全称 | 你需要管理的部分 | 魔法学院例子 | 现实商用案例 | 适合谁 | |----------|------|------------------|--------------|--------------|--------| | IaaS | 基础设施即服务<br>Infrastructure as a Service | 操作系统、中间件、运行时、数据、应用程序 | 魔法水晶供给站:给你魔法水晶、基础法杖、施法场地,你自己选怎么搭配,自己管咒语练习,自己管魔法成果 | 阿里云ECS、AWS EC2、腾讯云CVM | 需要完全自定义环境的魔法师,比如要自己搭建魔法实验台的高级魔法师 | | PaaS | 平台即服务<br>Platform as a Service | 应用程序(代码/咒语) | 魔法作业平台:给你准备好法杖打磨、水晶充能的所有工具,你只要写对咒语,就能出魔法效果 | 微信小程序开发平台、Heroku、阿里云函数计算 | 只需要专注写咒语的魔法师,比如做魔法小程序、魔法游戏的开发者 | | SaaS | 软件即服务<br>Software as a Service | 什么都不用管,直接用就行 | 魔法通讯工具:魔法学院直接给你装好的、能直接和远方的魔法师视频的工具,你打开就能用,不用管工具怎么来的,坏了有人修 | 微信、钉钉、腾讯会议、抖音 | 所有普通魔法师,只需要用现成工具完成任务的用户 |
三种服务模式的核心差异,可以用“做魔法奶茶”的例子一句话概括:IaaS是给你面粉、牛奶、锅,你自己做;PaaS是给你做奶茶的机器和配好的材料,你按按钮就行;SaaS是直接给你一杯做好的奶茶,你喝就行。你需要自己动手做的事情越多,对应的服务模式就越底层,自由度越高;需要自己动手做的事情越少,对应的服务模式就越上层,使用越简单。
要理解公共魔法池为什么比之前的“班级魔法石”“年级魔法池”好用,我们得先搞懂云计算的四个核心特性,这四个特性是判断一个服务是不是云计算的唯一标准,也是公共魔法池能同时服务12000名魔法师、成本还比之前低85%的核心原因。
云计算的四大核心特性:公共魔法池的魔法规则
1. 按需自助:不用等管理员,想要就要
在公共魔法池出现之前,魔法师要申请资源,得先找魔法管理员填申请表,等管理员审批,等管理员分配魔法石,最快也要等3个小时,要是半夜要做紧急魔法实验,根本申请不到资源。现在公共魔法池支持按需自助,魔法师只要对着魔法传送门念个申请咒语(对应现实的云控制台点几下),10秒钟就能拿到需要的魔法资源,想用多久用多久,用完自动还回去,完全不用等管理员审批。
对应现实里,你用云服务器不用找云厂商的销售签合同、等发货,自己在官网注册账号,充点魔法币(钱),10分钟就能拿到一台云服务器,想用1小时就用1小时,用完了删掉就不收费了。要是用传统的物理服务器,从申请、采购、发货、装系统、上架,最快也要等1周,根本满足不了突发的需求。
2. 资源池化:大家共享一个大池子,不用各玩各的
之前每个班级的魔法石是独立的,有的班级魔法石能力强,能存10000个魔法故事,有的班级魔法石能力弱,只能存100个,资源利用率平均只有20%,一半的魔法石能力都浪费了。公共魔法池把所有魔法学院的魔法水晶、法杖、施法场地都放到一个池子里,通过魔法虚拟化技术,把一块大的魔法蓝宝石(对应现实的CPU)分成很多小的虚拟水晶,每个魔法师拿到的都是独立的虚拟水晶使用权,互相不会影响——就像酒店的房间,每个房间都是独立的,但是水电是共用的,你不用关心你的房间在酒店的哪一层,只要能用就行。
资源池化最大的好处是资源利用率能到80%以上,相当于之前4倍的魔法水晶都省下来了,魔法学院不用花那么多钱买魔法石,成本自然就降下来了。对应现实里,云厂商的数据中心有几十万台物理服务器,通过