双十一期间,我想很多小伙伴都被阿里云的促销活动刷屏了,大家组队组团,可以得到较为便宜的阿里云服务器。另外,Docker 也红得发紫,与之对应的 DevOps 和 NoOps 持续高温。
但是对于不少企业尤其是传统企业,云仍在天边,对于云仍感觉云里雾里。上云还是不上云,上什么云,这是个问题。我们试着用最通俗的比喻,理清云服务中最基本的那些事儿。
什么是云?
先从一段对话开始。
张三:我们公司的资料不让存放到个人电脑上,一般都存到云上。
李四:别逗了,你们单位就二十几个人,两台服务器,没有虚拟化也没有分布式,能叫云?
张三:那怎么了?几百块钱的西数 NAS 都叫云呢。
张三大概是个普通人,李四是个技术宅,对话也反映出不同人眼中不同的云。那究竟什么是云呢?
历史上已经有不下于一百种的定义,影响力较大的是 NIST(美国国家标准与技术研究院)的定义:
云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如网络、服务器、存储、应用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。
显然,对一般的用户来说,这并不好理解,翻译成人话大概是:让计算、存储、网络、数据、算法、应用等软硬件资源像电一样,随时随地、即插即用。这种定义,比较像张三眼中的云,我们称其为广义云计算。
技术宅李四眼中的云是指一整套虚拟化和分布式的技术体系,近几年以去 IOE(即 IBM、Oracle 和 EMC)。为嘛去人家?因为太贵!
不过 IBM、Oracle 和 EMC 的母公司 Dell 都在积极拥抱云计算了)的低成本化为典型特点。
这种,我们称其为狭义云计算。
首先,狭义云计算过度关注底层,而忽略掉了 SaaS (软件即服务)和PaaS(平台即服务);
其次,狭义云计算过度关注具体技术,而忽略掉服务模式、商业模式等,长期看容易低估云计算的社会推动作用。
当然,李四这么说也有一定道理,就目前来说,大部分云的底层架构确实是通过虚拟化和分布式来实现的,毕竟节省成本、容易管理,还支撑了分布式大数据处理。
什么是虚拟化和分布式?
一个村,有很多人家。张三家只有一个女儿,粮食总是吃不完,相当于资源闲置。李四家有五个儿子,粮食总是不够用,相当于资源紧缺。这还不算,王五家时不时来一大堆客人,粮食够不够用谁也说不准,相当于计算波动大。
于是,张三家添了几双筷子几个碗,可以让别人来吃,相当于一台物理机虚拟出更多台虚机。谁家有多少粮食、几张桌子、几双筷子、几个碗,村长记在自己的小本本上,相当于统一调度,形成了资源池。
李四和王五家不够吃的时候,拿小板凳去张三家,相当于分布式。有同学就问了,张三岂不是亏了?别入戏太深,张三只是一台服务器!还有同学说,我为嘛嗅到了共产主义的味道?没错,虚拟化和分布式就是要在计算、存储和网络上实现共产主义!
虚拟化和分布式在共同解决一个问题,就是物理资源重新配置形成为逻辑资源(在 IT 领域称为解耦,也就是你用的东西跟实际物理的东西是两码事,一如李四和王五的午饭其实是在张三家解决的)。其中虚拟化做的是造一个资源池,而分布式做的是用一个资源池。
虚拟化包括计算虚拟化、网络虚拟化和存储虚拟化。
计算虚拟化通常做的是一虚多,即一台物理机虚拟出多台虚拟机,以榨干实际的物理资源,其包括全虚拟化、超虚拟化、硬件辅助虚拟化、半虚拟化和操作系统虚拟化。
类似于计算虚拟化,网络虚拟化同样解决的是网络资源占用率不高、手动配置安全策略过于麻烦的问题,采用的思路同样是把物理的网络资源抽象成一个资源池,然后动态获取,网络虚拟化目前有控制转发分离、控制面开放、虚拟逻辑网络和网络功能虚拟化等不同的思想路线。
存储虚拟化通常做的是多虚一,除了解决弹性、扩展问题外,还解决备份的问题。
公有云、私有云、混合云和社区云是什么东东?
张三、李四、王五住一栋楼,楼下一个大规模的饭店。张三一直在家做饭,这是私有云,厨房是自建机房。李四一直在饭店吃,这是公有云,饭店是云数据中心。王五牛叉,在饭店有个固定包间,包间不对外人开放,这是托管型私有云(有的厂商将其定义为专有云),包间是云数据中心中的托管服务器。
张三家有天来了十多个客人,这是业务突增。家里装不开,要去饭店,这是私有云转公有云。张三妈妈省吃俭用,对张三说,你们去吧,我和你爸在家吃,对张三家来说这是混合云。如果饭店仅对某个特定人群比如学生开放,这就相当于社区云。
当然,举例不十分恰当,毕竟饭还是买的,而云是租的,此点切记。
私有云
私有云是为某个特定用户/机构建立的,只能实现小范围内的资源优化,因此并不完全符合云的本质——社会分工,所以 Openstack 等开源软件带来的私有云繁荣可能只是暂时的,会有越来越多的客户发现廉价的硬件和免费的软件并不是打造私有云的充分条件,精细的管理、7×24 运维所耗去的总成本(TOC)不比公有云低,而且随着公有云厂商运营能力的进步,这种趋势会越来越明显。
托管型私有云在一定程度上实现了社会分工,但是仍无法解决大规模范围内物理资源利用效率的问题。
公有云
公有云是为大众建的,所有入驻用户都称租户,不仅同时有很多租户,而且一个租户离开,其资源可以马上释放给下一个租户,一如饭店里一桌顾客走了马上迎来下一桌顾客。
公有云是最彻底的社会分工,能够在大范围内实现资源优化,因此,不管道路如何曲折,前途总是光明的。当然公有云尤其是底层公有云构建,不是一般人能玩的了的,就像开个三五桌的饭店谁都能行,开个三五万桌的饭店就要看资金和本事了。
很多客户担心公有云的安全问题,敏感行业、大型客户可以考虑,但一般的中小型客户,不管是数据泄露的风险,还是停止服务的风险,公有云都远远小于自己架设机房。
社区云
社区云是介于公有、私有之间的一个形式,每个客户自身都不大,但自身又处于敏感行业,上公有云在政策和管理上都有限制和风险,所以就多家联合做一个云平台。
混合云
混合云*是以上几种的任意混合,这种混合可以是计算的、存储的,也可以两者兼而有之。在公有云尚不完全成熟、而私有云存在运维难、部署实践长、动态扩展难的现阶段,混合云是一种较为理想的平滑过渡方式,短时间内的市场占比将会大幅上升。
并且,不混合是相对的,混合是绝对的。在未来,即使不是自家的私有云和公有云做混合,也需要内部的数据与服务与外部的数据与服务进行不断的调用(PaaS 级混合)。并且还有可能,一个大型客户把业务放在不同的公有云上,相当于把鸡蛋放在不同篮子里,不同篮子里的鸡蛋自然需要统一管理,这也算广义的混合。
Iaas、PaaS 和 SaaS 又是什么东东?
- IaaS,Infrastructure as a Service,基础设施即服务;
- PaaS,Platform as a Service,平台即服务;
- SaaS,Software as a Service,软件即服务。
还是不太好理解?没关系,张三李四王五登场。
张三卖小麦,相当于 IaaS;李四卖面粉,相当于 PaaS;王五卖馒头,相当于 SaaS。
张三觉得卖小麦不挣钱且不能打品牌,向下游延伸,也卖起了面粉,相当于 IaaS 企业也逐渐做 PaaS 业务;王五馒头卖得好,一天几万个,面粉需求量非常大,不希望被李四控制,也做起了面粉,相当于 SaaS 企业做 PaaS,所以 IaaS、PaaS 和 SaaS 只是分析师和投资人津津乐道的,从业者并不关注,天下熙熙,皆为利来,啥赚钱搞啥。
张三卖面粉后,与李四就形成了竞争关系,但是李四还经常从自己这里买小麦,相当于又有合作,这种既竞争又合作的关系就叫竟合。
赵六嘴叼,馒头满足不了,非自己包饺子吃,直接从张三那里买小麦或李四那里买面粉,相当于直接利用 PaaS 平台做软件或订制 SaaS,这种嘴叼的一般都是土豪,对应的就是大客户。
有没有发现,越是在城市里,越是发达,种小麦的、买小麦的、买面粉的就越少,买馒头的越多?那就对了,这是社会分工的结果。而云计算同样会向着高度分工的方向进化。
还有同学问,存储到底算是哪一层呢?这就相当于你觉得能灌溉能和面还能直接喝的水是哪一层呢?自然是出现在不同场景时对应不同层:常说的块存储、对象存储一般是指 IaaS 层,而网盘一般是指 SaaS 层。
Iaas
IaaS 提供的一般是通用计算、存储和网络三大基础资源,前面提到的虚拟化、分布式等大多集中在本层,少量「流亡」于 PaaS 层。
一般认为,IaaS 始于亚马逊的 EC2 和 S3 两款产品。近两年,我们说的云计算快速落地,其实主要指 IaaS 的迅速落地,因为原来的公有云确实不稳定,而客户也都在观望。当然,有 IaaS 公司提出自己是「企业级 IaaS」,这就有点噱头了,试问,哪个 IaaS 不是冲着企业级这一目标去的?给开发者玩儿的吗?
Paas
PaaS 定义比较复杂,早年提供的是部署了数据库和开发环境的平台,被称为 XAE(X:企业名首字母;AE:Application engine),XAE 常用于个人建站,商用程度并不高,在中国尤其如此,后来要么转型要么解体了;
后来 PaaS 转为提供某种细分能力,如图像识别、语音识别、推送、通信等,常以 API 或 SDK 进行交付;近两年 Docker 风生水起,成为 PaaS 新秀。
此时回头看原来 PaaS 的各种定义,都不太恰当了,因此比较准确的描述应是:PaaS 提供除计算、存储和网络三大基础资源之外的其他能力(如通用开发能力,细分能力,业务交付能力),但并不对终端用户提供成熟产品。
Saas
SaaS 涵盖的就广了,邮箱是、网盘是、几乎常见的网站都是!但一般所谓的 SaaS 是指:具有一定复杂度的,通常应该在 C/S 架构下主要通过 C 端完成的软件服务,在 B/S 架构下完成了。
当然这个复杂度,在不同的时期有不同的定义,十几年前,邮箱可能都算复杂了,而现在随着 HTML5 技术的成熟,大部分的 Office 操作都可以在浏览器完成。当然,放企业级市场里,SaaS 比较好界定,指以云的方式取代了的原来企业软件系统的服务。
SaaS 始于上世纪九十年代末 Salesforce 等公司,随着移动互联网和 HTML5 的发展而蓬勃发展,强调的是瘦终端。但是,到底多瘦才算瘦,各种应用不再用 APP 而以微信小程序的形式出现算瘦吗?或许,SaaS 的终极进化是纯「裸机」,也就是「桌面云」,当然这只是一种理想,因为不仅关乎软硬件技术,还关乎用户习惯。须知,到现在还有不少用户喜欢把电影放到移动硬盘里,抽屉里一塞,那感觉,踏实!
SaaS 最接近于终端用户,是一个巨大的市场。但是,SaaS 是对软件开发水平和服务水平的综合考验,拼得往往不仅是技术本身,还包括对用户的理解、以及设计水平和创意。
如果原来就是卖不出去的软件,没有任何改进包装一下放到云上改为服务也不会有人买单,原来最起码还不用对宕机这种事情负责呢,放云上只是增加了 SaaS 服务商自身的风险。
所以,SaaS 绝不是单机软件到云上的简单迁移,而是自始至终都应贯穿服务的思想和云的思想,比如多屏同步、多人协同等。也所以,我们虽然看好整体市场,但是并不看好很多 SaaS 领域一堆堆的无价值企业,资本寒冬,最先倒下的往往是他们。
云计算有什么价值?
成本更低、运维成本更低、服务更好、弹性扩展、部署更快、不用采购硬件,云计算的好处总能说出一大堆。
但,这些点往往只反映云计算的一个侧面,有的还不完全正确:比如成本低,客户会发现,如果租用高性能云主机且保证 99.99% 的可用服务时,成本往往并不比自建机房低,在需要的主机(物理机或虚机)量比较大时,尤其明显。
其实,云计算的本质就是社会分工,社会分工所产生的价值云计算都能产生,比如规模化、精细化所产生的成本降低与效率提高等;
而社会分工中产生的问题,云计算也都会面对,比如节省下来的成本到底是买家受益还是卖家受益,再比如垄断。
还是拿蒸馒头举例子,在城市中,大多数家庭不自己蒸馒头而去馒头房买,这是社会分工,节省了社会总体成本,但是买馒头并不比自己蒸更便宜,说明节省了的成本进入了卖家而非买家的腰包。
再比如,当一个城市只剩一家馒头房而大多数家庭又丧失了蒸馒头的能力时,馒头房便有可能提价,这就是垄断。
理解了云计算是一次社会分工的本质,便不会过分夸大其优点,更不会对之回避认为其只不过是一时风潮。从狩猎到农耕、再到工业社会,从一只羊换两把斧子到贝壳、金属货币、纸币、虚拟货币,从生产方式到价值交换方式,你会发现,人们所做的一切都是在朝着社会分工或促进社会分工的方向发展。
所以,对于云,逃也没用,躲也没用,时代总会来临。果断拥抱,理性选择,踏实落地,即是未来。
最近搜集到传智播客 2018 最新 Python 和 Java 教程!关注本公众号,后台回复「2018」即可获取下载地址。
公众号提供CSDN资源免费下载服务!