从中国封建历史的发展来理解云、雾、边缘计算以及云原生之间关系

前言

互联网的快速发展,带来了一大批新的名词,这次名词的更新换代的速度也是快得惊人,往往一波未平一波又起,使得大家不能墨守成规,必须不断学习才能赶得上科技和技术的发展潮流。

计算机行业更是如此,可能真的要实践活到老学到老的古训了。精通一个技术然后躺着赚钱是不存在的,因为可能几年后这项技术就被淘汰无人问津了。所以千万别再说计算机的高薪如何的不合理。计算机行业只能算门槛不低且付出和产出相对成正比的行业。

回到本文的标题,如果问大家这几个名词你听说过吗?大部分人肯定会说:“Yes,I do!”。但是如果让你说清楚他们都是什么以及他们之间的关系,可能不少小伙伴就要挠头了。这些概念可能很多人都知道一点,但又说不清楚。

本文通过讲述中国历史上的部分制度和组织形式来类比这几个概念的关系,网上的抽象定义我也就不过多讨论了,而是通过形象比喻的方式另辟蹊径,从其他角度让大家了解下这些概念,能达到基本明了不求甚解的目的。如果还是不懂,可以直接找作者,作者负责搞定你的问题或者搞定你~

云vs云计算:中央集权下的资源管理

春秋战国时期,国家的军队和资源都分散在全国各地,大家各自为政,自负盈亏。好处就是管理好自己的一亩三分地就好。但是缺点也很明显,大家各自为政,自立为王,不听国家和天子的号令。然后各个诸侯之间也通过铸造自己的货币,流行自己的文字,推广自己的度量衡等方式人为的设置壁垒。这种情况下,国家的内耗十分严重,严重影响整个社会的发展。

映射到远古时代的软件行业,一个大公司可能有多个机房,这些机房之间的资源都是一台台的物理机。这些资源基本上都是隔离的,比如做数据库的部门需要使用小型机这种高性能设备,你把行政部门的2C4G的PC给到数据库部门,他们也用不上,在加上部门之间的资源之争,更是这种资源隔离情况雪上加霜。公司很难高效地管理这些资源。最后的结果是员工很痛苦,公司高层很苦恼,怎么破?云就在这种情况下产生了。

再回到历史,秦始皇的出现解决了这一切。随着六国的灭亡,秦国一统天下。紧接着秦始皇就发布了“车同轨、书同文、币同制以及统一度量衡”的操作,使得全国的资源统一管理。

再回到云的问题上,后续公司高层决定将所有的服务器都集中到一起进行管理,资源在资源池进行管理。各个用户按照需求进行资源的申请,再也不会出现服务器用不了的情况,硬件资源的使用率和管理效率空前提高,大家都很开心。

由于当前的用户获得的资源不再是实体的物理机,而是虚拟的资源单元,所有的物理机资源都被屏蔽了不会和终端用户直接交互,就好像在云端一样,这也是云或者云平台的由来。而基于云平台上的各种计算分析以及分配管理就组成了云计算的雏形。

云计算vs雾计算vs边缘计算:将在外,军令有所不受

中央集权成立后,资源终于可以有效地组织和使用了,下面就来看看效果吧。

有一天,中原王朝的老对手匈奴来骚扰秦朝了。草原民族的铁骑轻松碾压了秦朝的步兵,就算偶尔获胜也是残胜。于是秦朝开始在北方构建长城,形成以长城为基础的兵营据点群来防止匈奴的入侵。

咋一看好像很不错的计划,但是古代没有电话和无线电,如何传递消息和请示行动计划呢?这是个大问题。

想象下面这个场景,匈奴如果大举入侵该如何应对?当前有两个最直接的方案:

这也不行那也不行,那怎么办呢?

其实方法也很简单,那就是在朝廷和边境之间增加一些行政和军事节点来解决问题。即在第二条方案的基础上进行改进:军队和战略物资不仅在朝廷和首都有,在朝廷和边境之间加上州郡来分级管辖和处理边境上报的事务。每个级别的机构都有对应的权限和能力参与到整个资源的请求和管理中。

这样整个的流程就变成这样:边境的常备军将军被授予假节钺的权利,可以根据敌人入侵的规模来判断该如何应对这场战争。如果常备军能解决,则直接解决;如果常备军解决不了,则向就近的郡县调动军队和资源来参与战争;如果还不能解决,则向再上一级的州府调动资源;如果匈奴举国入侵,州府一级也无法应对了,那么就将请求发送到朝廷,使用最高规模的战争动员来应对国运之战。

从上面的例子可以看出,战争动员会根据战争的规模来决定在哪一级别的组织解决这个问题。毕竟战争时期时间成本和运输成本是最重要的。

试想,如果因为事事都要从朝廷要资源,那么可能不等资源到位,战争就输了;亦或者从朝廷将军队派往边境,还没等军队到边境,补给就快用光了,那后续的仗还怎么打?这件事情如果不理解,可以去问问当年北伐屡败屡战的诸葛亮。

上面就是从历史角度来说明的云计算、雾计算和边缘计算的使用场景。回到当前的数据处理场景,如自动驾驶场景,业务会要求如下的需求:

上述的需求决定了不可能所有的计算分析和操作控制都放在云端的数据中心。因为巨大的数据传输量以及可能存在的网络延迟都是上面两个需求所不能容忍的;而把所有的处理都放在客户端,客户端的硬件成本以及整体的可实现性也不允许这样做。

所以在这种情况下,就需要将部分计算按需求和能力下放到离客户端较近的地方,通过各级计算节点的特点来将客户端需要计算和处理的问题分拆到合适的计算节点进行计算,以满足不同的场景和需求。

所以,当前的常规方案就是分场景解决不同的问题:

举个不恰当的例子,上面的云端的数据中心对应的就是云计算,而附近基站以及车载芯片以及电脑就对应着雾计算以及边缘计算。这样类比可能不是很恰当,但是可以帮助大家快速理解他们的概念,理清他们之间的关系。

云计算vs雾计算vs边缘计算

而在实际技术落地的过程中,雾计算和边缘计算是有部分重叠的。在很多业务不是很复杂,层级不是很高的场景下,雾计算和边缘计算其实可以认为是重叠的,都是为了在减少成本降低数据延迟而将计算下放到离客户端很近的地方。

云计算vs云原生:三公九卿制vs三省六部制

最后来说说云计算和云原生的关系。

虚拟化阶段

最早的云计算其实就是分配给你你需要的硬件资源,大多数就是各种类似虚拟机的资源,你在这上面想干什么就干什么,云平台并不关心。

这就好比要打仗了,将军领命后,朝廷只给了你一群人,一堆铁器和很多给养。你需要自己练兵,自己打造兵器,自己管理给养。虽然经过一段时间也能训练好部队,然后带兵打仗。但是这样做的短板很明显:

回到软件的世界,翻译成软件用语就是:

容器化阶段

这些问题出现后,大家很快都开始寻找其他方式能解决上述的问题。秦朝时候发扬光大的三公九卿制登上了历史舞台。首先,权力机关已经按照功能划分成三公,三个人分管不同的事务。回到上文的例子,此时兵已经按照兵种和规模编排成不同的队伍,三公之一的太尉会组织相关人员根据经验针对不同的战争规模给予不同的资源搭配。这样战争到来之后太尉根据战争情况直接将打包好的资源搭配给到领兵将军,将军带兵直接去打仗就好了。

三公九卿制

这样子一下子就解决了练兵的问题,还会根据不同的情况使用不同的资源搭配直接就解决问题了,真是太爽了,从此妈妈再也不用担心我打仗的问题了。

但是真的就万无一失了吗?慢慢的新的问题又来了:

回到软甲的世界,这就是容器的时代,这个时代的佼佼者就是docker,docker容器使得很多资源都被封装成一个一个容器。在安装部署期间直接使用容器就可以部署好一个服务,使得安装部署对运维人员的要求降低了很多。另外基础容器之间可以通过组合的方式打包成高级的容器用来部署复杂的服务,使得一键部署复杂服务变成可能。

这么看起来docker已经解决了上面的两个痛点。虽然这样,但是docker仍然面临两个问题:

云原生阶段

历史上三公九卿制发展了很多个朝代,虽然不断优化,但是还是没能完美的解决问题。直到三省六部制的出现才算彻底的解决了问题。三省六部制是将权利在三公九卿制的基础上进一步细化,做到精确计算,灵活组合。

三省六部制

比如打仗这件事情不再是一个人或者一个部门说的算,而是由尚书省下的兵部、户部以及工部协同负责。那么战争准备就会变成下面这样:

从上面来看,大家各司其职,按照标准给出不同的资源,共同汇集成了这次战争的准备。由于是职责划分清楚且标准统一,所以这样子给出的资源往往是比较合理的,效果也比较好。就算出问题了,也很好追责;追责之后一个部人员更换,由于标准统一,按照标准办事也不会影响到其他人从而避免影响整个战争准备。

回到软件的世界,让我们来简单看一看云原生的东西:

云原生都做了什么

云原生的主要目标

云原生都用了什么

云原生的主要技术

总结

从上面的描述我们可以看出来,上面四个概念,其实可以分为两组:

本文到这里告一段落,本文是想让大家通过形象的例子达到管中窥豹,略见一斑的目的。

这些概念都很大,随便一个展开都能写个几万字,我这里就简单的从一个角度上说说就得了,大家感兴趣可以自己研究下,或者我在后续的文章中再详细说明下。

云平台出现后,曾经有人说“一切皆可上云”;再后来元宇宙出来后又有人说“一切皆可元宇宙”。元宇宙能不能一切皆可我不确认,但是我还是相信“一切皆可云原生”的,起码软件可以是这样的!

文章到这里就结束了,如果想一起入门学习K8S的小伙伴,欢迎点赞转发加关注,下次学习不迷路!

展开阅读全文

页面更新:2024-04-15

标签:常备军   目的   匈奴   朝廷   边境   中国   封建   容器   军队   场景   边缘   战争   关系   历史   资源

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top