云计算的前世今生

值此硕士论文提交之际,正好看到了这篇文章,感觉说的不错。那就借CSDN这篇文章也谈谈学术吧。纵然学位论文一波三折,写作也是受到诸多因素困扰,没有达到自己理想的高度,但是毕竟还是以云计算这个自己入学时就想好的主题完成的。那我就说说关于云计算方面自己的理解吧,说的不对的方面,大家多多批评指正。

《云计算的前世今生》

云计算的“云”字来及网络的形状,画网络拓扑图时,人们习惯将接入互联网画成电脑连上云彩的形状,故得此名。

在一开始,很多大型IT产商,尤其是做互联网的,比如电商网站、门户网站这些,由于访问量很多,数据量也很大,不得不使用很多的计算机来缓解压力(这些计算机学名叫“物理服务器”,区别于个人电脑,物理服务器不是给个人用来看的、听的,因此没有多媒体输入输出设备,比如显卡声卡什么的,仅仅提供运算、存储等功能,也可以叫计算资源)。这些IT厂商好比是一个个大商场,来的顾客多了,面积就不够用了,因此需要不停地扩建来满足需求,这就好比是不停地购买物理服务器。但是人并不是什么时候都多,在“五一”、“十一”节假日来逛商场的人很多,但上班时间就明显少了,整个商场空荡荡的,利用率很低,可是又不能拆了这些用不上的部分,因为人还会多起来。因此对这些大型IT厂商来说,在很多时候这些物理服务器都派不上用场,成了冗余的计算资源,却又不能卖。出于企业的角度考虑,他们当然想最大化资源的利用,因此他们想出了一个办法,那就是在闲着的时候,把这些计算资源出租出去,给别人用。好比是商场顾客少了,那我就把商场租给别人做生产鞋子的工厂,等我人多了再要回来用。

“出租计算资源”就成了这些厂商的共识。怎么出租呢?那就是用互联网,你把你要运算的东西放到我这里来,或者通过网络输入到我的计算资源来。原来的时候,我们都是靠本地的计算机来计算,现在通过网络传输,那就是连接到“云彩”里了,这也就是一开始说云计算名字的由来。所以云计算依赖于互联网,也正是互利网的发展,网速越来越快,云计算才得以随之高速发展。现在很多的产品和技术名字里都带个“云”,其实只是把用户的数据放到了互利网的远程服务器里,用户需要连到云彩里去存取数据。当然,这样起名字也符合云的特征,没有问题。

谁最需要出租这些资源呢?从前文可以看出,是那些访问量很大的企业,一般来说,都是做电商或者门户网站的,比如亚马逊、阿里巴巴、百度等,因此他们就成了云计算提供商里主要成员。

当出租这些资源的时候,有一个问题需要解决,就是租户们需要的面积都不一样,可是我的商场却是早就盖好了的。我要为每个租户都重新装修、盖房间、打隔断很不现实,成本也太大了,今天你租我50平米的地方,我给你垒上墙,围出50平米;明天你不租了,换了个人需要100平米,那我还得拆了重新砌墙。转换成IT领域,那就是这些物理服务器都是买好了的,一台服务器基本都是至少16个核的CPU,几十G的内存,一些人用不上,一些人又不够。那就需要一种办法,能划出一块地方,给租户用。这块地方在租户看来是一台计算机,实际可能是半台服务器或者两台服务器虚拟出来的,这种划分技术就叫“虚拟化”,划出来的假计算机就叫“虚拟机”。有了虚拟化技术,我就不用真的去垒墙了,好比是复联三里的保护场,开关一按就出来了,想变动范围也很容易。所以虚拟化技术也是云计算的核心技术之一。对计算机的虚拟化建立在硬件基础上,需要CPU等硬件的支持,支持度越高,虚拟的就越好。因此英特尔等公司在虚拟化领域也有一席之地。虚拟化基本上都是外国厂商在做,比如VMWare,虚拟化也是我国未掌握的核心技术之一。

现在我们作为IT厂商,要做的就是在几百台计算机里虚拟地划出一块地方给租户住。那我是在第一台里划呢,还是第100台里划呢?我们要想到,租户们都是挤在一起的,就像北漂的苦逼程序员们,晚上都是和别人挤在合租房。所以你把苦逼程序员A放到5个人的房间和8个人的房间,租户的舒适度和对我们这些房东的收益是不一样的,也就是在这些计算机里,我们要考虑怎么放置租户A的虚拟机。这就是学界在云计算领域讨论最火热的话题。它有一个高大上的名字叫做“云计算调度问题”。学过计算机算法的都知道,有一个算法叫做“背包问题”,就是你有一个背包,还有很多体积不同的物品,怎么把物品往包里放,使得背包里的东西价值最高。云计算的调度问题就是我们有很多个背包,考虑把租户放到哪个背包里的问题。这个看似简单,实则是一个大难题,学名叫做“NP完全问题”,是世界数学七大难题之一。对于这个问题,计算机界的大牛们想了很多方法,比如大名鼎鼎的遗传算法、蚁群优化算法、模拟退火算法、神经网络算法等。对于云计算调度问题,大多数研究也是依靠应用或者改进求解NP完全问题的算法来解决。

云计算还有一个热点问题,就是能耗。我们的商场面积很大,很占地方很费电,租不出去的地方要尽量关停,给我们省点钱。云计算中心的服务器往往都是几百台乃至几千台,上万台也有可能,耗电量非常多。另外,服务器发热量很大,需要空调什么的来降温,因为温度一高机器就不工作了。所以这些机房都要装空调,而且一年四季开着,又是一大笔电费。所以很多厂商想办法用物理方法来降温,比如阿里巴巴把机房建到海边,用海水水冷降温;微软最近有个新闻,就是它把机房建到了海底,也是这个路子。还有一些地方一年四季温度都不高,电费也便宜,那就太适合不过了,比如贵州的大山里。所以贵州现在搞云计算、大数据风生水起,腾讯什么的都把机房建到了贵州。

云计算还有一个热点问题,有些租户可能需要租很多小房间来用,为什么要这样呢,因为一旦某个房间出了问题罢工了,别的不会受到影响或者影响很小。而且很关键的是,只用一个大房间麻烦在组建新部门的时候就要变动所有人,换成好多小房间,只需要再租一个就行。这些属于一个公司的茫茫多小房间是分布在不同地方的,就起了个高大上的名字叫“分布式”。怎么管理这些小房间呢?这些管理方案就叫计算机界就叫“分布式架构”。大名鼎鼎的SOA、微服务还有我论文里的Serverless都属于分布式架构。不同的小房间怎么联络呢?就需要分布式通信解决方案,大名鼎鼎的PRC、Web Service、消息队列都属于这种。

说到了WebService,就有必要提提REST,REST全名叫Representation State Transfer,中文名字非常高大上,叫“表现层状态转移”,这套理论是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格,很屌。我觉得这种论文才是我这种软件工程专业的学生应该研究的。他的这篇博士论文一出道就名扬服务计算界,成为了当今Web Service的工业标准。但是我觉得啊,如果我写的硕士论文是这个,都不一定能通过我们学校的内审,呵呵。

再往下说的话,我们就要想一想,划分房间的时候怎么去做隔断,刚才说了,隔断如果是垒墙成本就太大了,虚拟化技术让我们可以用木板来做隔断,拆装木板很简单,让我们划房间的时候很轻松。可是有没有比木板更轻松地东西呢?有,比如帘子。近几年在云计算界超火热的容器就是帘子。容器是比虚拟机更容器搭建的虚拟化空间,启动只需要几秒。也就是说,有个单身苦逼程序员租了20平米的房子自己住,突然他交了个女朋友,需要租50平米的房子,我们几秒的时间就可以给他改成50平米。但是缺点也很明显,你和对象一起租房,用帘子隔开空间你乐意吗?很明显,安全性、私密性都不行,发出什么声音别人都能听见,嘿嘿。所以对于提高容器的安全性,也是学界探讨比较多的话题。

就写到这把,去吃饭了,一不小心写了好多,感谢大家的观看!

猜你喜欢

转载自blog.csdn.net/mr_orange_klj/article/details/80672402