⼤数据,云计算,⼈⼯智能之间的关系
⼀、云计算最初是实现资源管理的灵活性
我们⾸先来说云计算,云计算最初的⽬标是对资源的管理,管理的主要是计算资源,⽹络资源,存储资源三个⽅⾯。
1.1 管数据中⼼就像配电脑
什么叫计算,⽹络,存储资源呢?就说你要买台笔记本电脑吧,你是不是要关⼼这台电脑什么样的CPU
啊?多⼤的内存啊?这两个我们称为计算资源。
这台电脑要能上⽹吧,需要有个⽹⼝可以插⽹线,或者有⽆线⽹卡可以连接我们家的路由器,您家也需要到运营商⽐如联通,移动,电信开通⼀个⽹络,⽐如100M的带宽,然后会有师傅弄⼀根⽹线到您家来,师傅可能会帮您将您的路由器和他们公司的⽹络连接配置好,这样您家的所有的电脑,⼿机,平板就都可以通过您的路由器上⽹了。这就是⽹络。
您可能还会问硬盘多⼤啊?原来硬盘都很⼩,10G之类的,后来500G,1T,2T的硬盘也不新鲜了。(1T是1000G),这就是存储。
对于⼀台电脑是这个样⼦的,对于⼀个数据中⼼也是同样的。想象你有⼀个⾮常⾮常⼤的机房,⾥⾯堆了很多的服务器,这些服务器也是有CPU,内存,硬盘的,也是通过类似路由器的设备上⽹的。这个时候的⼀个问题就是,运营数据中⼼的⼈是怎么把这些设备统⼀的管理起来的呢?
1.2 灵活就是想啥时要都有,想要多少都⾏
管理的⽬标就是要达到两个⽅⾯的灵活性。哪两个⽅⾯呢?⽐如有个⼈需要⼀台很⼩很⼩的电脑,只有⼀个CPU,1G内存,10G的硬盘,⼀兆的带宽,你能给他吗?像这种这么⼩规格的电脑,现在随便⼀个笔记本电脑都⽐这个配置强了,家⾥随便拉⼀个宽带都要100M。然⽽如果去⼀个云计算的平台上,他要想要这个资源的时候,只要⼀点就有了。
所以说它就能达到两个⽅⾯灵活性。
第⼀个⽅⾯就是想什么时候要就什么时候要,⽐如需要的时候⼀点就出来了,这个叫做时间灵活性。
第⼆个⽅⾯就是想要多少呢就有多少,⽐如需要⼀个很⼩很⼩的电脑,可以满⾜,⽐如需要⼀个特别⼤的空间,以云盘为例,似乎云盘给每个⼈分配的空间动不动就就很⼤很⼤,随时上传随时有空间,永远⽤不完,这个叫做空间灵活性。
空间灵活性和时间灵活性,也即我们常说的云计算的弹性。
为了解决这个弹性的问题,经历了漫长时间的发展。
1.3 物理设备不灵活
⾸先第⼀个阶段就是物理机,或者说物理设备时期。这个时期相当于客户需要⼀台电脑,我们就买⼀台放在数据中⼼⾥。物理设备当然是越来越⽜,例如服务器,内存动不动就是百G内存,例如⽹络设备,⼀个端⼝的带宽就能有⼏⼗G甚⾄上百G,例如存储,在数据中⼼⾄少是PB级别的(⼀个P是1000个T,⼀个T是1000个G)。
然⽽物理设备不能做到很好的灵活性。⾸先它不能够达到想什么时候要就什么时候要、⽐如买台服务
器,哪怕买个电脑,都有采购的时间。突然⽤户告诉某个云⼚商,说想要开台电脑,如果使⽤物理服务器,当时去采购啊就很难,如果说供应商啊关系⼀般,可能采购⼀个⽉,供应商关系好的话也需要⼀个星期。⽤户等了⼀个星期后,这时候电脑才到位,⽤户还要登录上去开始慢慢部署⾃⼰的应⽤,时间灵活性⾮常差。第⼆是空间灵活性也不⾏,例如上述的⽤户,要⼀个很⼩很⼩的电脑,现在哪还有这么⼩型号的电脑啊。不能为了满⾜⽤户只要⼀个G 的内存是80G硬盘的,就去买⼀个这么⼩的机器。但是如果买⼀个⼤的呢,因为电脑⼤,就向⽤户多收钱,⽤户说他只⽤这么⼩的⼀点,如果让⽤户多付钱就很冤。
1.4 虚拟化灵活多了
有⼈就想办法了。第⼀个办法就是虚拟化。⽤户不是只要⼀个很⼩的电脑么?数据中⼼的物理设备都很强⼤,我可以从物理的CPU,内存,硬盘中虚拟出⼀⼩块来给客户,同时也可以虚拟出⼀⼩块来给其他客户,每个客户都只能看到⾃⼰虚的那⼀⼩块,其实每个客户⽤的是整个⼤的设备上其中的⼀⼩块。虚拟化的技术能使得不同的客户的电脑看起来是隔离的,我看着好像这块盘就是我的,你看这呢这块盘就是你的,实际情况可能我这个10G和您这个10G是落在同样⼀个很⼤很⼤的这个存储上的。
⽽且如果事先物理设备都准备好,虚拟化软件虚拟出⼀个电脑是⾮常快的,基本上⼏分钟就能解决。所以在任何⼀个云上要创建⼀台电脑,⼀点⼏分钟就出来了,就是这个道理。
如何用支付宝买东西
这个空间灵活性和时间灵活性就基本解决了。
1.5 虚拟世界的赚钱与情怀
在虚拟化阶段,最⽜的公司是Vmware,是实现虚拟化技术⽐较早的⼀家公司,可以实现计算,⽹络,存储的虚拟化,这家公司很⽜,性能也做得⾮常好,然后虚拟化软件卖的也⾮常好,赚了好多的钱,后来让EMC(世界五百强,存储⼚商第⼀品牌)给收购了。
但是这个世界上还是有很多有情怀的⼈的,尤其是程序员⾥⾯,有情怀的⼈喜欢做⼀件什么事情呢?开源。这个世界上很多软件都是有闭源就有开源,源就是源代码。就是说某个软件做的好,所有⼈都爱⽤,这个软件的代码呢,我封闭起来只有我公司知道,其他⼈不知道,如果其他⼈想⽤这个软件,就要付我钱,这就叫闭源。但是世界上总有⼀些⼤⽜看不惯钱都让⼀家赚了去。⼤⽜们觉得,这个技术你会我也会,你能开发出来,我也能,我开发出来就是不收钱,把代码拿出来分享给⼤家,全世界谁⽤都可以,所有的⼈都可以享受到好处,这个叫做开源。
⽐如最近蒂姆·伯纳斯·李就是个⾮常有情怀的⼈,2017年,他因“发明万维⽹、第⼀个浏览器和使万维⽹得以扩展的基本协议和算法”⽽获得2016年度的图灵奖。图灵奖就是计算机界的诺贝尔奖。然⽽他最令⼈敬佩的是,他将万维⽹,也就是我们常见的www的技术⽆偿贡献给全世界免费使⽤。我们现在在⽹上的所有⾏为都应该感谢他的功劳,如果他将这个技术拿来收钱,应该和⽐尔盖茨差不多有钱。
例如在闭源的世界⾥有windows,⼤家⽤windows都得给微软付钱,开源的世界⾥⾯就出现了Linux。⽐尔盖茨靠windows,Office这些闭源的软件赚了很多钱,称为世界⾸富,就有⼤⽜开发了另外⼀种操作系统Linux。很多⼈可能没有听说过Linux,很多后台的服务器上跑的程序都是Linux上的,⽐如⼤家享受双⼗⼀,⽀撑双⼗⼀抢购的系统,⽆论是淘宝,京东,考拉,都是跑在Linux上的。
再如有apple就有安卓。apple市值很⾼,但是苹果系统的代码我们是看不到的。于是就有⼤⽜写了安卓⼿机操作系统。所以⼤家可以看到⼏乎所有的其他⼿机⼚商,⾥⾯都装安卓系统,因为苹果系统不开源,⽽安卓系统⼤家都可以⽤。
在虚拟化软件也⼀样,有了Vmware,这个软件⾮常⾮常的贵。那就有⼤⽜写了两个开源的虚拟化软件,⼀个叫做Xen,⼀个叫做KVM,如果不做技术的,可以不⽤管这两个名字,但是后⾯还是会提到。
1.6 虚拟化的半⾃动和云计算的全⾃动
虚拟化软件似乎解决了灵活性问题,其实不全对。因为虚拟化软件⼀般创建⼀台虚拟的电脑,是需要⼈⼯指定这台虚拟电脑放在哪台物理机上的,可能还需要⽐较复杂的⼈⼯配置,所以使⽤Vmware的虚拟化软件,需要考⼀个很⽜的证书,能拿到这个证书的⼈,薪资是相当的⾼,也可见复杂程度。所以仅仅凭虚拟化软件所能管理的物理机的集规模都不是特别的⼤,⼀般在⼗⼏台,⼏⼗台,最多百台
这么⼀个规模。这⼀⽅⾯会影响时间灵活性,虽然虚拟出⼀台电脑的时间很短,但是随着集规模的扩⼤,⼈⼯配置的过程越来越复杂,越来越耗时。另⼀⽅⾯也影响空间灵活性,当⽤户数量多的时候,这点集规模,还远达不到想要多少要多少的程度,很可能这点资源很快就⽤完了,还得去采购。所以随着集的规模越来越⼤,基本都是千台起步,动辄上万台,甚⾄⼏⼗上百万台,如果去查⼀下BAT,包括⽹易,包括⾕歌,亚马逊,服务器数⽬都⼤的吓⼈。这么多机器要靠⼈去选⼀个位置放这台虚拟化的电脑并做相应的配置,⼏乎是不可能的事情,还是需要机器去做这个事情。
⼈们发明了各种各样的算法来做这个事情,算法的名字叫做调度(Scheduler)。通俗⼀点的说,就是有⼀个调度中⼼,⼏千台机器都在⼀个池⼦⾥⾯,⽆论⽤户需要多少CPU,内存,硬盘的虚拟电脑,调度中⼼会⾃动在⼤池⼦⾥⾯⼀个能够满⾜⽤户需求的地⽅,把虚拟电脑启动起来做好配置,⽤户就直接能⽤了。这个阶段,我们称为池化,或者云化,到了这个阶段,才可以称为云计算,在这之前都只能叫虚拟化。
1.7 云计算的私有与公有
云计算⼤致分两种,⼀个是私有云,⼀个是公有云,还有⼈把私有云和公有云连接起来称为混合云,我们暂且不说这个。私有云就是把虚拟化和云化的这套软件部署在别⼈的数据中⼼⾥⾯,使⽤私有云的⽤户往往很有钱,⾃⼰买地建机房,⾃⼰买服务器,然后让云⼚商部署在⾃⼰这⾥,Vmware后来除
了虚拟化,也推出了云计算的产品,并且在私有云市场赚的盆满钵满。所谓公有云就是虚拟化和云化软件部署在云⼚商⾃⼰数据中⼼⾥⾯的,⽤户不需要很⼤的投⼊,只要注册⼀个账号,就能在⼀个⽹页上点⼀下创建⼀台虚拟电脑,例如AWS也即亚马逊的公有云,例如国内的阿⾥云,腾讯云,⽹易云等。
亚马逊呢为什么要做公有云呢?我们知道亚马逊原来是国外⽐较⼤的⼀个电商,它做电商的时候也肯定会遇到类似双11的场景,在某⼀个时刻⼤家都冲上来买东西。当⼤家都冲上买东西的时候,就特别需要云的时间灵活性和空间灵活性。因为它不能时刻准备好所有的资源,那样太浪费了。但也不能什么都不准备,看着双⼗⼀这么多⽤户想买东西登不上去。所以需要双⼗⼀的时候,创建⼀⼤批虚拟电脑来⽀撑电商应⽤,过了双⼗⼀再把这些资源都释放掉去⼲别的。所以亚马逊是需要⼀个云平台的。
然⽽商⽤的虚拟化软件实在是太贵了,亚马逊总不能把⾃⼰在电商赚的钱全部给了虚拟化⼚商吧。于是亚马逊基于开源的虚拟化技术,如上所述的Xen或者KVM,开发了⼀套⾃⼰的云化软件。没想到亚马逊后来电商越做越⽜,云平台也越做越⽜。⽽且由于他的云平台需要⽀撑⾃⼰的电商应⽤,⽽传统的云计算⼚商多为IT⼚商出⾝,⼏乎没有⾃⼰的应⽤,因⽽亚马逊的云平台对应⽤更加的友好,迅速发展成为云计算的第⼀品牌,赚了很多钱。在亚马逊公布其云计算平台财报之前,⼈们都猜测,亚马逊电商赚钱,云也赚钱吗?后来⼀公布财报,发现不是⼀般的赚钱,仅仅去年,亚马逊AWS年营收达122亿美元,运营利润31亿美元。
1.8 云计算的赚钱与情怀
公有云的第⼀名亚马逊过得很爽,第⼆名Rackspace过的就⼀般了。没办法,这就是互联⽹⾏业的残酷性,多是赢者通吃的模式。所以第⼆名如果不是云计算⾏业的,很多⼈可能都没听过了。第⼆名就想,我⼲不过⽼⼤怎么办呢?开源吧。如上所述,亚马逊虽然使⽤了开源的虚拟化技术,但是云化的代码是闭源的,很多想做⼜做不了云化平台的公司,只能眼巴巴的看着亚马逊挣⼤钱。Rackspace把源代码⼀公开,整个⾏业就可以⼀起把这个平台越做越好,兄弟们⼤家⼀起上,和⽼⼤拼了。
于是Rackspace和美国航空航天局合作创办了开源软件OpenStack,如图所⽰OpenStack的架构图,不是云计算⾏业的不⽤弄懂这个图,但是能够看到三个关键字,Compute计算,Networking⽹络,Storage存储。还是⼀个计算,⽹络,存储的云化管理平台。
当然第⼆名的技术也是⾮常棒的,有了OpenStack之后,果真像Rackspace想象的⼀样,所有想做云的⼤企业都疯了,你能想象到的所有如雷贯⽿的⼤型IT企业,IBM,惠普,戴尔,华为,联想等等,都疯了。原来云平台⼤家都想做,看着亚马逊和Vmware赚了这么多钱,眼巴巴看着没办法,想⾃⼰做⼀个好像难度还挺⼤。现在好了,有了这样⼀个开源的云平台OpenStack,所有的IT⼚商都加⼊到这个社区中来,对这个云平台进⾏贡献,包装成⾃⼰的产品,连同⾃⼰的硬件设备⼀起卖。有的做了私有云,有的做了公有云,OpenStack已经成为开源云平台的事实标准。
1.9 IaaS, 资源层⾯的灵活性
随着OpenStack的技术越来越成熟,可以管理的规模也越来越⼤,并且可以有多个OpenStack集部署多套,⽐如北京部署⼀套,杭州部署两套,⼴州部署⼀套,然后进⾏统⼀的管理。这样整个规模就更⼤了。在这个规模下,对于普通⽤户的感知来讲,基本能够做到想什么时候要就什么什么药,想要多少就要多少。还是拿云盘举例⼦,每个⽤户云盘都分配了5T甚⾄更⼤的空间,如果有1亿⼈,那加起来空间多⼤啊。其实背后的机制是这样的,分配你的空间,你可能只⽤了其中很少⼀点,⽐如说它分配给你了5个T,这么⼤的空间仅仅是你看到的,⽽不是真的就给你了,你其实只⽤了50个G,则真实给你的就是50个G,随着你⽂件的不断上传,分给你的空间会越来越多。当⼤家都上传,云平台发现快满了的时候(例如⽤了70%),会采购更多的服务器,扩充背后的资源,这个对⽤户是透明的,看不到的,从感觉上来讲,就实现了云计算的弹性。其实有点像银⾏,给储户的感觉是什么时候取钱都有,只要不同时挤兑,银⾏就不会垮。
这⾥做⼀个简单的总结,到了这个阶段,云计算基本上实现了时间灵活性和空间灵活性,实现了计算,⽹络,存储资源的弹性。计算,⽹络,存储我们常称为基础设施Infranstracture, 因⽽这个阶段的弹性称为资源层⾯的弹性,管理资源的云平台,我们称为基础设施服务,就是我们常听到的IaaS,Infranstracture As A Service。
⼆、云计算不光管资源,也要管应⽤
有了IaaS,实现了资源层⾯的弹性就够了吗?显然不是。还有应⽤层⾯的弹性。这⾥举个例⼦,⽐如说实现⼀个电商的应⽤,平时⼗台机器就够了,双⼗⼀需要⼀百台。你可能觉得很好办啊,有了IaaS,新创建九⼗台机器就可以了啊。但是90台机器创建出来是空的啊,电商应⽤并没有放上去啊,只能你公司的运维⼈员⼀台⼀台的弄,还是需要很长时间才能安装好的。虽然资源层⾯实现了弹性,但是没有应⽤层的弹性,依然灵活性是不够的。
有没有⽅法解决这个问题呢?于是⼈们在IaaS平台之上⼜加了⼀层,⽤于管理资源以上的应⽤弹性的
问题,这⼀层通常称为PaaS(Platform As A Service)。这⼀层往往⽐较难理解,其实⼤致分两部分,⼀部分我称为你⾃⼰的应⽤⾃动安装,⼀部分我称为通⽤的应⽤不⽤安装。
我们先来说第⼀部分,⾃⼰的应⽤⾃动安装。⽐如电商应⽤是你⾃⼰开发的,除了你⾃⼰,其他⼈是不知道怎么安装的,⽐如电商应⽤,安装的时候需要配置⽀付宝或者的账号,才能别⼈在你的电商上买东西的时候,付的钱是打到你的账户⾥⾯的,除了你,谁也不知道,所以安装的过程平台帮不了忙,但是能够帮你做的⾃动化,你需要做⼀些⼯作,将⾃⼰的配置信息融⼊到⾃动化的安装过程中⽅可。⽐如上⾯的例⼦,双⼗⼀新创建出来的90台机器是空的,如果能够提供⼀个⼯具,能够⾃动在这新的90台机器上将电商应⽤安装好,就能够实现应⽤层⾯的真正弹性。例如Puppet, Chef, Ansible, Cloud Foundary都可以⼲这件事情,最新的容器技术Docker能更好的⼲这件事情,不做技术的可以不⽤管这些词。
第⼆部分,通⽤的应⽤不⽤安装。所谓通⽤的应⽤,⼀般指⼀些复杂性⽐较⾼,但是⼤家都在⽤的,例如数据库。⼏乎所有的应⽤都会⽤数据库,但是数据库软件是标准的,虽然安装和维护⽐较复杂,但是⽆论谁安装都是⼀样。这样的应⽤可以变成标准的PaaS层的应⽤放在云平台的界⾯上。当⽤户需要⼀个数据库的时候,⼀点就出来了,⽤户就可以直接⽤了。有⼈问,既然谁安装都⼀个样,那我⾃⼰来好了,不需要花钱在云平台上买。当然不是,数据库是⼀个⾮常难的东西,光Oracle这家公司,靠数据库就能赚这么多钱。买Oracle也是要花很多很多钱的。然⽽⼤多数云平台会提供Mysql这样的开
源数据库,⼜是开源,钱不需要花这么多了,但是维护这个数据库,却需要专门招⼀个很⼤的团队,如果这个数据库能够优化到能够⽀撑双⼗⼀,也不是⼀年两年能够搞定的。⽐如您是⼀个做单车的,当然没必要招⼀个⾮常⼤的数据库团队来⼲这件事情,成本太⾼了,应该交给云平台来做这件事情,专业的事情专业的⼈来⾃,云平台专门养了⼏百⼈维护这套系统,您只要专注于您的单车应⽤就可以了。
要么是⾃动部署,要么是不⽤部署,总的来说就是应⽤层你也要少操⼼,这就是PaaS层的重要作⽤。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论