本文笔者将根据自己入行一年来的经验以及一些对于云计算的思考,来给大家科普一下云计算的一些知识。文章主要分为五个部分:云计算的前身,数据中心的演变,AWS的潮流,对IAAS、PAAS、SAAS的介绍,以及公有云、私有云、混合云等的介绍。
在今天,如果说对于云计算还一无所知,那可就真的out了。企业喊了这么多年的“上云运动”,那么,云的本质到底是什么呢?
从2006年云计算的概念被提出到今天,已经经过了十几年,云计算取得了飞速的发展与翻天覆地的变化,行业的蓬勃发展已经得到了诸多巨头的青睐和垂涎,纷纷挥斥着巨资入场。2010年,全球云计算市场规模仅683亿美元,而到2020年,预计将突破4000亿美元。
而在云计算行业稍显弱势的国内,以阿里云、腾讯云和七牛云等云计算企业的也纷纷抓住时代脉搏,扛起了国内云计算的大旗。阿里云的首吃螃蟹后成为阿里巴巴集团核心业务,同时行业内孵化出的一些独角兽“独角兽”如七牛云、ucloud等,也诏显的国内云计算市场的大有可为。
数据表明:2016年我国公有云市场规模为215亿,而这个数字,到2020年,预计达到1300+亿元以上,年增长25%以上。
本文旨在谈谈自己入行以来对云计算行业的一点思考,以及一些不成熟的看法,难免有所疏漏,请各位见谅。
前文都是废话,下面进入正文。
一、云计算的前身
云计算已经席卷而来,和人们现在的生活息息相关。
12306和双11,这两者我相信我国人民总要经历过一者或全部。而针对云计算的定义,为了让更多的人理解云计算到底是个什么东东,各路科普人员也可谓是”费尽苦心“,然后就有了各种看似准确的解释——如“水龙头观点论”、“荤段子观点论”、“披萨观点论”、“厨房观点论”以及与时俱进的“共享出行观点论”。
在接触云计算时,我们或多或少为了让自己容易理解而使用这些观点类(装)比(逼)。一定程度上,这些观点确实通俗易懂且形象,大家也可以自行网上了解这些观点。
而在我的理解中,私以为:云计算是一种模型,即将计算、网络和存储虚拟化资源池以按需的方式提供给有需要的人。
云计算并不是一蹴而就的,在云计算诞生之前,其实很多云计算相关技术都已经诞生,如:分布式计算、并行计算还有网格计算。
网格计算(英语:Grid computing):通过利用大量异构计算机(通常为台式机)的未用资源(CPU周期和磁盘存储),将其作为嵌入在分布式电信基础设施中的一个虚拟的计算机集群,为解决大规模的计算问题提供一个模型。
并行计算(英语:parallel computing):一般是指许多指令得以同时进行的计算模式。在同时进行的前提下,可以将计算的过程分解成小部分,之后以并发方式来加以解决。
分布式系统是一组计算机,透过网络相互连接传递消息与通信后并协调它们的行为而形成的系统。组件之间彼此进行交互以实现一个共同的目标,把需要进行大量计算的工程数据分割成小块,由多台计算机分别计算,再上传运算结果后,将结果统一合并得出数据结论的科学。
是不是都觉的这些技术都很熟悉?
甚至在IT行业,常常被提及。当然,有一些这些还不够,还缺了一个最关键的技术:虚拟化。
二、数据中心的演变
1. 数据中心介绍
前文说过:云计算的本质就是对计算资源、网络资源以及存储资源的管理,最终的目标也就是按需分配。
那么,计算资源、网络资源和存储资源又是什么呢?
计算资源:CPU的核数和内存,主频
网络资源:带宽
存储资源:硬盘
数据中心和买台式机是类似的,如果需要更好的处理性能(计算资源),则需购买内存更大的和更好的CPU。同理,网络资源也一样,当您购买电脑后,需要上网则必须购买运营商提供的宽带,数据中心也是类似的。
而如果电脑上如果想要存放东西,首先,电脑的操作系统总要一个盘去存放,所以需要硬盘,硬盘又分为机械硬盘和SSD盘,这是存储资源。
我们常用的电脑是如此,而数据中心无非是把电脑换成了服务器,而一个数据中心可能有成千上百台的服务器,服务器的CPU、内存和硬盘性能也更优,然后通过企业级的路由器接入带宽的上网。
那么,问题来了:如何去管控一个数据中心的设备呢?
2. 传统数据中心网络结构
在传统的大型数据中心,网络通常是三层结构,Cisco称之为:分级的互连网络模型(hierarchical inter-networking model)。
这个模型包含了以下三层:
Access Layer(接入层):有时也称为Edge Layer。接入交换机通常位于机架顶部,所以它们也被称为ToR(Top of Rack)交换机,它们物理连接服务器。
Aggregation Layer(汇聚层):有时候也称为Distribution Layer。汇聚交换机连接Access交换机,同时提供其他的服务,例如防火墙,SSL offload,入侵检测,网络分析等。
Core Layer(核心层):核心交换机为进出数据中心的包提供高速的转发,为多个汇聚层提供连接性,核心交换机为通常为整个网络提供一个弹性的L3路由网络。 通常情况下,汇聚交换机是L2和L3网络的分界点,汇聚交换机以下的是L2网络,以上是L3网络。每组汇聚交换机管理一个POD(Point Of Delivery),每个POD内都是独立的VLAN网络。服务器在POD内迁移不必修改IP地址和默认网关,因为一个POD对应一个L2广播域。
云计算时代的到来,使用的用户可以任意分配自己的资源。而对于数据中心也是如此,计算资源、网络资源和存储资源被池化后,对数据中心的架构也提出了挑战——需要一个大二层的网络架构,即整个数据中心网络都是一个L2广播域。
大二层网络架构,L2/L3分界在核心交换机。核心交换机以下,也就是整个数据中心,是L2网络(当然,可以包含多个VLAN,VLAN之间通过核心交换机做路由进行连通)。这样,服务器可以在任意地点创建、迁移,而不需要对IP地址或者默认网关做修改。
4. 于企业——云计算时代的机房
当然,前文所说的数据中心,其实对于很多公司都是用不到的。而对于大多数企业来说,如何去管理自己的机房呢?
管理无非是达到两个方面的灵活,如果是企业,当需要创建或者扩建自己机房时,从采购到运行需要一段漫长的周期,同时,还需要担心其中出现什么变故呢?
如果是在云计算平台上,就实现了两个方面的灵活:
时间灵活性:随时用,随时有。
空间灵活性:想要多少资源就有多少。这两种灵活也可以称为云计算的弹性,然而就是这种”弹性“却经历了多年的波折。
5. 云计算时代数据中心的虚拟化
传统IT时代,对于中小企业来说,并不能很好的自己去管理机房,于是会将自己的服务器托管于IDC中,或者直接在IDC中直接租用设备。然而,物理设备不能做到并不能很好的灵活性。
还是以电脑为例:假设我们需要买一台电脑,可能要去电脑城或者电商网站做各种对比,同时从采购到运输都需要时间。而对于服务器来说,就要找到专门的供应商,然后采购运输和安装环境,到企业能够部署应用,时间灵活性可谓非常之差。
这还不算,购买的服务器性能并不是说能够全部利用的。可能你只需要其中的1%,然而并没有这么小的服务器卖给你,如果想要扩容,又需要经历一段重复的采购过程。
于是,虚拟化技术出现了,其中最牛逼的厂商叫做VMware。VMware的推出的Hypervisor可以实现计算、网络、存储的虚拟化,是第一个商业化的成功的虚拟化的x86架构。当然,后来被EMC收购了。
但是,VMware作为付费闭源软件,并且非常的昂贵。而互联网大牛实在太多,君不见有收费的Windows,也有开源的linux,有闭源的IOS,也有开源的Andriod。虚拟化划时代的发展的开源软件的XEN和KVM诞生了。依托于虚拟化技术,数据中心终于可以将自己的设备虚拟化按需给有需要的用户,也解决了物理设备的一个大问题:灵活性,或者叫弹性。
三、量变导致质变——AWS引领潮流
1. 虚拟化的半自动和云计算的全自动
刚开始的虚拟化属于软件虚拟化,虚拟机I/O性能上十分的糟糕,2005年后出现的XEN以及KVM等硬件虚拟化技术,不仅大幅度的提升了虚拟机的性能,也满足了虚拟化技术在生产环境中的使用的要求。
虽然说虚拟化技术的发展是云计算的基石,但是还不够,虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。
CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响。
尽管如此,云计算出来以前,虚拟化有一个最致命的缺点:无法调度。要达到半自动化——即创建虚拟机时,需要人为的去指定创建虚拟机在某台物理机上。
于是,人们发明了各种各样的算法来做这个事情,算法的名字叫做调度(Scheduler)。通俗一点说,就是有一个调度中心,几千台机器都在一个池子里面,无论用户需要多少CPU、内存、硬盘的虚拟电脑,调度中心会自动在大池子里面找一个能够满足用户需求的地方,把虚拟电脑启动起来做好配置,用户就直接能用了。
这个阶段我们称为池化或者云化。到了这个阶段,才可以称为云计算,在这之前都只能叫虚拟化。
说白了,虚拟化主要是把大块拆成小块儿,分布式系统主要是把小块组合成大块儿,IT资源经过这样的揉碎再组合,变成了一个十分灵活的系统,在这几个基本技术的基础上,在通过调度中心,就可以实现云计算的服务模式了。这就是虚拟化的半自动和云计算的全自动。
2. 云计算的从闭源到开源
公有云公司上第一个商业化成功是AWS,可能你对这个单词并不是熟悉。但是如果说起它的中文名亚马逊,那也是如雷贯耳了。
但是,为什么亚马孙作不应该是一家电商公司吗?为何跨行转为云计算厂商呢,还成功了全世界最牛逼的云计算公司?
前文说了:云计算可以实现用户的按需使用资源。而对于电商应用型的企业来说,阿里云的云计算起源可以说的上和AWS类似,当本身的业务扩张时,桎梏于物理上限限制的计算性能以及远远不能满足业务所带来的需求。
当然,从成本来说,IBM小型机实在太高也是一点。无论是美国的”黑色星期五“和还国内的“双11秒杀”,对于企业来说,需要的只是短时间的“计算资源”。
于是,它们也急需云计算平台。
但是环顾四周,那是还是一片荒野,怎么办?
只能自己露胳膊上阵了,由于自身带应用基因,所以亚马逊的云平台对应用更加友好,迅速发展成为云计算的第一品牌,赚了很多钱。
2017年,亚马逊AWS年营收达122亿美元,运营利润31亿美元。尽管AWS刚开始几年使用虚拟化技术的是开源的XEN(阿里刚开始使用的KVM),但是如前文所言,虚拟化离云计算还差了个最关键的“云化”。
而AWS作为行业老大,日子过的很爽,自己的核心技术当然不愿意公开,所以AWS的“云化”是闭源的。这个时候由于自身的需求,或者说眼红AWS的盈利能力,作为全球三大云计算中心之一的Rackspace(Rackspace在全球拥有10个以上数据中心,管理超过10万台服务器),与NASA联合研发出Openstack,Openstack是什么呢?
可以简单来说就是:“云化”的技术,让你随时随地的创建自己的应用,无论是XEN还是KVM都兼容。
通俗来讲:Openstack可以实现Compute计算、Networking网络、Storage存储云化平台的自动化管理。
下面是我梳理的一张管理Openstack的功能图,当然,非云计算从业人员不用去弄懂。
Rackspace本身入场晚,这个时候AWS已经很厉害了,占据了市场的绝大部分份额,怎么办呢?
Rackspace一狠心,抱着将整个行业做大,才能吃到更多的蛋糕想法将Openstack开源了。
于是,整个行业沸腾了,以前苦于入门难,现在轮子都造好了,直接自己拉轮子跑就行。有了OpenStack之后,果真就像Rackspace想的一样,所有想做云的大企业都疯了。你能想象到的所有如雷贯耳的大型IT企业:IBM、惠普、戴尔、华为、联想等都疯了,云计算行业也迎来了百花齐放。
使用Openstack的公司很多,但是能在开源社区做出贡献的却凤麟毛角。当然,国内还有个阿里自研的。
四、IAAS、PAAS、SAAS
前面虚拟使用各种云化技术,终于实现了对计算资源、网络资源和存储资源的自动化管理,这个时候的云计算叫IAAS。
什么是IAAS呢?
说白了,相当于建房子时的地基。
IaaS在云计算分类中,被叫做:基础设施即服务,同理还有PaaS(平台即服务)和SaaS(软件即服务)。
如上图,SaaS都是一些可以被用户直接使用的应用,而PaaS则是提供平台服务,无论是七牛的直播服务还是人工智能服务,其都是属于PaaS层产品。
对于用户来说,如上图,从左往右:传统IT到SaaS,需要用户做的事情越来越少。同时,在IAAS层的服务器上,也会提供平台应用型的服务。如开源的Mysql,对于用户来说,只需关注自身的业务即可。要么是自动部署(弹性伸缩),要么是不用部署(通用应用)。总的来说,就是应用层你也要少操心,这就是PaaS层的重要作用。
五、公有云、私有云、混合云、社区云和托管云是什么东东?
到这里,我也要举例子了:
「经典厨房论」
私有云:自己厨房做饭,需要自己有地建个厨房且还要买锅碗瓢盆柴米油盐等。此外,吃完总要洗碗刷锅等运维吧,就是私有云。
公有云:到饭店吃饭,你只是饭店其中一个客户,按需胡吃海塞吃完结账抹嘴走人,餐馆后厨如何安排做菜顺序,并加快出菜速度就是负载均衡和虚拟化概念,就是公有云。
混合云和公有云:请厨师到家里上门做饭则属于典型的混合云,在资产安全的情况下有限使用公有云。
社区云:饭店只针对某个特定群体如学生开放,同时可能还会有学生在饭店做兼职,这就相当于社区云。
托管云:饭店比较大,自己也比较有钱,于是到饭店租了个包间,无论我用不用,我租用的期限都不能给其他人使用,这就是托管云。
私有云转公有云:自己朋友来,厨房能力不足,于是全部去饭店吃,这是私有云转公有云。
上图简单介绍几种了公有云、私有云和混合云的行业分类。当然,到目前还是这三种云占据主流。
六、总结
1. 云计算实现了资源的灵活运用
云计算的资源就如同银行一般,银行向外借贷的钱远比本身存储的钱要多的多,云计算底层资源出售也是同理的,也是属于“超卖”模式。只要不同时挤兑,就不会有问题。
随着Openstack技术的越发成熟,管理的规模越来越大,动不动就是上万台服务器,同时可以实现异地部署然后进行统一管理。在这种规模的前提下,对于普通用户甚至企业来说,基本上可以实现想要多少的资源就有多少资源。
以某盘为例:假设给每个人都分配了2T的存储空间,1亿用户,那么难道云计算厂商需要2亿T的存储空间?
这是不可能的,实质上分配的2T存储空间仅仅是用户层面所看的,而用户使用的可能仅仅其中的100G甚至更少,那么真实给你的也就100G。当你资源不断上传时,给你分配的真实的存储也会增加。如计算资源和网络资源同理,当云平台感觉资源不够时,就是去采购设备扩容,但是这对于用户来说是无感知,这就是资源利用的灵活性。
2. 云计算其实不便宜
成本更低、运维成本更低、服务更好、弹性扩展、部署更快、不用采购硬件,云计算的好处总能说出一大堆。
但,这些点往往只反映云计算的一个侧面,有的还不完全正确——比如:成本低,客户会发现,如果租用高性能云主机且保证99.99%的可用服务时,成本往往并不比自建机房低,在需要的主机(物理机或虚机)量比较大时,尤其明显。就如当年阿里的“去IOE运动”,难道是阿里赚的钱买不起设备了吗?对于大公司来说,首先考虑的不是成本,而是业务的连续和稳定性。而事实证明,“去IOE”后所花的成本并不比原先低多少。当然,后来阿里云又挣钱了这个另说。
3. 云计算是一场社会属性的变革
其实,云计算的本质就是社会分工。社会分工所产生的价值云计算都能产生,比如:规模化、精细化所产生的成本降低与效率提高等。而社会分工中产生的问题,云计算也都会面对,比如节省下来的成本到底是买家受益还是卖家受益,再比如垄断。
拿蒸馒头举例子:在城市中,大多数家庭不自己蒸馒头而去馒头房买,这是社会分工,节省了社会总体成本。但是,买馒头并不比自己蒸更便宜,说明节省了的成本进入了卖家而非买家的腰包。
再比如:当一个城市只剩一家馒头房而大多数家庭又丧失了蒸馒头的能力时,馒头房便有可能提价,这就是垄断。
最后,本人才疏学浅,难免有些遗漏,望斧正。