(1)说的明白一点:
可能上面有点抽象,下面为了更好理解什么是云计算,先从一段对话开始。
张三:我们公司的资料不让存放到个人电脑上,一般都存到云上。
李四:别逗了,你们单位就二十几个人,两台服务器,没有虚拟化也没有分布式,能叫云?
张三:那怎么了?几百块钱的西数NAS都叫云呢。
张三大概是个普通人,李四是个技术宅,对话也反映出不同人眼中不同的云。那究竟什么是云呢?
历史上已经有不下于一百种的定义,影响力较大的是NIST(美国国家标准与技术研究院)的定义:云计算是一种模型,它可以实现随时随地、便捷地、随需应变地从可配置计算资源共享池中获取所需的资源(例如网络、服务器、存储、应用及服务),资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度。显然,对一般的用户来说,这并不好理解,翻译成人话大概是:让计算、存储、网络、数据、算法、应用等软硬件资源像电一样,随时随地、即插即用。这种定义,比较像张三眼中的云,我们称其为广义云计算。
技术宅李四眼中的云是指一整套虚拟化和分布式的技术体系,近几年以去IOE(即IBM、Oracle和EMC。为嘛去人家?因为太贵!不过IBM、Oracle和EMC的母公司Dell都在积极拥抱云计算了)的低成本化为典型特点。这种,我们称其为狭义云计算。
首先,狭义云计算过度关注底层,而忽略掉了SaaS(软件即服务,后面还会讲)和PaaS(平台即服务);其次,狭义云计算过度关注具体技术,而忽略掉服务模式、商业模式等,长期看容易低估云计算的社会推动作用。当然,李四这么说也有一定道理,就目前来说,大部分云的底层架构确实是通过虚拟化和分布式来实现的,毕竟节省成本、容易管理,还支撑了分布式大数据处理。
(2)什么是虚拟化和分布式?
虚拟化和分布式在共同解决一个问题,就是物理资源重新配置形成为逻辑资源(在IT领域称为解耦,也就是你用的东西跟实际物理的东西是两码事,一如李四和王五的午饭其实是在张三家解决的)。其中虚拟化做的是造一个资源池,而分布式做的是用一个资源池。
虚拟化包括计算虚拟化、网络虚拟化和存储虚拟化。计算虚拟化通常做的是一虚多,即一台物理机虚拟出多台虚拟机,以"榨干"实际的物理资源,其包括全虚拟化、超虚拟化、硬件辅助虚拟化、半虚拟化和操作系统虚拟化。类似于计算虚拟化,网络虚拟化同样解决的是网络资源占用率不高、手动配置安全策略过于麻烦的问题,采用的思路同样是把物理的网络资源抽象成一个资源池,然后动态获取,网络虚拟化目前有控制转发分离、控制面开放、虚拟逻辑网络和网络功能虚拟化等不同的思想路线。存储虚拟化通常做的是多虚一,除了解决弹性、扩展问题外,还解决备份的问题。
私有云是为某个特定用户/机构建立的,只能实现小范围内的资源优化,因此并不完全符合云的本质——社会分工,所以Openstack等开源软件带来的私有云繁荣可能只是暂时的,会有越来越多的客户发现廉价的硬件和免费的软件并不是打造私有云的充分条件,精细的管理、7×24运维所耗去的总成本(TOC)不比公有云低,而且随着公有云厂商运营能力的进步,这种趋势会越来越明显。托管型私有云在一定程度上实现了社会分工,但是仍无法解决大规模范围内物理资源利用效率的问题。
公有云是为大众建的,所有入驻用户都称租户,不仅同时有很多租户,而且一个租户离开,其资源可以马上释放给下一个租户,一如饭店里一桌顾客走了马上迎来下一桌顾客。公有云是最彻底的社会分工,能够在大范围内实现资源优化,因此,不管道路如何曲折,前途总是光明的。当然公有云尤其是底层公有云构建,不是一般人能玩的了的,就像开个三五桌的饭店谁都能行,开个三五万桌的饭店就要看资金和本事了。很多客户担心公有云的安全问题,敏感行业、大型客户可以考虑,但一般的中小型客户,不管是数据泄露的风险,还是停止服务的风险,公有云都远远小于自己架设机房。
社区云是介于公有、私有之间的一个形式,每个客户自身都不大,但自身又处于敏感行业,上公有云在政策和管理上都有限制和风险,所以就多家联合做一个云平台。
混合云是以上几种的任意混合,这种混合可以是计算的、存储的,也可以两者兼而有之。在公有云尚不完全成熟、而私有云存在运维难、部署实践长、动态扩展难的现阶段,混合云是一种较为理想的平滑过渡方式,短时间内的市场占比将会大幅上升。并且,不混合是相对的,混合是绝对的。在未来,即使不是自家的私有云和公有云做混合,也需要内部的数据与服务与外部的数据与服务进行不断的调用(PaaS级混合)。并且还有可能,一个大型客户把业务放在不同的公有云上,相当于把鸡蛋放在不同篮子里,不同篮子里的鸡蛋自然需要统一管理,这也算广义的混合。
- 基础设施即服务(IaaS)----Google App Engine(http://appengine.google.com)
- 软件即服务(SaaS)---WebService(e.g:手机端使用httpClient/UrlConnection访问网页web)
- 平台即服务(Paas)---Hadoop,Amazon
- 管理服务提供商(MSP)---Amazon,oracle,mircosoft
(2)PaaS--------Platform(平台) as a Service
第二层就是所谓的PaaS,某些时候也叫做中间件。你公司所有的开发都可以在这一层进行,节省了时间和资源。PaaS公司在网上提供各种开发和分发应用的解决方案,比如虚拟服务器和操作系统。这节省了你在硬件上的费用,也让分散的工作室之间的合作变得更加容易。网页应用管理,应用设计,应用虚拟主机,存储,安全以及应用开发协作工具等。一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。最近兴起的公司有AppFog, Mendix 和 Standing Cloud
(3)SaaS--------Software(软件) as a Service
第三层也就是所谓SaaS。这一层是和你的生活每天接触的一层,大多是通过网页浏览器来接入。任何一个远程服务器上的应用都可以通过网络来运行,就是SaaS了。你消费的服务完全是从网页如Netflix, MOG, Google Apps, Box.net, Dropbox或者苹果的iCloud那里进入这些分类。尽管这些网页服务是用作商务和娱乐或者两者都有,但这也算是云技术的一部分。一些用作商务的SaaS应用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。
成本更低、运维成本更低、服务更好、弹性扩展、部署更快、不用采购硬件,云计算的好处总能说出一大堆。但,这些点往往只反映云计算的一个侧面,有的还不完全正确:比如成本低,客户会发现,如果租用高性能云主机且保证99.99%的可用服务时,成本往往并不比自建机房低,在需要的主机(物理机或虚机)量比较大时,尤其明显。
其实,云计算的本质就是社会分工,社会分工所产生的价值云计算都能产生,比如规模化、精细化所产生的成本降低与效率提高等;而社会分工中产生的问题,云计算也都会面对,比如节省下来的成本到底是买家受益还是卖家受益,再比如垄断。还是拿蒸馒头举例子,在城市中,大多数家庭不自己蒸馒头而去馒头房买,这是社会分工,节省了社会总体成本,但是买馒头并不比自己蒸更便宜,说明节省了的成本进入了卖家而非买家的腰包。再比如,当一个城市只剩一家馒头房而大多数家庭又丧失了蒸馒头的能力时,馒头房便有可能提价,这就是垄断。
理解了云计算是一次社会分工的本质,便不会过分夸大其优点,更不会对之回避认为其只不过是一时风潮。从狩猎到农耕、再到工业社会,从一只羊换两把斧子到贝壳、金属货币、纸币、虚拟货币,从生产方式到价值交换方式,你会发现,人们所做的一切都是在朝着社会分工或促进社会分工的方向发展。
所以,对于云,逃也没用,躲也没用,时代总会来临。果断拥抱,理性选择,踏实落地,即是未来。