第一章 欢迎来到云上乐园:云计算架构设计导论
周末的下午,小明攥着平板电脑窝在沙发上,点开《我的世界》云游戏入口,不用等半小时下载安装包,30秒后就进入了攒了三个月的存档世界——他的小木屋旁边种满了向日葵,矿洞里堆满了钻石。与此同时,他的同桌小美正把刚画完的科幻画上传到班级共享云盘,省得第二天带U盘怕丢;小美的妈妈打开手机云相册,给爷爷奶奶看上周去游乐园拍的全家福,照片清晰得连妹妹嘴角的冰淇淋渍都看得清楚。你有没有发现,这些我们天天用、却很少留意的服务,都有一个共同的关键词:云。
你可能会问:云不是在天上飘着的、下雨的时候才会看到的东西吗?怎么跑到手机和电脑里了?其实我们说的“云计算”,根本不是天上的云朵,而是一群藏在遥远的数据中心里、数量多到数不清的超级电脑,通过互联网把它们的能力打包成“服务”,像自来水、电力一样,我们打开水龙头就有水,按开关就有电,打开APP就能用云服务,不用关心水是从哪座水库来的,电是哪座发电厂发的,也不用关心云服务背后的电脑是谁的、放在哪。
在云计算流行之前,我们要用电脑、玩游戏、存照片,都得靠“本地计算”——就像你想吃冰淇淋,得自己买冰箱、买冰淇淋原料、自己冻,原料没了要自己买,冰箱坏了要自己修,要是搬家带不走,冰淇淋就没了。而云计算就像家楼下的冰淇淋店,你想吃啥口味的直接买就行,不用自己准备原料,不用自己修冰箱,吃不完还能存在店里的冷柜,下次再来拿,哪怕你搬家到别的城市,只要找到这家冰淇淋店的分店,就能拿到你的冰淇淋。两者的核心差异可以用下表清晰体现:
| 对比维度 | 本地计算 | 云计算 | | --- | --- | --- | | 设备成本 | 需要自己购买电脑、硬盘等硬件,成本高 | 按需租用云端资源,按使用量付费,成本低 | | 数据安全 | 硬件坏了、丢了,数据可能永久丢失 | 云端有多份备份,硬件坏了数据也不会丢 | | 扩展能力 | 硬盘满了要自己买新的,装不下 | 云端容量可以随时增加,想存多少存多少 | | 使用门槛 | 需要自己安装软件、维护系统,会操作才能用 | 打开浏览器或APP就能用,不用懂技术 |
<!-- 纸书格式:此处配全彩插图《云上乐园基础设施全景》,插图说明:将云计算核心资源对应为儿童熟悉的乐园设施,服务器集群对应游乐设施,存储系统对应储物柜,网络对应园区交通,安全体系对应安保急救,插图中隐藏3个乐高贴纸、2个Minecraft主题彩蛋,供读者寻找 --> <!-- 电子版侧边栏:你知道吗?你每次在网盘传一张100M的照片,其实照片会被分成10块,分别存在3个不同城市的储物柜里,就算一个城市停电了,你的照片也不会丢哦 -->
如果我们把整个云平台比作一个超大的“云上乐园”,那乐园里的所有设施,就是我们用云计算能拿到的所有资源,这个比喻再合适不过了。我们可以用下面的全景图看懂云上乐园的每一个部分:
```mermaid graph TD A[云上乐园入口<br>(互联网接入层)] --> B[核心游乐区<br>(服务器集群)] A --> C[物资仓储区<br>(存储系统)] A --> D[园区交通网<br>(网络设施)] A --> E[安保急救站<br>(安全与运维体系)] B --> B1[过山车<br>(通用计算服务器)] B --> B2[旋转木马<br>(云游戏服务器)] B --> B3[科普教室<br>(在线学习服务器)] C --> C1[个人储物柜<br>(对象存储)] C --> C2[共享仓库<br>(文件存储)] C --> C3[临时寄存柜<br>(块存储)] D --> D1[园区小火车<br>(骨干网络)] D --> D2[步行小路<br>(边缘节点)] E --> E1[安保人员<br>(防火墙/入侵检测)] E --> E2[急救站<br>(容灾备份系统)] %% 样式设置 style A fill:#87CEEB,stroke:#333,stroke-width:2px style B fill:#FFD700,stroke:#333,stroke-width:2px style C fill:#98FB98,stroke:#333,stroke-width:2px style D fill:#FFA07A,stroke:#333,stroke-width:2px style E fill:#D8BFD8,stroke:#333,stroke-width:2px style B1 fill:#FFFACD,stroke:#333 style B2 fill:#FFFACD,stroke:#333 style B3 fill:#FFFACD,stroke:#333 style C1 fill:#E0FFE0,stroke:#333 style C2 fill:#E0FFE0,stroke:#333 style C3 fill:#E0FFE0,stroke:#333 ```
你看这张图里,云上乐园的入口就是互联网,你想进乐园玩,只要连上网就行。核心游乐区的服务器就是乐园里的各种游乐设施:过山车是最普通的通用服务器,能跑各种程序;旋转木马是专门给云游戏准备的服务器,运行速度快,不会卡;科普教室是给在线学习平台准备的,能同时容纳几百个小朋友一起上网课。物资仓储区的存储系统就是乐园里的储物柜:个人储物柜是给你存私人照片、作业的,只有你能打开;共享仓库是给班级、公司存公共文件的,有权限的人都能进;临时寄存柜是给程序临时存数据的,用完就清。园区交通网就是乐园里的小火车和步行路,负责把游客(数据)从入口送到各个游乐设施,再把结果送回来。安保急救站就是乐园里的安保和急救人员,负责抓坏人(黑客攻击),还有如果哪个游乐设施坏了,马上把游客转移到别的设施,不会让你受困。
<!-- 电子版侧边栏:小知识时间!全球现在有超过1000个这样的“云上乐园”,其中最大的几个分别属于亚马逊、谷歌、微软,还有中国的阿里云、腾讯云。中国的云上乐园数量已经超过全球的30%,我们平时用的网盘、云游戏,大部分都是中国自己的云上乐园提供的哦! -->
根据中国信息通信研究院2024年发布的《云计算发展白皮书》,2023年全球云计算市场规模已经达到5230亿美元,同比增长18.6%,其中中国的云计算市场规模超过4000亿元人民币,同比增长25.3%,已经占到全球市场的15%左右。这意味着,我们平时用的几乎所有互联网服务,背后都有云计算的支撑。比如你平时玩的《原神》云游戏,背后就是一套非常复杂的云架构:用专门的游戏服务器跑游戏程序,用高速存储存游戏资源,用低延迟网络把画面传到你的平板上,你点一下屏幕的操作,再通过网络传到服务器,整个过程延迟不到50毫秒——延迟就是你发出一个指令到收到回复的时间,云游戏要求延迟必须低于100毫秒,不然你点了一下跳跃,半天才有反应,就会觉得卡。要是没有优秀的架构设计,云游戏根本不可能这么流畅。
你可能会问:直接用别人已经做好的云服务不就行了吗?为什么还要学架构设计?想象一下,你要给学校的科技节做一个“云上画展”,需要能存1000张小朋友的画,还要能同时让全校1000个小朋友一起看,不能卡,不能丢。如果你不懂架构设计,直接用一个普通的云存储,很可能人多的时候就卡,或者突然丢了几张画。但如果你学了架构设计,就知道要给画展单独搭一个小型的云上乐园:用3个储物柜存画,用专门的服务器做展示,用备用网络防止断网,这样科技节的时候,画展就能顺顺利利开,不会出问题。2023年某小学的科技节云画展,就是因为用了正确的架构设计,就算同时有1200个小朋友访问,也没有卡,也没有丢任何一幅画,最后还拿了全国青少年科技创新奖哦!
那到底什么是架构设计?你有没有搭过乐高或者积木?如果直接抓着一堆积木往上堆,很可能搭到一半就塌了,或者搭好了发现门开不了,窗户装不上。聪明的搭建师都会先画设计图:先算好要搭多高,用多少块积木,地基怎么打,门和窗户装在哪,哪些地方要加粗的积木承重,哪些地方可以空着放装饰。云上的架构设计,就是搭云上乐园之前的设计图,它不是随便画几张图就行,而是要解决三个最核心的问题:第一,稳不稳:比如乐园里的过山车坏了,会不会影响旋转木马运行?会不会整个乐园都关门?第二,快不快:游客从入口到过山车要走多久?上传一张照片要等多久?第三,省不省:乐园只有10个游客的时候,会不会开100个游乐设施浪费钱?来了1000个游客的时候,会不会只有10个设施不够用?
如果你每次搭乐园都自己从零开始想设计图,肯定很费时间,而且很可能踩别人已经踩过的坑。比如有人发现,把储物柜分散放在乐园各个角落,比全放在入口旁边好——就算入口堵了,游客也能在附近的储物柜存东西;还有人发现,每个游乐设施旁边都放一个备用的,就算主设施坏了,马上换备用的,游客根本感觉不到。这些经过成千上万的云搭建师验证过、好用又高效的搭建规则,就是“架构设计模式”。
我们可以用一个具体的例子看懂架构设计模式的作用:假设我们要搭一个能存1000个小朋友作业的云存储,有两种搭法。第一种是单点存储架构:只放一个大大的超级储物柜,所有作业都存在这里面,优点是省钱,缺点是如果这个储物柜坏了,所有小朋友的作业都拿不到了。第二种是高可用分布式存储架构:做3个一样的储物柜,每个都存所有作业的副本,3个储物柜放在不同的城市,就算一个城市地震了,另外两个城市的储物柜还是好的,只要有一个储物柜正常,作业就不会丢。两种架构的对比如下:
```mermaid graph LR subgraph 单点存储架构[单点存储架构:只有一个储物柜] A[用户] --> B[超级储物柜] end subgraph 高可用分布式存储架构[高可用分布式存储架构:3个分布式储物柜] C[用户] --> D[北京储物柜] C --> E[上海储物柜] C --> F[广州储物柜] end %% 样式设置 style A fill:#FFD700 style B fill:#FF6B6B,stroke:#FF0000,stroke-width:3px style C fill:#98FB98 style D fill:#87CEEB,stroke:#00FF00,stroke-width:2px style E fill:#87CEEB,stroke:#00FF00,stroke-width:2px style F fill:#87CEEB,stroke:#00FF00,stroke-width:2px style B1[故障提示:<br>储物柜损坏] fill:#FF0000,color:#FFF B --> B1 ```
你看左边的单点存储架构,只有一个储物柜,要是这个柜子坏了,所有用户的作业都拿不到了。右边的高可用分布式架构,有3个分散在不同城市的储物柜,每个都存了所有作业的副本,就算其中一个坏了,另外两个还是好的,用户根本感觉不到有问题。这种“多副本分散存储”的模式,就是现在所有云存储都在用的经典架构设计模式,它已经被全球的云服务商用了十几年,验证过无数次,绝对不会出错。
<!-- 电子版侧边栏:你知道吗?最早的云计算概念是2006年谷歌公司提出的,那时候的云还只是用来存邮件、搜网页,谁能想到现在,我们能用云玩3A游戏、用云跑人工智能、甚至用云打造整个虚拟的元宇宙乐园?而我们这本书要学的云架构设计,就是搭建这些未来乐园的核心技能哦! -->
你可能会问:我以后又不一定当云搭建师,为什么要学这个?其实架构设计的思维不止能用在做云服务上,你做任何需要“搭建”的事情都能用:比如你组织班级运动会,要先规划好项目、安排好人员、准备好备用方案,这就是架构设计;你搭一个乐高城堡,要先想好地基怎么打、房间怎么分布,这也是架构设计。学会了架构设计的思维,你做任何事都会更有条理,更少出错。
说了这么多,你可能会问:这本书为什么有三种不同的版本?我应该选哪一个?别着急,
别着急,我们先来分别认识一下这三个版本各自的特点,你可以根据自己的学习习惯选最适合的:
首先是📖 纸书版本,它就像你平时读的童话故事书一样,拿在手里有实实在在的纸张触感,翻页的时候能闻到淡淡的油墨香。我们特意为纸书设计了全彩的跨页大图,比如前面提到的《云上乐园基础设施全景图》,你可以用彩笔在上面涂色,给过山车画上安全扣,给储物柜画上你喜欢的图案,空白处还可以写自己的搭建笔记。如果你平时喜欢在书上圈圈画画,做完题打个勾,放假的时候带出门去公园看,没有蓝光伤眼睛,那纸书就是你的最佳选择。很多喜欢收藏书籍的小朋友还会特意买纸书,在扉页写上自己的名字和购买日期,等几年后再翻,还能想起第一次接触云搭建的快乐。
然后是📱 电子版,它就像你平时玩的平板里的电子书,不仅能在手机、平板、电脑上打开,还有很多纸书没有的互动功能:比如你可以点击文中的超链接,直接观看云游戏实际运行的演示视频,甚至能进入我们做的云上乐园VR全景,360度看数据中心机房到底是什么样子;遇到不懂的术语,点击就能弹出解释,不用翻到书最后查术语表;每章最后还有互动的搭建小游戏,你可以在线搭一个迷你云存储,看看自己设计的架构能不能扛住1000个小朋友同时访问。如果你平时习惯用电子设备学习,喜欢点来点去看动画、做互动题,那电子版就是为你准备的。我们特意把电子版做成了响应式排版,就算你用手机看,图表也不会变形,字也不会太小。
最后是🤖 Markdown版本,这个版本可能很多小朋友第一次听说,它就像你平时玩的积木的“设计图纸”,所有内容都是用标准的文本格式写的,你可以用任何文本编辑器打开它,甚至可以自己修改里面的内容:比如你觉得前面的云上乐园例子不够好玩,可以把过山车改成你喜欢的奥特曼主题,把储物柜改成你喜欢的艾莎公主主题;你还可以自己加Mermaid图,画你自己设计的云架构,甚至可以把整本书的内容拆成小块,加到自己的学习笔记里。如果你平时喜欢玩编程、喜欢自己改游戏模组、喜欢折腾各种电子设备,那Markdown版本就是你的专属玩具。很多想当小程序员的小朋友,还会用Markdown版的内容做自己的知识卡片,甚至改编成小漫画发到网上。
你可以根据自己的情况选,也可以三个版本一起用:平时在家深度读纸书,出门的时候在平板上看电子版,想自己改内容的时候就用Markdown版,三个版本的内容是完全同步的,不会出现内容不一样的情况。
<!-- 电子版侧边栏:小提示!如果你买了纸书,用手机扫描书页上的二维码,就能免费获取电子版和Markdown版的下载链接哦,不用额外花钱 -->
现在我们已经知道了云计算的本质和三种出版格式的特点,接下来我们要更深入地认识一下,云计算到底和以前的“本地计算”有什么不一样?它为什么能被称为“计算能力的自来水”?
你可能会有疑问:我之前用的电脑不也是能存照片、能玩游戏、能上网课吗?和云计算有什么区别?我们之前做了对比表,现在我们可以用一个更具体的例子来理解:假设你要给全班30个同学做一个“六一联欢会的照片集”,存1000张照片,还要能让全班同学随时看,用本地计算和云计算分别要怎么做?
用本地计算的话,你需要先买一台性能很好的电脑,花5000块,还要买一个1T的硬盘,花300块,总共5300块。然后你要把照片都存在这台电脑里,设置好共享权限,让全班同学都能访问。但这里有很多问题:如果这台电脑坏了,5000块就打了水漂,照片也没了;如果全班有100个同学同时看,电脑就会卡,甚至死机;如果毕业了,你要把电脑搬回家,照片就带走了,下一届的同学就看不了了;如果电脑中了病毒,照片可能全被删掉。就算你什么都没做错,这台电脑用3年就过时了,你要再花5000块买新的,旧电脑只能卖几百块,非常不划算。
用云计算的话,你只需要注册一个云存储账号,每个月付10块钱,就能拿到10T的存储空间,比你的硬盘大10倍。你把照片上传上去,设置好共享权限,全班同学随时都能看,就算同时有1000个同学访问也不会卡,因为云平台有几千台服务器帮你扛着。就算你毕业了,照片还是存在云上,下一届的同学还能看。就算云平台的某台服务器坏了,照片还有好几份备份,不会丢。你用了1个月就付10块,不用了就停掉,不用花一分钱,比买电脑划算100倍。
你看,这就是云计算和本地计算最核心的差异:云计算把计算能力、存储能力、网络能力都变成了“公共服务”,你不用买硬件、不用装软件、不用维护系统,只要按使用量付一点点钱,就能用到和全球顶级公司一样的基础设施。这种模式有一个非常专业的术语,叫做资源池化:就是把所有服务器的计算能力、存储能力都放到一个大池子里,谁需要就分给谁,用完了就收回来,就像小区的公共游泳池,物业负责维护,业主需要的时候买票就能用,不用自己建游泳池。
除了资源池化,云计算还有四个核心特征,
别着急,我们先来分别认识一下这三个版本各自的特点,你可以根据自己的学习习惯选最适合的:
首先是📖 纸书版本,它就像你平时读的童话故事书一样,拿在手里有实实在在的纸张触感,翻页的时候能闻到淡淡的油墨香。我们特意为纸书设计了全彩的跨页大图,比如前面提到的《云上乐园基础设施全景图》,你可以用彩笔在上面涂色,给过山车画上安全扣,给储物柜画上你喜欢的图案,空白处还可以写自己的搭建笔记。如果你平时喜欢在书上圈圈画画,做完题打个勾,放假的时候带出门去公园看,没有蓝光伤眼睛,那纸书就是你的最佳选择。很多喜欢收藏书籍的小朋友还会特意买纸书,在扉页写上自己的名字和购买日期,等几年后再翻,还能想起第一次接触云搭建的快乐。
然后是📱 电子版,它就像你平时玩的平板里的电子书,不仅能在手机、平板、电脑上打开,还有很多纸书没有的互动功能:比如你可以点击文中的超链接,直接观看云游戏实际运行的演示视频,甚至能进入我们做的云上乐园VR全景,360度看数据中心机房到底是什么样子;遇到不懂的术语,点击就能弹出解释,不用翻到书最后查术语表;每章最后还有互动的搭建小游戏,你可以在线搭一个迷你云存储,看看自己设计的架构能不能扛住1000个小朋友同时访问。如果你平时习惯用电子设备学习,喜欢点来点去看动画、做互动题,那电子版就是为你准备的。我们特意把电子版做成了响应式排版,就算你用手机看,图表也不会变形,字也不会太小。
最后是🤖 Markdown版本,这个版本可能很多小朋友第一次听说,它就像你平时玩的积木的“设计图纸”,所有内容都是用标准的文本格式写的,你可以用任何文本编辑器打开它,甚至可以自己修改里面的内容:比如你觉得前面的云上乐园例子不够好玩,可以把过山车改成你喜欢的奥特曼主题,把储物柜改成你喜欢的艾莎公主主题;你还可以自己加Mermaid图,画你自己设计的云架构,甚至可以把整本书的内容拆成小块,加到自己的学习笔记里。如果你平时喜欢玩编程、喜欢自己改游戏模组、喜欢折腾各种电子设备,那Markdown版本就是你的专属