发表时间: 2022-03-14 00:00:00
作者: 上海众恒信息产业股份有限公司
古人云:“不以规矩,无以成方圆”,也就是说,“方圆”再怎么精彩和美丽,都离不开“规矩”的积淀和约束,这个道理对云计算也同样适用,如果读者对云计算本身有一定的认知和理解,那么就非常有助于今后对其相关的技术和产品的学习,而本章就是这样专注于云计算本身的章节。在本章的开始将关注云计算的定义和特点,接着将从思想和技术这方面来分析云计算的由来,并讲述一下云计算的诞生与成长,之后将重点介绍云计算对整个IT产业的影响和主要的使用场景。
1.1什么是云计算
云计算到底是什么呢?
在这个问题上,可谓众说纷纭。比如,在维基百科上的定义是“云计算是一种基于互联网的计算新方式,通过互联网上上异构、自治的服务为个人和企业用户提供按需即取的计算”;咨询机构Gartner将云计算定义为“云计算是利用互联网技术来将庞大且可伸缩的IT能力集合起来作为服务提供给多个客户的技术"; 而IBM则认为“云计算是一种新兴的IT服务交付方式,应用、数据和计算资源能够通过网络作为标准服务在灵活的价格下快速地提供用户”。
虽然这几个定义都有一定的道理,但在我看来还没抓住云计算的核心,在我眼中,云计算应该有如图1-1:云计算是新一代IT模式,它能在后端庞大的云计算中心的支撑下能为用户提供更方便的体验和更低廉的成本。
具体而言,由于在后端有规模庞大、非常自动化和高可靠性的云计算中心的存在,人们只要接入互联网,就能非常方便地访问各种基于云的应用和信息,并免去了安装和维护等繁琐操作,同时,企业和个人也能以低廉的价格来使用这些由云计算中心提供的服务或者在云中直接搭建其所需的信息服务。在收费模式上,云计算和水电等公用事业非常类似,用户只需为其所使用的部分付费。对云计算的使用者(主要是个人用户和企业)来讲,云计算将会在用户体验和成本这两方面给他们带来很多非常实在的好处。
1.1.1用户体验
对个人用户而言,在云计算的时代,会出现越来越多的基于互联网的服务,这些服务丰富多样、功能强大、随时随地接入,同时也无需购买、下载和安装任何的客户端,并只要使用浏览器就能轻松访问,而无需为软件的升级和病毒的感染操心。还有,人们可以将文档等数据放在云来进行共享和协作,比如,共同编辑同一篇文章,而且通过严格的权限管理机制,来确保协作是在安全的环境下进行。对企业用户而言,可以利用云技术来优化其现有的IT服务,使现有的IT服务更可靠和更自动化,更可以将企业的IT服务整体迁移到云上,使企业卸下维护IT服务的重担,从而更专注于其主营业务。
1.1.2成本
对个人用户而言,由于他们所使用的服务运行在云端,本地计算需求比较少,所以无需像过去那样不断地升级电脑的配置或者购买昂贵的新电脑,只需一个廉价的可以上网的智能终端,比如:手机和上网本等。同时由于互联网服务是按需使用,而无需在初期购置不廉价的软件客户端。对企业用户而言,除了可以通过利用先进的云技术来降低企业IT初期的投资成本和后期的维护成本之外,更可以通过将IT服务外包或者整体迁移到外部的云中来削减IT部门的规模,这样能使得公司成本的结构更完善。
上面提到的一些云计算的优点和好处,而这些东西都没有远离云计算自身的特点,而是息息相关的。
(1)超大规模:大多数云计算中心都具有相当的规模,比如,Google云计算中心已经拥有几百万台服务器,而Amazon、IBM、微软、Yahoo等企业所掌控的云计算规模也毫不逊色,并且云计算中心能通过整合和管理这些数目庞大的计算机集群来赋予用户前所未有的计算和存储能力。
(2)抽象化:云计算支持用户在任意位置、使用各种终端获取应用服务,所请求的资源都来自“云”,而不是固定的有形的实体。应用在“云”中某处运行,但实际上用户无需了解、也不用担心应用运行的具体位置,这样能有效地简化了应用的使用。
(3)高可靠性:在这方面,云计算中心在软硬件层面采用了诸如数据多副本容错、心跳检测和计算节点同构可互换等措施来保障服务的高可靠性,还在设施层面上的能源、制冷和网络连接等方面采用了冗余设计来进一步确保服务的可靠性。
(4)通用性:云计算中心很少为特定的应用存在,但其有效支持业界大多数的主流应用,并且一个“云”可以支撑多个不同类型应用的同时运行,并保证这些服务的运行质量。
(5)高可扩展性:用户所使用“云”的资源可以根据其应用的需要进行调整和动态伸缩,并且再加上前面所提到的云计算中心本身的超大规模,使得“云”能有效地满足应用和用户大规模增长的需要。
(6)按需服务:“云”是一个庞大的资源池,用户可以按需购买,就象自来水、电和煤气等公用事业那样根据用户的使用量计费,并无需任何软硬件和设施等方面的前期投入。
(7)廉价:首先,由于云计算中心本身巨大规模所带来的经济性和资源利用率的提升,其次,“云”大都采用廉价和通用的X86节点来构建,因此用户可以充分享受云计算所带来的低成本优势,经常只要花费几百美元就能完成以前需要数万美元才能完成的任务。
(8)自动化:云中不论是应用、服务和资源的部署,还是软硬件的管理,都主要通过自动化的方式来执行和管理,从而极大地降低整个云计算中心庞大的人力成本。
(9)节能环保:云计算技术能将许许多多分散在低利用率服务器上的工作负载整合到云中, 来提升资源的使用效率, 而且云由专业管理团队运维, 所以其PUE(Power Usage Effectiveness, 电源使用效率值) 值和普通企业的数据中心相比出色很多, 比如, Google数据中心的PUE值在1.2左右, 也就是说, 每一块钱的电力花在计算资源上, 只需再花两角钱电力在制冷等设备, 而常见的PUE在2和3之间, 并且还能将云建设在水电厂等洁净资源旁边, 这样既能进一步节省能源方面开支, 又能保护了环境。
(10)完善的运维机制:在“云”的另一端,有专业的团队来帮用户管理信息,有全世界先进的数据中心来帮用户保存数据。同时,严格的权限管理策略可以保证这些数据的安全。这样,用户无需花费重金就可以享受到专业的服务。
由于这些特点的存在,使得云计算能为用户提供更方便的体验和更低廉的成本,同时这些特点也是为什么云计算能脱颖而出,并且能被大多数业界人员所推崇的原因之一,那么云计算是怎么诞生的呢?
1.2云计算的由来
虽然很多伟大发明和技术在我们看来都是些突发奇想的产物,但当真正探究起来,这些东西大都通过一代人,甚至于几代人的积累演变而成的,其中明显的例子,莫过于计算机本身。早在2000年前,我们中国人就已经发明了算盘这一强大的计算工具;在1642年,法国数学家帕斯卡在在英国数学家奥特雷得所制作的“计算尺”的基础上,将其加以改进,制成了能进行八位计算的“加法器”;在1673年,德国大师莱布尼茨在巴黎制造了一个能进行加、减、乘、除及开方运算的计算机,名为“乘法器”;在1820年,英国人查尔斯·巴比奇已经在构想和设计了世界上第 一台完全可编程的计算机,可惜介于当时的技术条件和经费限制,使得这台计算机始终未能在他有生之年问世;到了20世纪,艾伦·图灵的图灵机思想和新兴的电子技术都对ENIAC的问世都起着非常关键的作用。还有, 我们耳熟能详, 但晦涩难懂的相对论也同样如此, 如果没有麦克斯韦尔、迈克尔逊和洛仑兹等大师的积淀, 估计爱因斯坦是很难完成相对论的谱写。
当我们谈到云计算时, 难道它就是突发奇想, 就是特例吗?其实虽然云计算这个名词只是Google CEO埃里克·施密特博士当年在担任SUN系统公司的CTO(Chief Technology Officer ,首席技术官)时候的一次偶然所得,但是其概念本身不仅和前言中提到的过去电力的发展是密不可分的,而且更是整个IT产业非常自然的发展和演化。这些发展和演化不仅存在于思想方面,而且涉及技术方面的进步。
1.2.1思想演化
云计算在思想方面主要经历了四个步骤才发展到现在这样比较成熟的水平,这四个步骤依次是电厂模式、效用计算、网格计算和现在的云计算,如图1-2所示。
1.电厂模式
由于IT行业本身是一个比较新生的行业, 所以从其他行业取经是其发展不可或缺的一步, 出名的例子之一莫过于从建筑行业, 引入“模式(Pattern) ”这个概念。虽然在IT界, 电厂这个概念不像“模式"那样炙手可热,但其影响是深远的,而且有许许多多的IT人在不断地实践着这个理念,它的意思是通过利用电厂的规模效应,来降低电力的价格,并让用户使用起来更方便,且无需维护和购买什么任何发电设备。
2.效用计算
在1960年左右,当时计算设备的价格是非常高昂的,远非普通企业、学校和机构所能承受的,所以有很多人产生了共享计算资源的想法,特别是在1961年,人工智能之父麦肯锡在一次会议提出了“效用计算(Utility computing) ”这个概念, 其核心就是借鉴了上面所提到的电厂模式, 具体目标是通过结合分散各地的服务器、存储系统以及应用程序来共享给多个用户, 使得用户能够象把灯泡插入灯头一样来使用计算机资源, 并且根据其所使用的量来付费。接着, 在1966年D.F.Parkhill在其经典的《计算机公用事业的挑战》一书中也提出了类似的观点, 但由于当时整个IT产业还处于初创期,很多强大的技术还未诞生,比如互联网等,导致虽然这个想法一直被大家所传承,但是总体而言“叫好不叫座”。
3.网格计算
谈到网格计算(Grid Computing) , 主要由于翻译的问题, 使得国内的技术人员无法领会其精髓和真谛。网格计算中的网格, 也就是“Grid”, 其英文原意并不是我们所认为网络的网格,而是电力的网格,所以其核心与上面的效用计算非常接近,但是它的侧重点略有不同,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多许多相对低性能的计算机来进行处理,并把这些计算结果综合起来攻克一个非常大的难题。可惜的是,由于网格计算在商业模式、技术和安全性这三方面的不足,使得其并没有在工程界和商业界取得预期的成功, 但在学术界, 还是有一定的应用, 比如用于寻找外星人的“SETI"计划等。
4.云计算
云计算的核心和前面的效用计算与网格计算非常类似,也是希望能使IT技术能像使用电力那样方便,并且成本低廉,但与前两者不同的是,现在在需求方面,已经有一定的规模,同时在技术方面,也已经基本成熟了,所以云计算和前两者相比更有前途。
1.2.2技术支持
光有理念不行,如果没有强大的技术做支撑的话,云计算也会像先前的效用计算和网格计算那样只能局限于学术界,如图1-3所示的那样,云计算主要有五大类技术的支持,而就是由于这些技术所提供的强大动力,使得云计算不再是空中楼阁。
1.摩尔定律
随着摩尔定律依旧推动着整个硬件产业的发展,包括芯片、内存和硬盘等硬件设备在性能和容量方面得到了极大的提升,在这方面,明显的例子,莫过于芯片,虽然在单线程性能方面,其并没有像奔腾时代那样突飞猛进,但是已经非常强悍了,再加上多核的配置,使得整体性能达到一个前所未有的境界,比如,X86芯片在性能上已经是30年前8086的一千倍,而现在用于手机等低能耗移动设备的ARM芯片在性能上比过去的大型主机上的芯片强大的多, 同时这些硬件设备在价格方面也比过去更平易近人。还有, 诸如SSD和GPU等新兴技术的引入都极大地推动着IT产业的发展。可以说,摩尔定律给予云计算所需的充足“动力”。
2.网络设施
由于ADSL宽带和现在的光纤入户的不断普及, 使得现在的网络带宽已经从过去平均50Kb增长至现在平均1Mb以上, 从而基本满足了大多数服务的需求, 包括视频等多媒体服务。再加上无线网络和移动通信的不断发展,从而使得人们能在任何时间任何地点都利用互联网的梦想成为了可能,可以说,现在互联网是社会的基础设施,并使得终端和云紧紧地连起来。
3.Web技术
Web技术已经从90年初的“混沌期”和本世纪初的“阵痛期”走出, 已经进入“快速发展期”, 并随着类似AJAX、jQuery、Flash、Silver light和HTML 5等Web技术的不断地发展,Chrome、Firefox和Safari等性能出色和功能强大的浏览器的不断涌现, 使得Web已经不再是只能显示简单的页面或者在用户体验方面远逊于传统的桌面应用, 而是能支持多种多媒体功能和复杂的事件处理, 在用户体验方面已经越来越接近桌面应用, 使得用户只要通过互联网和云连上, 就能通过浏览器使用各种功能强大的Web应用。
4.系统虚拟化
虽然就像上面摩尔定律那段提到那样,X86芯片性能已经非常强悍了,但每台X 86服务器的利用率还是在个位数徘徊, 可以说,在能源和购置成本等方面浪费极大,但随着VMware的vSphere和开源的Xen等基于X86架构的系统虚拟化技术的不断发展,使得一-台服务器能整合过去多台服务器的负载,从而有效地提升硬件的利用率,并降低能源的浪费和硬件的购置成本,更重要的是,通过这些技术能有效地提升了数据中心自动化管理的程度,从而极大地减少在管理方面的投入,使云计算中心的管理更智能。
5.移动设备
随着苹果的iOS和Google的Android这类智能手机系统不断地发展和普及使得诸如手机这样的移动设备已经不仅是一个移动的电话而已,更是一个完善的信息终端,能够通过它们轻松地访问互联网上的信息和应用,并且在整体功能上越来越接近台式机的水平,使得通过这些移动设备能够随时随地地访问云中的服务。
就像上文所提到的那样,云计算并不是突发奇想的产物,而是通过在思想和技术这两方面不断地成熟和发展,使得云计算有了一块“肥沃”的土壤,让其能自由地生长。
1.3云计算的诞生
虽然在云计算诞生在一块“肥沃”的土壤之上,但是如果没有非常好的契机的话,云计算只会像小的溪流那样慢慢地流淌,而也不会像今天那样宛如无数个小溪流合并而来的长江之水那样滚滚而来,并推动着整个IT产业的发展。我认为有五个非常重要的契机一步步地也触发了云计算的诞生。
1.3.1SaaS的诞生
在1999年, 桌面应用还是主流的时候, 当时Oracle的高管Marc Benioff看准了Web应用将取代桌面应用这一大趋势, 创建了Salesforce这家以销售在线CRM(Customer relationship management, 客户关系管理) 为主的互联网公司, 并定义了SaaS(Software as a Service, 软件即服务) 这个概念, 意思是软件将会以在线服务形式提供给用户, 而且避免了安装和运维等繁琐的步骤。Salesforce的在线CRM一经推出, 不仅受到来自技术界的好评和用户支持, 而且越来越多的软件选择了SaaS这种模式来进行发布。总的来说, 由于SaaS的诞生和不断地发展,使人们开始相信类似云计算的产品,不论在技术上,还是在商业上都是可行的
1.3.2《IT不再重要》的发表
2003年,尼古拉斯·卡尔在发表在《哈佛商业评论》上的一篇非常具有轰动性文章,名为《IT不再重要》,在这篇文章中,尼古拉斯·卡尔犀利地提出IT技术已经日用品化了。虽然这样能使大多数的企业从IT中获益, 但是IT已经很难给企业带来一定的竞争优势。虽然在刚发表时, 此文受到了包括当时Intel董事长克瑞格·贝瑞特在内整个IT界的口诛笔伐, 并导致尼古拉斯·卡尔甚至自称其为IT界的“全民公敌”。但是,从今天,也就是文章发表的七年后看来,此文不仅促使了广大的IT从业者不断地反思,从而推动了IT产业的改革,因为IT技术的日用品化并不是IT业的末日,而是下一次创新和发展的基石,而且还引出了《大转变》这本“云计算的圣经”。
1.3.3 Google的三大核心技术
在2003年的SOSP大会上Google发表了GFS(Google FileSystem, Google文件系统) 这个分布式存储系统的论文; 在2004年的OSDI大会上发表了Map Reduce这个分布式处理技术的论文 ; 在2006年的OSDI大会上发表了Big Table这个分布式数据库的论文。这三篇重量级论文的发表, 不仅使大家了解Google搜索引擎背后强大的技术支撑, 而且克隆这三个技术的开源产品像雨后春笋那样不断地涌现, Map Reduce的有Had oop, GFS的有HDFS, 而Big Table则有Hbase、Hyper table和Cassandra等, 这三篇论文和相关的开源技术极大地普及了云计算中非常核心的分布式技术。
1.3.4 Amazon WebService的推出
Amazon的B2C业务有点类似中国移动的短信业务, 平时流量很大, 但是到每年特定的时刻(比如Amazo的圣诞节和中国移动的春节等) , 流量更是数量级的攀升, 在这种情况下, Amazon需要购置远超其平常使用量的硬件资源以应对圣诞节的流量, 很显然, 会有很多资源被浪费, 所以Amazon想出租借硬件资源给公众, 以减少浪费的想法, 这也是其推出Amazon Web Service的主要的原因。在2006年初, Amazon推出了Amazon WebService第 一款产品S3(Simple Storage Service, 简单存储服务) 云存储服务, 在2006年8月推出了另一款Amazon WebService产品EC 2(Elastic Compute Cloud, 弹性计算云) 云基础设施服务, 之后还推出了包括Simple DB、Simple Queue Service和Cloud Front等近20种云服务。Amazon WebService的推出标志着云计算相关的产品已经出现, 并基本可用, 虽然那时还没有云计算这个说法。
1.3.5IBM和Google的合作
一位名叫克里斯托夫·比希利亚的Google高级工程师, 为了推广Google一些新的技术, 所以他利于其20%的时间在他的母校华盛顿大学开了一门名叫“Google 101”的课程, 通过这门课程指导学生学习一些常用于Google内部的分布式技术, 比如Map Reduce等。接着, 这个项目也得到IBM方面的支援, 在合作的过程中,IBM和Google都从中意识到这些分布式技术在商业和科研方面的强大潜力,并在2007年10月8日共同宣布了一项“大规模分布式计算”推进计划,两家公司将投资建立一个大型的数据中心,学生可以通过互联网远程访问该数据中心,并进行远程的研究,这个项目也称为“云计算”的推进计划,这就是云计算的诞生。
1.4云计算的成长
在云计算这个概念诞生之后,虽然受到一定程度的非议,但是总体而言,云计算还是得到了大家的欢迎,而且大家对云计算的认识也在不断地加深中,并且业界有很多知名公司都出台了一系列产品或者规划。表1-1是云计算概念诞生以来的编年史。
通过上面提到的这些产品发布和各种预测,我们应该可以看出业界对于云计算是非常看好和关注的。
1.5云计算的影响
虽然云计算开始只是由IBM和Google这两家公司所主导的, 但是就像图1-4所示那样云计算将会对整个IT产业带来非常深远的影响, 其中包括服务器供应商、软件开发商和云终端供应商这三个云计算建设者和作为云计算运维者的云供应商。本章将从上面提到的这四个角度进行分析,之后,会总结云计算对整个IT产业的影响。
1.5.1服务器供应商的角度
这类型的公司主要包括IBM、HP、Dell和Cisco等。主要有两个方面的变化:其一, 是需求方面的变化, 虽然中小企业会不断地加大对IT技术使用, 但由于它们将会把云服务作为首 选,所以对服务器供应商而言,来自中小企业的订单将会不断的减少,但来自云供应商的订单则会大量的增加;其二,是产品方面的变化,由于大型云计算中心,对硬件有自己一套的设计和想法,所以会希望服务器供应商能生产为它们定制的硬件,这导致服务器供应商他们整体产品的方向将会从原先的以生产通用的X86服务器为主,转变为通用和定制兼顾,而且为云计算做优化的解决方案将受到极大欢迎。虽然云计算将会对部分非常依赖中小企业的硬件厂商带来非常不利的影响,但是从长期而言,对那些不断创新,并且提出合适的云计算解决方案的硬件厂商,将会脱颖而出,并从云计算大潮中获利丰厚。
1.5.2软件开发商的角度
典型的公司有微软、RedHat、Oracle和VMware等。主要有三方面的变化:首先, 在软件交付方式上的变化, 由于虚拟器件(Virtual Appliance) 等软件发布格式的引入, 使得不仅软件的开发, 维护和销售等方面的成本和复杂度得到了降低, 而且也加快了软件部署的速度; 其次, 在软件销售和发布方式上的变化, 由于各种基于云的软件发布平台(比如苹果的App Store、中国移动的Mobile Market和VMware Virtual Appliance Marketplace等) 的出现, 使得发布、推广和销售软件越来越简单, 而且成本更低, 比如, 和传统软件发布前期需要大量资金支持不同的是, 在苹果的App Store上发布软件的成本基本为零, 而且能直面超过5000万iOS系统(包括iPhone、iPod Touch和i Pad) 的使用者, 同时这些用户的消费能力也是非常强大的; 在技术上的变化, 软件将与云技术进行深度地整合, 比如, 应用类的软件, 基本上都将选择Web作为其界面, 而中间件和底层的系统软件将会为运行在云中做更多的优化。
1.5.3云终端供应商的角度
这方面的公司有Apple、Nokia、三星和联想等。由于移动设备的轻便型, 再加上性能的日渐提高和能方便地接入多种无线网络(比如WIFI和3G等) , 所以市场对移动设备需求将与日俱增,而且将来云终端将不会仅是手机、平板和笔记本这几种移动设备,而将会涉及社会的方方面面,比如电视和汽车等,所以在这方面会有非常大创新空间等待着这些公司。
1.5.4云供应商的角度
相关的公司有国外的Amazon、Google和RackSpace等, 国内的有中国移动和中国电信等。随着云计算不断推广和被大众所接受, 使得云计算中心在运营的规模上会不断地增大, 这将会给云供应商带来很多机会来降低其运营成本,并提升经营利润,比如,将云计算中心建设在能源成本底的地方(比如电厂附近)或者建在制冷成本底(比如天气寒冷的地点)的地方。而且由于运行的工作负载的规模非常庞大,将整体提高服务器利用率。同时云的业务都属于非常稳定的,所以能给云供应商带来持久的现金流。
1.5.5整个IT产业的角度
不可否认,在短期内,由于产业结构的变化,云计算有可能将会给整个IT产业带来一定程度的阵痛,但是从长期而言,云计算将会对整个IT产业带来非常正面的影响,因为云计算将推动整个产业的进一步的优化布局和专业分工,并且提供一个让所有IT人不断地创新的舞台,这些参与者会像之前大型机时代和PC时代那样同心协力创造出一整套属于云计算的产业链。
1.6云计算的使用场景
有些IT从业人员在谈到云计算的时候,总是认为云计算只是广告词而已,实际的用处是非常有限。对于这种看法,我不以为然,因为不仅云计算的部分技术已经落地,而且云计算将在IT产业各个方面都有其用武之地,在这里,选择十个比较典型的使用场景来加以介绍。
1.6.1IDC云
传统IDC(Internet DataCenter, 互联网数据中心) 的服务已经无法满足用户的需求, 用户期望更强大、更方便和更灵活的IDC服务。IDC云是在IDC原有数据中心的基础上, 加入更多云的基因, 比如系统虚拟化技术、自动化管理技术和智慧的能源监控技术等。通过IDC的云平台, 用户能够使用到虚拟机和存储等资源。还有, IDC可通过引入新的云技术来提供许多新的具有一定附加值的服务, 比如, PaaS等。现在已成型的IDC云有Linode和Rackspace等。
1.6.2企业云
对任何大中型企业而言,80%的IT资源都用于维护现有应用的,而不是让IT更好地为业务服务。使用专业的企业云解决方案来提升企业内部数据中心的自动化管理程度,将整个IT服务的思维从过去的软硬件思维转变为以提供服务为主,使得IT人员能分出精力来为业务创新,成为半个业务人员。企业云对于那些需要提升内部数据中心的运维水平和希望能使整个IT服务更围绕业务展开的大中型企业非常适合。相关的产品和解决方案有IBM的WebSphere CloudBurst Appliance、Cisco的UCS和VMware的v Sphere等。
1.6.3云存储系统
由于数据是企业的非常重要的资产和财富,所以需要对数据进行有效的存储和管理,而且普通的个人用户也需要大量的存储空间用于保存大量的个人数据和资料,但由于本地存储在管理方面缺失,使得数据的丢失率非常高。而云存储系统能解决上面提到这些问题,它是通过整合网络中多种存储设备来对外提供云存储服务,并能管理数据的存储、备份、复制和存档,还有,良好的用户界面和强大的API支持也是不可或缺的。云存储系统非常适合那些需要管理和存储海量数据的企业, 比如互联网企业, 电信公司等, 还有广大的网民。相关的产品有:中国电信的E云、Amazon的S3云存储服务、Google的Picasa相册和微软的Sky Drive网络硬盘等。
1.6.4虚拟桌面云
对许多企业而言,桌面系统的安装、配置和维护都是其IT运营非常重要的一个方面,桌面系统的分散管理将给整个IT部门带来沉重的压力,而且相关的数据和信息安全不能受到有效地监控,同时企业更希望能将降低终端桌面系统的整体成本,并且使用起来更稳定和灵活。虚拟桌面云是这方面一个非常不错的解决方案,其是利用了现在成熟的桌面虚拟化技术。桌面虚拟化技术是将用户的桌面环境与其使用的终端进行解耦,在服务器端以虚拟镜像的形式统一存放和运行每个用户的桌面环境,而用户则可通过小型的终端设备来访问其桌面环境,还有,系统管理员可以统一地管理用户在服务器端的桌面环境, 比如安装、升级和配置相应地软件等。这个解决方案比较适合那些需要使用大量桌面系统的企业。相关的产品有Citrix的Xen Desktop和VM ware的VMware view。
1.6.5开发测试云
开发测试总是繁琐、易错和耗时的过程,特别是在准备测试环境上面,还有会遇到诸如测试资源管理混乱,难于重现问题发生的环境和缺乏压力测试所需要的强大计算能力等棘手问题。而开发测试云能有效解决上面这些问题, 其通过友好的Web界面, 可以预约、部署、管理和回收整个开发测试的环境, 通过预先配置好(包括操作系统, 中间件和开发测试软件) 的虚拟镜像来快速地构建一个个异构的开发测试环境,通过快速备份/恢复等虚拟化技术来重现问题,并利用云的强大的计算能力来对应用进行压力测试,比较适合那些需要开发和测试多种应用的组织和企业, 比如银行、电信和政府等。相关解决方案有IBM Smart Business Development and Test Cloud。
1.6.6大规模数据处理云
企业需要分析大量的数据来洞察业务发展的趋势,可能的商业机会和存在的问题,从而做出更好、更快和更完整的决策。还有,物联网会采集海量需要处理的数据。大规模数据处理云通过将数据处理软件和服务运行在云计算平台上,能利用云平台的计算能力和存储能力来对海量的数据进行大规模的处理,除了上面提到的物联网之外,还有许多企业和机构都会有这方面的需求。相关产品有Apache的Hadoop等。
1.6.7协作云
电子邮件、IM(Instant Messaging, 即时通讯) 、SNS(Social Networking Services, 社交网络服务) 和通信工具(比如Skype和WebEx) 等都是很多企业和个人必备的协作工具, 但是维护这些软件和其硬件却是一件让人非常头疼的工作。协作云是云供应商在IDC云的基础上或者直接构建一个专属的云, 并在这个云搭建整套的协作软件, 并将这些软件共享给用户, 非常适合那些需要一定的协作工具, 但不希望维护相关的软硬件和支付高昂的软件许可证费用的企业与个人。这方面, 代表性的产品莫过于IBM的Lotus Live, 它主要包括会议、办公协作和电子邮件这三大服务。当然Google Apps也是不容忽视的, 其中Gmail和Gtalk都是协作的利器。
1.6.8游戏云
由于传统游戏软件容量都非常巨大,无论是单机,还是网游,都需要在游戏之前,花很多时间在下载和安装上,使玩家无法很尽兴地玩游戏,再加上游戏的购置成本偏高,使得玩家在尝试新游戏方面, 兴趣骤降。在这方面, 业界部分公司推出了游戏云的解决方案, 主要有两大类:其一是使用更多基于Web的游戏模式, 比如使用JavaScript、Flash和Silver light等技术, 并将这些游戏部署到云中,这种解决方案比较适合休闲游戏;其二是为大容量和高画质的专业游戏设计的,整个游戏都将在运行云中,但会将生成的画面传至客户端。总之,休闲玩家和专业玩家都会在游戏云找到自己的所爱。在产品方面:第1种游戏云, 已经有很多游戏都采用这种方案, 比如许多Facebook上的休闲游戏采用了后端云和前端Flash这样的组合; 而第2种游戏云, AMD已经发布了类似的技术, 但碍于现有的网络环境, 所以短时间内不会有特别成熟技术出现。
1.6.9HPC云
在科学方面HPC(High Performance Computing, 高性能计算) 领域, 现在主要有两方面挑战:其一是供需不平衡, 要么是现有的HPC资源太过稀少, 无法满足大众的需求, 要么就是贫富不均, 导致HPC资源无法被合理的分配; 其二是现有的HPC设计和需求不符, 虽然HPC已经发展了很多年, 但是在设计还是将所有的计算资源整合在一起以追求高速度为主, 但是现在的主流需求则常以只需要一小块计算资源为主, 这导致HPC计算资源被极大地浪费, 所以新一代的高性能计算中心不仅仅需要提供传统的高性能计算, 而且还需要增加资源的管理、用户的管理、虚拟化的管理、动态的资源产生和回收等等。这时, 基于云计算的高性能计算应运而生, 也就是HPC云, 其能够为用户提供可以完全定制的高性能计算环境, 用户可以根据自己的需求来改变计算环境的操作系统、软件版本和节点规模, 从而避免与其他用户的冲突, 并可以成为网格计算的支撑平台, 以提升计算的灵活性和便捷性。HPC云特别适合需要使用高性能计算, 但缺乏巨资投入的普通企业和学校。北京工业大学已经和IBM合作建设国内第1个HPC云计算中心。
1.6.10云杀毒
新型病毒的不断涌现,使得杀毒软件的病毒特征库的大小与日俱增,如果在安装杀毒软件的时候,附带安装庞大的病毒特征库的话,将会影响用户的体验,而且杀毒软件本身的运行也会极大地消耗系统的资源。通过云杀毒技术,杀毒软件可以将有嫌疑的数据上传到云中,并通过云中庞大的特征库和强大的处理能力来分析这个数据是否含有病毒,这非常适合那些需要使用杀毒软件来捍卫其电脑安全的用户。现有的杀毒软件都支持一定的云杀毒这个特性,比如360杀毒和金山毒霸等。
本章已经给大家介绍云计算概念相关的几个方面,比如定义、由来、成长和诞生等,估计大家现在已经对云计算有了些基本的认识,并且有可能对云计算充满了更多的好奇,而下章将选取云计算概念中非常重要的一部分--架构,来进行深入地介绍和讲解。
2、云计算的架构
IT,身为一个新兴行业,其在发展历程中向其他行业借鉴了一些先进的思想和理念,明显的例子除了上面提到的从电力行业学习了公用事业这种商业模式和从丰田汽车流水线生产中总结出精益这套编程模式之外,还有,就是在软件设计方面,引入了架构这个在建筑行业非常核心的概念。
架构,对软件系统而言是极为重要的,因为它不仅定义了系统内部各个模块之间是如何整合和协调的,同时也对其整体表现起着非常常关键的作用。而云,作为一个非常复杂的大型软件系统,它内部包含着许许多多的模块和组件,所以如果能够理出其架构的话,将会非常有益处。
为了让大家对云计算有更深入的理解,本章将会对云的架构进行深入地剖析。除了云的架构之外,本章还将会对云计算主要和常见的四种模式进行深入的介绍。
2.1云的架构
在对云计算进行了三年多的研究之后,觉得虽然云计算涉及了很多产品与技术,表面上看起来的确有点纷繁复杂,但是云计算本身还不是有迹可循和有理可依的,所以在个人理解的基础上,我总结出了一套云计算的架构,具体请看图2-1。
上面这个云架构共分为服务和管理这两大部分。
在服务方面, 主要以提供用户基于云的各种服务为主, 共包含三个层次:其一是Software as a Service软件即服务, 简称SaaS, 这层的作用是将应用主要以基于Web的方式提供给客户;其二是Platform as a Service平台即服务, 简称PaaS, 这层的作用是将一个应用的开发和部署平台作为服务提供给用户; 其三是Infrastructure as a Service基础设施即服务, 简称laaS ,这层的作用是将各种底层的计算(比如虚拟机)和存储等资源作为服务提供给用户。从用户角度而言,这三层服务,它们之间关系是独立的,因为它们提供的服务是完全不同的,而且面对的用户也不尽相同。但从技术角度而言, 云服务这三层之间的关系并不是独立的, 而是有一定依赖关系的, 比如一个SaaS层的产品和服务不仅需要使用到SaaS层本身的技术, 而且还依赖Pa aS层所提供的开发和部署平台或者直接部署于laaS层所提供的计算资源上, 还有, PaaS层的产品和服务也很有可能构建于laaS层服务之上。
在管理方面,主要以云的管理层为主,它的功能是确保整个云计算中心能够安全和稳定的运行,并且能够被有效地管理。接下来,将给大家详细介绍每个层次,其中将不仅涉及它们的历史和相关产品,而且将会讨论它们的优势和采用的技术。
2.2 SaaS
它是常 见 的, 也就是首 先 出现的云计算服务, 通过SaaS这种模式, 用户只要接上网络, 并通过浏览器, 就能直接使用在云端上运行的应用, 并由SaaS云供应商负责维护和管理云中的软硬件设施,同时以免费或者按需使用的方式向用户收费,所以用户不需要顾虑类似安装、升级和防病毒等琐事,并且免去初期高昂的硬件投入和软件许可证费用的支出。
2.2.1历史
SaaS的前身是ASP(Application Service Provider) , 其概念和思想和SaaS相差不大。早期的ASP厂商有Salesforce.com和Netsuite, 其后还有一批企业跟随进来, 这些厂商在创业时都主要专注于在线CRM(客户关系管理) 应用, 但由于那时正值互联网泡沫破裂的时候, 而且当时ASP本身技术也并不成熟, 而且还缺少定制和集成等重要功能, 再加上当时欠佳的网络环境, 使得ASP没有受到市场的热烈欢迎, 从而导致大批相关厂商破产但在2003年后, 在Salesforce的带领下, 惨存的ASP企业喊出了SaaS这个口号, 并随着技术和商业这两方面地不断成熟, 便得Salesforce、WebEx和Zoho等国外SaaS企业得到了成功, 而国内的, 诸如用友、金算盘、金碟、阿里巴巴和八百客等企业也加入到SaaS的浪潮中。
2.2.2相关产品
由于SaaS产品起步较早, 而且开发成本低, 所以在现在的市场上, SaaS产品不论是在数量, 还是在类别, 都非常丰富, 而且也出现了多款经典产品, 其中具有代表性的莫过于Google Apps、Salesforce CRM、Office WebApps和Zoho:
(1)Google Apps:中文名为“Google企业应用套件”, 提供包括企业版Gmail、Google日历、Google文档和Google协作平台等多个在线办公工具, 而且价格低廉, 使用方便,并且已经有超过两百万家企业购买了Google Apps服务。
(2)Salesforce CRM:它是一款在线客户管理工具, 并在销售、市场营销、服务和合作伙伴这四个商业领域上提供完善的IT支持, 还提供强大的定制和扩展机制, 来让用户的业务更好地运行在Salesforce的平台上。这款产品常被业界视为SaaS产品的“开山之作”。
(3)Office WebApps:它是微软所开发的在线版Office, 提供基于Office 2010技术的简易版Word、Excel、PowerPoint及OneNote等功能, 属于Windows Live的一部分, 并与微软的Sky Drive云存储服务有深度地整合, 而且兼容Firefox、Safari和Chrome等非IE系列浏览器。和其他在线Office相比, 它的优势是, 由于其本身属于Office 2010的一部分, 所以在与Office文档的兼容性方面远胜其他在线Office服务。
(4)Zoho:Zoho是AdventNet公司开发的一款在线办公套件, 在功能方面是现在业界十分完善的, 它包括邮件、CRM、项目管理、Wiki、在线会议、论坛和人力资源管理等几十个在线工具供用户选择。同时包括美国通用电气在内的多家大中型企业已经开始在其内部引入Zoho的在线服务, Zoho在国内的代理商为百会。
2.2.3优势
虽然和传统桌面软件相比, 现有的SaaS服务在功能方面还稍逊一筹, 但是在其他一些方面还是具有一定的优势, 下面是其中的四个方面:
(1)使用简单:在任何时候或者任何地点, 只要接上网络, 用户就能访问这个SaaS服务, 而且无需任何地安装、升级和维护。
(2)支持公开协议:现有的SaaS服务都在公开协议(比如HTML 4/5) 的支持方面做的很好, 使得用户只需一个浏览器就能对SaaS应用进行使用和访问, 这样对用户而言, 非常方便。
(3)安全保障:SaaS供应商需要提供一定的安全机制, 不仅要使存储在云端的用户数据处于安全的境地, 而且也要通过一定的安全机制(比如HTTPS等) 来确保与用户之间通信的安全。
(4)初始成本低:使用SaaS服务不仅无需在使用前购买昂贵的许可证, 而且几乎所有的SaaS供应商都提供免费的试用。
2.2.4技术
由于SaaS层离普通用户非常接近, 所以在SaaS层所使用到的技术, 大多耳熟能详, 下面是其中主要的五种:
(1)HTML:标准的Web页面技术, 现在主要以HTML 4为主, 但是即将推出的HTML 5会在很多方面推动Web页面的发展, 比如视频和本地存储等方面。
(2)JavaScript:一种用于Web页面的动态语言, 通过JavaScript, 能够极大地丰富Web页面的功能, 流行的JS框架有j Query和Prototype。
(3)CSS:主要用于控制Web页面的外观, 而且能使页面的内容与其表现形式之间进行优雅地分离。
(4)Flash:业界常用的RIA(Rich Internet Applications) 技术, 能够在现阶段提供HTML等技术所无法提供的基于Web的富应用, 而且在用户体验方面, 非常不错。
(5)Silver light:来自业界巨擎微软的RIA技术, 虽然其现在市场占有率稍逊于Flash, 但由于其可以使用C#来进行编程, 所以对开发者非常友好。
在SaaS层的技术选型上, 首先, 由于通用性和较低的学习成本, 大多数云计算产品都会比较倾向HTML、JavaScript和CSS这对黄金组合, 但是在HTML 5被大家广泛接受之前, RIA技术在用户体验方面, 还是具有一定的优势, 所以Flash和Silver light也将会有一定的用武之地, 比如VMware v Cloud就采用了基于Flash的Flex技术, 而微软的云计算产品肯定会在今后大量使用Silver light技术。
2.3 PaaS
通过PaaS这种模式, 用户可以在一个提供SDK(Software Development Kit, 即软件开发工具包) 、文档、测试环境和部署环境等在内的开发平台上非常方便地编写和部署应用, 而且不论是在部署,还是在运行的时候,用户都无需为服务器、操作系统、网络和存储等资源的运维而操心, 这些繁琐的工作都由Pa aS云供应商负责。而且Pa aS在整合率上面非常惊人, 比如一台运行Google App Engine的服务器能够支撑成千上万的应用, 也就是说, Pa aS是非常经济的。Pa aS主要面对的用户是开发人员。
2.3.1历史
Pa aS是云服务这三层之中出现较晚的, 业界第1个PaaS平台诞生在2007年, 是Salesforce的Force.com, 通过这个平台不仅能使用Salesforce提供的完善的开发工具和框架来轻松地开发应用, 而且能把应用直接部署到Salesforce的基础设施上, 从而能利用其强大的多租户系统。接着, 在2008年四月, Google推出了Google App Engine, 从而将PaaS所支持的范围从在线商业应用扩展到普通的Web应用, 也使得越来越多的人开始熟悉和使用功能强大的PaaS服务。
2.3.2相关产品
和SaaS产品百花齐放相比, PaaS产品主要以少而精为主, 其中比较常用的产品有:Force.com、Google App Engine、Windows Azure Platform和Heroku。
(1)Force.com:就像上面所说的Force.com是业界第1个PaaS平台, 其主要通过提供完善的开发环境和强健的基础设施等来帮助企业和第三方供应商交付健壮的、可靠的和可伸缩的在线应用。还有,Force.com本身是基于Salesforce的多租户的架构。
(2)GoogleAppEngine:GoogleAppEngine提供Google的基础设施来让大家部署应用, 它还提供一整套开发工具和SDK来加速应用的开发, 并提供大量的免费额度来节用户的开支。
(3)Windows Azure Platform:它是微软推出的PaaS产品, 并运行在微软数据中心的服务器和网络基础设施上的, 通过公共互联网来对外提供服务, 它由具有高扩展性云操作系统、数据存储网络和相关服务组成, 而且服务都是通过物理或虚拟的Windows Server 2008实例提供, 还有, 其附带的Windows Azure SDK(软件开发包) 提供了一整套开发、部署和管理Wi n dows Azure云服务所需要的工具和API。
(4) Heroku:是一个用于部暑RubyOnRails应用的PaaS平台, 并且其底层基于Amazon EC2的laaS服务, 而且在Ruby程序员中有非常好的口碑。
2.3.3优势
和现有的基于本地的开发和部署环境相比, PaaS平台主要有下面这六方面有非常大的优势:
(1) 友好的开发环境:通过提供SDK和IDE(Integrated Development Environment, 集成开发环境) 等工具来让用户不仅能在本地方便地进行应用的开发和测试, 而且能进行远程部署。
(2)丰富的服务:PaaS平台会以API的形式将各种各样的服务提供给上层的应用。
(3)精细的管理和监控:PaaS能够提供应用层的管理和监控, 比如, 能够观察应用运行的情况和具体数值(比如吞吐量(Throughput) 和响应时间(Response Time) 等) 来更好地衡量应用的运行状态,还有能够通过计量应用使用所消耗的资源来更好地计费。
(4) 伸缩性强:PaaS平台会自动调整资源来帮助运行于其上的应用更好地应对突发流量。
(5)多住户(Multi-Tenant) 机制:许多PaaS平台都自带多住户机制, 不仅能更经济地支撑庞大的用户规模, 而且能提供一定的可定制性以满足用户的特殊需求。
(6)整合率和经济性:PaaS平台整合率是非常高, 比如PaaS的代表Google App Engine能在一台服务器上承载成千上万的应用。
2.3.4技术
在SaaS层所采用的技术不同的是, PaaS层的技术比较多样性, 下面是常见的五种:
(1)REST:通过REST(Representational State Transfer, 表述性状态转移) 技术, 能够非常方便和优雅地将中间件层所支撑的部分服务提供给调用者
(2)多租户:就是能让一个单独的应用实例可以为多个组织服务,而且能保持良好的隔离性和安全性,并且通过这种技术,能有效地降低应用的购置和维护成本。
(3)并行处理:为了处理海量的数据, 需要利用庞大的X 86集群进行规模巨大的并行处理, Google的Map Reduce是这方面的代表之作,
(4)应用服务器:在原有的应用服务器的基础上为云计算做了一定程度的优化, 比如用于Google App Engine的Jetty应用服务器。
(5) 分布式缓存:通过分布式缓存技术, 不仅能有效地降低对后台服务器的压力, 而且还能加快相应的反应速度,分布式缓存例子莫过于Memcached。
对于很多PaaS平台, 比如用于部署Ruby应用的Heroku云平台, 应用服务器和分布式缓存都是必备的,同时REST技术也常用于对外的接口, 多租户技术则主要用于SaaS应用的后台,比如用于支撑Salesforce的CRM等应用的Force.com多租户内核, 而井行处理技术常被作为单独的服务推出,比如Amazon的Elastic Map Reduce。
2.4 laaS
通过laaS这种模式, 用户可以从供应商那里获得他所需要的计算或者存储等资源来装载相关的应用,井只需为其所租用的那部分资源进行付费, 而同时这些基础设施繁琐的管理工作则交给l aaS供应商来负责
2.4.1历史
和SaaS一样, 类似la aS想法其实已经出现了很久了, 比如, 过去的IDC(Internet DataCenter, 互联网数据中心) 和VPS(Virtual Private Server, 虚拟专用服务器) 等, 但由于技术、性能、价格和使用等方面的缺失, 使得这些服务并没有得到大中型企业广泛地采用, 但在2006年底Amazon发布了EC2(Elastic Compute Cloud, 灵活计算云) 这个laaS云服务,由于EC2在技术和性能等多方面的优势,使得这类型的技术终于得到业界广泛地认可和接受,其中就包括部分大型企业,比如短约时报,
2.4.2相关产品
代表性的laaS产品和服务有:Amazon EC 2、IBM Blue Cloud、Cisco UCS和Joyent。
(1)AmazonEC2:EC2主要以提供不同规格的计算资源(也就是虚拟机)为主, 并基于开源虚拟化技术Xen, 通过Amazon的各种优化和创新, 使得EC2不论在性能上, 还是在稳定性上, 都已经满足企业级的需求, 而且Amazon EC2还提供完善的API和Web管理界面, 来方便用户的使用。
(2)IBM Blue Cloud:“蓝云”解决方案是由IBM云计算中心开发的业界第1个, 同时也是在技术上比较领先的企业级云计算解决方案, 该解决方案可以对企业现有的基础架构进行整合,通过虚拟化技术和自动化管理技术,来构建企业自己的云计算中心,并实现对企业硬件资源和软件资源的统一管理、统一分配、统一部署、统一监控和统一备份,也打破了应用对资源的独占,从而帮助企业能享受到云计算所带来的诸多优越性。
(3) Cisco UCS:它是下一代数据中心平台,在一个紧密结合的系统中整合了计算、网络、存储与虚拟化功能。该系统包含一个低延时无丢包万兆以太网统一网络阵列, 以及多台企业级x 86架构刀片服务器等设备, 并在一个统一的管理城中管理所有资源。用户可以通过在UCS上安装VMWare v Sphere来支撑多达几千台虚拟机的运行。通过Cisco UCS, 能够让企业快速在本地数据中心搭建基于虚拟化技术的云环境。
(4) Joyent:它提供基于OpenSolaris技术的laaS服务,其laaS服务中的核心,莫尾Joyent Accelecator,它能够为Web应用开发人员提供基于标准的、非专有的、按需供应的虚拟化计算和存储解决方案, 基于Joyent Accelerator,用户可以使用具备多核CPU、海量内存和存储的服务器设备来搭建了自己的网络服务,井提供超快的访问、处理速度和超高的可靠性。
2.4.3优势
laaS服务和传统的企业数据中心相比,在很多方面都存在一定的优势。
(1)免维护:主要的维护工作都有laaS云供应商负责,所以不必用户操心。
(2)非常经济:首先免去了用户前期的硬件购置成本,而且由于laaS云大都采用虚拟化技术,所以在应用和服务器的整合率普遍在10以上,这样能有效降低使用成本,
(3)开放标准:虽然很多laaS平台都存在一定的私有功能,但是由于OVF等应用发布协议的诞生, 使得la aS在跨平台方面稳步前进, 从而使得应用能在多个laaS云上灵活的迁移, 而不会被固定在某个企业数据中心内,
(4)No SQL:为了满足一些关系数据库所无法满足的目标, 比如支撑海量的数据等, 一些公司特地设计一批不是基于关系模型的数据库, 比如Google的Big Table和Facebook的Cassa ndra等。
现在大多数的laaS服务都是基于Xen的,比如Amazon的EC2等, 但VMware也推出了基于ESX技术的vCloud, 同时业界也有几个基于关系型数据库的云服务, 比如Amazon的RDS(Relational Database Service,关系型数据库服务) 和Windows Azure SDS(SQL Data Services,SQL数据库服务) 等, 关于分布式存储和No SQL, 它们已经被广泛用于云平台的后端, 比如Google App Engine的Datastore就是基于Big Table和GFS这两个技术之上的, 而Amazon则推出基于No SQL技术的Simple DB。