云计算一词源自2006年8月9日,Google首席执行官Eric Schmidt在搜索引擎大会上首次提出了“云计算”(Cloud Computing)的概念。云计算目前还没有公认的定义。美国国家标准与技术研究院NIST对云计算是这样定义的:云计算是一种按使用量进行付费的模式,这种模式提供可用的、便捷的、按需的网络访问,使用可配置的计算资源共享池,共享池的资源包括网络、服务器、存储、应用软件、服务等,这些资源能够通过云计算平台快速提供给客户,只需投入很少的管理工作,或与服务供应商进行很少的交互。这个定义相对比较贴切,随着云计算技术的不断演进,我们对云计算的认识也在不断的加深,未来对云计算的定义还会更加严密。
云计算是分布式计算、并行计算、网格计算、多核计算、网络存储、虚拟化、负载均衡等传统计算机技术发展到一定阶段,和互联网技术融合发展的产物。其目的在于通过互联网把无数个节点(即计算实体)整合成一个具有强大计算能力的“巨型机”系统,并借助IaaS(Infrastructure as a Service,基础设施即服务)、PaaS(Platform as a Service,平台即服务)、SaaS(Software as a Service,软件即服务)等业务模式,把强大的计算能力提供给终端用户。云计算能够通过不断提高云计算平台的处理能力,减少用户终端的处理负担,使得用户终端可以简化成低配的计算终端,让用户享受到按需使用云计算平台的强大计算处理能力。
云计算被称为是继大型计算机、个人计算机、互联网之后的第四次IT产业革命,它不仅改变了网络应用的模式,也将成为带动IT、物联网、电子商务等诸多产业强劲增长、推动信息产业整体升级的基础。预计未来的十年,将是云计算的时代。越来越多的各类信息系统和信息终端将依托云计算平台而存在,越来越多的研发和业务流程将依托云计算平台来支撑。
云计算虽然是Google最先倡导的,但是真正把云计算进行大规模商用的公司首推亚马逊。因为早在Google提出云计算的概念之前,在2002年,Amazon就推出了Amazon Web Service服务产品,即著名的AWS业务。随后,亚马逊在云计算方面的研发和商业应用一直在持续。到2006年,Google首次提出云计算的概念之后,亚马逊发现云计算与自己的整套技术架构无比吻合,顺势推出了Amazon云计算。随后,亚马逊在云业务方面的收入年年创新高,成为业界的领头羊。而亚马逊在云计算的服务产品也成为其它云计算服务商的效仿对象。亚马逊提供的云计算服务产品包括:
1. 弹性计算云EC2
2. 简单存储服务S3
3. 简单数据库服务SimpleDB
4. 简单队列服务SQS
5. MapReduce服务
6. 内容推送服务CloudFront
7. AWS导入/导出
8. 关系数据库服务
Google在云计算领域可谓是资深元老。为什么呢?原因有两点:一是Google拥有的服务器数量位居全球第一。为了解决这些服务器的分布式计算、调度、任务分配、协调运行、监控等,Google在分布式领域的研究投入相当大。二是云计算的前生就是分布式计算,是分布式计算的进一步发展。Google在云计算方面最杰出的三大贡献是:分布式文件系统GFS、MapReduce、BigTable。自从Google公布了这三个产品详细设计的论文后,一举奠定了云计算的理论基石(当然还有一些技术,比如分布式锁Chubby等也相当厉害)。然而,Google直到2008年才推出了云计算的产品GAE(Google App Engine),而GAE是功能比较单一的云服务产品。直到2012年的Google I/O大会,Google才正式推出了自己的云计算基础架构服务Google Compute Engine,包括了Google Cloud Storage和Google BigQuery等服务。自此,Google的云计算服务才算比较完备。当然Google的很多产品本身就属于SaaS模式,比如Google Docs,都可以看成云产品。
介绍了这么多国外云计算的背景,是因为,国内云计算服务提供商都是学习、仿照亚马逊、Google等公司的云计算服务产品的。接下来,我们先了解一下云计算的形式和特征。
二、云计算的形式
云计算主要有以下几种形式:
(1)软件即服务SaaS
SaaS是一种通过互联网提供软件的模式,软件提供商将应用软件部署在自己的服务器上,客户可以根据自己实际需求,通过互联网向厂商定购所需的Web应用软件服务,按定购的服务多少和时间长短向厂商支付费用,并通过互联网获得厂商提供的服务。SaaS使得用户不用再购买软件,而改用向提供商租用基于Web的软件,来管理企业经营活动,也无需对软件进行维护,服务提供商会全权管理和维护软件,软件厂商在向客户提供互联网应用的同时,也提供软件的离线操作和本地数据存储,让用户随时随地都可以使用其定购的软件和服务。
(2)效用计算
效用计算(Utility computing)是一种提供服务的模型,采用这种模型,服务提供商提供客户需要的计算资源和基础设施管理,并根据某个应用,而不是仅仅按照速率进行收费。按需分配的效用计算模型采用了多种灵活有效的技术,可能会改变整个IT业的操作形式。
(3)平台即服务PaaS
PaaS是SaaS的变种,是指将业务基础平台作为一种服务,以SaaS的模式提交给用户。因此,PaaS也是SaaS模式的一种应用。PaaS能够提供企业进行定制化研发的中间件平台,同时涵盖数据库和应用服务器等。PaaS可以提高在Web平台上利用的资源数量。
(4)管理服务提供商MSP
管理服务是云计算最早的形式之一,是一种应用软件,常用于服务监测、桌面管理、病毒扫描、反垃圾邮件服务等。
(5)云端网络服务
云端网络服务与SaaS密切相关,是指网络服务供应商不仅提供成熟的Web应用软件,还提供了API来帮助开发商通过网络拓展功能性。典型的例子有Google Maps、新浪微博等。
(6)商业服务平台
商业服务平台是SaaS和MSP的混合应用,它提供了一种与用户相结合的服务采集器,为用户和服务供应商之间提供了互动平台。
(7)网络集成
网络集成是将云计算基础服务进行集成,采用通用的“云计算总线”,将现有的云计算公司进行整合,便于用户比较和选择服务提供商,为用户提供完整可靠的服务。
三、云计算的特征
(1)超大规模
云计算平台有着超大的规模。企业构建私有云一般是从数十台服务器起步,直到数百台、上千台。像Amazon、微软、IBM、等公司的“云”至少拥有数万台服务器。至2011年6月,Jon Koomey根据Google分布在全球的36个数据中心的用电量进行估计,Google的服务器数量大约为90万台。可见,由无数服务器组建的“云”能够给予用户无与伦比的计算能力。
(2)按需服务
云计算平台是一个庞大的资源池,按需购买。云计算平台的资源可以像我们生活在中使用自来水、电、煤气那样计费。
(3)高可用性
通过集成海量存储和高性能的计算能力,云计算平台能提供较高的服务质量。云计算平台可以自动检测失效节点,并将失效节点排除,不影响系统的正常运行。云计算平台不针对特定的应用,在“云”的支撑下可以构造出千变万化的应用,同一个“云”可以同时支撑不同的应用运行。
(4)高可扩展性
云计算平台的规模可以动态伸缩。由于应用运行在虚拟平台上,没有事先预订的固定资源被锁定,使用户可以随时随地根据应用的需求,动态地增减IT资源,可以满足特定时期、特定应用及用户规模变化的需要。
(5)高可靠性
云计算平台采用数据冗余和分布式存储来保证数据的可靠性,数据多副本容错、计算节点同构可互换等措施保证了云存储的可靠性。任何节点发生物理故障,云计算平台会自动把任务转移到其它物理资源继续运行。
(6)虚拟化
虚拟化技术可以将物理服务器虚拟为多台性能稍逊的虚拟机,云计算平台可以对云中的所有虚拟机进行监控和管理,以及对资源进行灵活的调度和分配。云计算平台提供的是服务。云计算支持用户在任意位置、使用各种终端获取应用服务。所请求的资源来自于“云”。云服务的实现机制对用户透明,用户使用终端就可以获得获取所需的服务。
(7)高性价比
由于云计算平台可以采用相对廉价的服务器节点组建,而且采用自动化集中式管理,则企业无需负担高昂的数据中心管理成本。云计算平台的通用性使资源的利用率比早期的传统系统性能大幅提升;终端用户仅需一个要求极低的终端,就可以体验云计算带来的丰富应用。
四、国内云计算发展的现状
前面交代了很多云计算的基础知识,便于大家对云计算有清晰的认识,下面接着谈谈国内云计算发展的现状。国内云计算做得比较好的公司有盛大、阿里巴巴、百度、新浪、华为等。我用过盛大云、阿里云、新浪云和百度云,分别在这四个云平台上部署过Web应用,对于华为云,我只使用过它的DBank云服务产品,即云存储服务。也算是有一定的发言权吧,我尽可能这五个公有云平台做一个客观的评价。实事求是的说,还是会有些主观,毕竟这些认识和结论都是基于我的体验而来。
由于各家的云计算服务产品大同小异,比如云主机,都是支持Linux和Windows,都提供了弹性扩展和主机克隆,都有安全策略,故下面我只在阿里云对云计算服务产品做一个描述,其它的地方尽量简略描述。
(1)盛大云
地址:http://www.grandcloud.cn/
盛大云的云计算服务产品有:云主机、云硬盘EBS、云分发DDS、云存储、云监控、MongoIC、网站云、数据库云。盛大云在国内起步很早,号称“中国最完整的公有云平台”。大约在2011年7月,盛大云正式对外公测。所以,盛大云计算服务在国内是先于其它几家发布的。
盛大云的收费最细,收费项最多,好处是你很清楚你的每一分钱都花在了什么地方。盛大云在技术方面比较成熟,其云计算的技术路线是学习亚马逊的服务产品,当然,盛大云的服务也很好。
(2)阿里云
地址:http://www.aliyun.com/
阿里云起步于2009年9月,走的是Amazon弹性云的路线,在很多方面学习和借鉴Amazon弹性云的结构及设计。阿里云的云计算服务产品有:
1. 弹性计算
弹性计算产品包括云服务器和辅助的负载均衡SLB。其云服务器基于阿里云自主研发的大规模分布式计算系统,通过虚拟化技术整合IT资源,提供互联网基础设施服务。SLB是Server Load Balance(负载均衡)的简称,阿里云提供的负载均衡服务,通过设置虚拟服务IP,将位于同一机房的多台云服务器资源虚拟成一个高性能、高可用的应用服务池;再根据应用特性,将来自客户端的网络请求分发到云服务池中。SLB是云服务器面向多机方案的一个增值服务,需要同云服务器结合使用。
2. 云引擎ACE
云引擎ACE是基于云计算基础架构的Web应用的托管运行环境,支持PHP、NodeJS等编程语言,内置多种分布式服务,可根据应用规模的变化进行自动伸缩,简化了开发者对互联网应用的构建和维护工作。ACE提供了分布式Session,分布式Memcache,开放存储,消息队列,计划任务等多种服务,ACE系统自带了PHP应用模板,开发者可以将自己的应用做成模板,发布其应用给其他人使用,也可以从模板库中在线创建应用。
3. 数据存储计算
开放存储服务OSS(Open Storage Service)是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。用户可以通过简单的REST接口,在任何时间、任何地点上传和下载数据,也可以使用WEB页面对数据进行管理。同时,OSS提供Java、Python、PHP SDK,简化用户的编程。基于OSS,用户可以搭建出各种多媒体分享网站、网盘、个人企业数据备份等基于大规模数据的服务。
关系型数据库RDS(Relational Database Service),通过云服务的方式让关系型数据库设置、操作和扩展变得更加简单。帮助企业解决费时、费力的数据库管理,使企业有更多的时间聚焦到应用和业务层面上,节约用户的硬件成本和维护成本。目前RDS支持MySQL、微软的SQL Server两种关系型数据库。
开放数据处理服务ODPS(Open Data Processing Service))是基于阿里云自主知识产权的云计算平台构建的数据存储与分析平台。ODPS提供大规模数据存储与数据分析,用户可以使用ODPS平台上提供的数据模型工具与服务,同时也支持用户自己发布数据分析工具。
开放结构化数据服务OTS(Open Table Service)是构建在飞天大规模分布式计算系统之上的海量结构化和半结构化数据存储与实时查询的服务。OTS以数据表的形式组织数据通过RESTful API形式的接口提供服务并提供一个Web界面以方便用户管理。OTS适用于需要处理结构化数据,同时对数据规模和并发访问要求比较高的应用,如邮箱存储、手机云空间等以用户为中心的互联网应用。
4. 其它服务
阿里云还提供了诸如云监控、云盾、云搜索、云地图、云邮箱等服务。
阿里云也很不错,在今年上半年的时候,阿里云的云基础设施还不够完善,为了开展云服务,甚至能够为用户提供裸机。当时个人感觉阿里云稍逊于盛大云。阿里人的技术实力是毋庸置疑的,比如分布式存储HBase领域,在国内,阿里就是领头羊。从现在看,阿里云的云服务产品已经比较完备。最近阿里云在开展声势浩大的活动,力推阿里的云计算平台。
(3)新浪云
地址:http://sinacloud.com/
新浪云在前两年用过,早期只有SAE云计算服务产品,后来又推出了新浪云计算企业服务。
新浪SAE云平台主要支持基于PHP的Web应用,后来陆续加入了对Java语言、Python语言的支持。SAE适合构建个人网站、博客站点、移动应用网站、社交网站等。SAE拥有负载均衡、分布式缓存(新浪自己改进的Memcache)、数据库(支持MySQL数据库和新浪自己开发的KVDB——一种NoSQL数据库)、安全(新浪提供了应用防火墙以及App运行隔离)、任务调度(支持Cron定时服务、TaskQueue任务队列服务、DeferredJob离线任务执行队列)、分布式文件存储服务和CDN服务、扩展服务(比如短信服务、地理位置服务、分词服务)等功能。
新浪云计算企业服务包括SAE企业版、MAE(新浪的企业私有云解决富安)、云商店(包含数万款应用)以及第三方服务接入。
个人体会是新浪云在前几年发展过程中,走的是Google的云服务产品的路线,有很多东西跟GAE相似。而大家都知道,虽然Google是云计算最早的倡导者和发起人(率先提出了Google分布式文件系统GFS、MapReduce以及BigTable),但是Google在云计算方面却没怎么发力,反而是亚马逊在云计算方面独领风骚,微软、IBM等紧随其后。直到今年,Google在自己的年度技术大会上,才正式发力,正式向云计算进军,力推自己的云计算。所以,新浪的云服务产品相对于盛大云和阿里云,显得单薄了一点。
(4)百度云
地址:http://yun.baidu.com/
在2009年,百度掌门李彦宏在“百度技术创新大会”上提出了框计算的概念。框计算在本质上仍然是云计算,是从用户的角度在应用层上对云计算的另一种描述。百度虽然很早就在规划和研发云计算,但是百度云发力很晚,今年才看到百度的BAE云平台。我试用过一段时间,感觉和Google的GAE和新浪的SAE比较相似,同样有云存储、云数据库、云消息、虚拟机等,支持PHP、Java、Python三种语言。但是百度的云基础设施还有待完善,对Java的支持也不够好。相信百度的技术实力,期待百度云的后续发展。
(5)华为云
地址:http://www.hwclouds.com/
华为进军云计算领域比较晚,记得在2010年年初时听到一个消息,说任掌门决定准备投入一万人搞云计算。所以华为相对于前面几家,可谓是起步较晚,但力度极大。华为云计算服务产品不多,企业云、弹性计算云、云存储等。
华为云我没有正式用过,不能对其进行客观评价。从华为的DBbank数据银行(云存储)产品来看,技术很不错,但是跟115网盘相比,易用性、操作便捷性还略差了一点。华为云发展较晚,但投入的力度极大,现在已经能初步看到成果了。
五、国内云计算的未来
国内搞云计算的企业远不止以上几家,以及还有很多企业是面向专一云服务产品的。国内云计算虽然起步较晚,但从长期来看,发展前景看好。至于企业在云计算方面是追求大而全的云服务呢,还是只做单一云服务产品?还是要根据自家的实际情况量力而行。从中短期来看,要像亚马逊那样获得盈利是不太现实的,先从电信、联通的托管机房抢客户吧!