(共8页)
Amazon利用虚拟化技术提供云计算服务
Amazon提供的EC2(Elastic Compute Cloud)和S3(Simple Storage Service)服务,与Google云服务的实作方式不同。
EC2采用Xen虚拟化技术,提供一个虚拟的执行环境(虚拟实例Instance,或称为虚拟机器),让租用Instance的企业来执行自己的应用程序。Amazon提供不同规格的Instance,例如一个超大型的Instance组合,就包括15 GB 内存、8 个EC2运算单位(类似4个双核心虚拟处理器)、1690 GB储存空间、64位平台。
企业只需要将自己的操作系统、网站服务器和应用程序打包成一个Image档案,上传到EC2的服务器后,呼叫EC2提供的指令来执行Image文件即可启动服务,就像是拥有一台实体服务器一样,企业可以自行控制在Instance中执行的操作系统。
EC2是提供Image档案执行的环境,但结束后无法保留数据,所以,Amazon另外提供了一个分布式档案系统S3,供企业保存EC2运算的输出结果。另外Amazon还提供了很多现成的Image范例,将常用的操作系统、网站服务器、数据库系统都先打包成一套执行环境模板,企业可以将这些Image檔放到租用的Instance中执行,再把自己的网页应用程序上传到自己的Instance中,即可提供服务,不需要自己花时间进行各种系统的安装与设定。
另外Amazon还能让企业在执行应用程序的过程中,动态调整租用Instance的运算规格,例如原来租用的Instance运算速度满载,或频宽不够时,还能动态扩增可使用的运算资源,或者增加新的Instance来分担流量。
各业者提供的云计算,背后架构各有不同
Amazon透过Xen虚拟化技术,让企业不需处理实体服务器的维运,而能执行自己的服务,从广义上来说,也是一种隐藏运算复杂性的云服务。这与Google所使用的云计算,在实作技术上完全不同。
实际上,其它业者例如微软,Yahoo也是自行开发云计算平台,各家采用的理论和实作架构不尽然相同。
不过,Google并非直到去年才开始对外发表这些云计算的技术,其实,早在2004年,参与Google基础架构建置的资深工程师Jeffrey Dean,和同僚在OSDI(Operating Systems Design and Implementation)研讨会中,发表了Google云计算的核心技术模式MapReduce,以及Google使用这些技术的成果。Jeffrey Dean在报告中指出云计算受到平行运算的List语言和函数编程(functional lauguage)的启发,将原本的Map和Reduce两种编程概念结合成MapReduce这个新模式,Google发现MapReduce运算模式,很适合用来处理大量数据的分布式运算。
(共8页)
Google提出的分布式运算技术,让开发人员很容易开发出全球性的应用服务,云计算技术可以自动管理大量标准化(非异质性)计算机间的沟通、任务分配和分布式储存等。
云源自分散平行运算,但比网格更擅长数据运算
「云技术可以算是网格技术的一个子集合,」林诚谦说:「两者目的相同,都是要把系统的复杂性隐藏起来,让使用者只要使用而不需要了解系统内部如何运作。」
林诚谦认为,网格技术涵盖了云技术,但是,网格能够处理更复杂的问题,而云技术则可视为是网格技术的一种商业化结果。
「云计算是从网格技术的分散平行运算技术和观念发展出来,业界再用新名词来包装原有技术,只是使用的比喻不同。」他进一步说:「对计算机产业而言,这么做很重要,因为有助于推广大众对这项技术的了解。」
同样地,高速网络与计算中心企业与计划管理组计划主持人黄维诚认为,大体上来看,云计算和网格运算背后的哲学是一致的,他说:「对使用者来说,不需要了解服务器是什么?在哪里?就是把需求丢进去,就会得到结果,这是云计算的想法,也是网格运算的想法。」
再进一步分析两者的差异,黄维诚说:「虽然云计算源自平行运算的技术,不脱离网格运算的哲学,但是云计算更专注在数据的处理。」
单次数据处理量小,让云计算发展出不同于网格运算的实作方式
从处理的数据型态来看,黄维诚认为:「云计算适合的任务,多半是数据处理次数频率高,而每一次要处理的数据量小。」 云计算vs.网格运算云计算网格运算主要推动者信息供货商(如Google、Yahoo、IBM、Amazon等)学术机构(如欧洲粒子研究中心CERN、中研院、国家高速网络与计算中心)标准化程度无标准化,各家采用的技术架构也不同。有标准化的协议和信任机制开源幅度
部分开源,目前有开源Hadoop框架,但Google GFS和数据库系统BigTable则未开源。完全开源网域限制企业内部网域可跨企业、跨管理网域单一运算丛集可支持的硬件
相同标准规格的个人计算机 (如x86处理器、硬盘、4GB 内存、Linux等)可混合异质性服务器(不同处理器、不同操作系统、不同编译器版本等)擅长处理的数据特性
单次运算数据量小(可于单台个人计算机上执行),但需要重复大量处理次数的应用。单次运算数据量大的应用。例如单笔数GB的卫星讯号分析。
例如像是网页搜寻的工作,每一次运算只需要比对一个网页,比对数据的大小可能不超过1MB,但是,全世界有几十亿个网页,若要全数比对,要比对的总数据量就非常可观。黄维诚认为,这种特性与网格运算擅长的类型不大相同,网格运算适合解决科学研究,例如分析卫星回传的信息,每一次要分析的讯息档案就高达数GB。
即使云计算与网格技术同是采用平行运算的哲学,但因为云计算较适合执行单次数据处理量较小的任务,黄维诚认为,云计算在实作方式上就会与网格运算不同。
他进一步解释:「例如搜寻网页,每一次要比对的网页,其实档案都不大,所需耗费的处理器资源不多,所以用大量的个人计算机就可以来执行网页搜寻的运算,但是,要用个人计算机来架设网格运算就比较难,因为网格运算所需的处理资源较大。」
所以,实作的差异就是,云计算可以组合大量的个人计算机来提供服务,而网格运算则需要依赖能提供大量运算资源的高效能计算机。
网格技术的理想,是要让任何服务器,都能加入到一个运算网格中,以提供庞大的运算量,因而在技术上的困难,就是要解决不同服务器、操作系统、甚至是程序编译器版本差异等异质性问题。
然而,以Google的云计算做法为例,则是使用大量规格相同的个人计算机等级服务器,来执行云计算的程序,所以不需要处理异质性的问题,可以简化平行运算的系统架构,更容易协调服务器间的信息传递,让分布式处理的整体效能更好。许多Google的产品或服务,例如Google搜寻、Gmail、Google Maps、Google Docs等,都使用到云计算的技术,藉由大量低价服务器的运算资源,来满足大量使用者的需求。
(共8页)
云名词解释
●云计算(Cloud Computing):Google提出的分布式运算技术,让开发人员很容易开发出全球性的应用服务,云计算技术可以自动管理大量标准化(非异质性)计算机间的沟通、任务分配和分布式储存等。
●网格运算(Grid Computing):在网络上,透过标准化协议与信任机制,整合跨网域中的异质服务器,建立运算丛集系统来共享运算资源、储存资源等。
●服务在云(In-the-Cloud)或云服务(Cloud Service):供货商透过因特网提供服务,使用者只需透过浏览器就能使用,不需了解供货商的服务器如何运作。
●MapReduce模式:Google运用在云计算中的关键技术,让开发者开发大量数据的处理程序。先透过Map程序将数据切割成不相关的区块,分配给大量计算机处理,再透过Reduce程序将结果汇整,输出开发者需要的结果。
●Hadoop:使用Java开发的开源云计算框架,也是采用Google云计算技术实作的框架,但所用的分布式档案系统与Google不同。2006年Yahoo成为该计划最主要的贡献者和使用者。
各方跟进Google推广云服务,但定义不同
从去年中开始,Google更进一步大力推广云计算,Google全球副总裁李开复说:「云计算是Google最重要的关键技术,也是网络应用的未来趋势。」他认为,除了使用者可以使用Google云计算的服务以外,不论企业规模大小,也可以运用Google的服务来满足企业内部的信息应用需求,或者利用Google提供的平台,例如Google App Engine,将自己开发的应用程序,藉由Google提供的云计算环境,来服务全世界的使用者。
Google本身网络服务的成功案例,以及它对云计算的推广,陆续地吸引了其它业者如Yahoo、IBM、微软、HP等,也纷纷表示自己拥有云计算的产品和技术,或者未来将提供采用云计算的服务。
不过,不同业者对于云计算的定义又各有不同。只有广义上对于「云模式」(Cloud Model)的概念是相通的。不论服务的类型,或者是执行服务的信息架构,凡是透过因特网提供应用服务,让使用者透过浏览器就能使用,不需要了解服务器在哪里,内部如何运作,都被称为云计算的服务,背后的技术也概称为云计算。循此广义地定义,另有业者也将这类应用称为云服务(Cloud service)或在云层里的服务(in-the-cloud)。
(共8页)
开源社群用Google经验发展出Hadoop框架
Google发表MapReduce后,2004年开源社群也用Java实作出一套使用MapReduce技术的框架Hadoop,让Java开发者可以很容易写出云计算的应用。随着Hadoop框架的开发者Doug Cutting在2006年加入Yahoo,Yahoo遂成为Hadoop最主要的贡献者和使用者,许多Yahoo提供的服务,例如网页搜寻,已经是利用Hadoop框架所开发的云计算。
目前Hadoop是唯一一套开源的云计算框架,虽然与Google使用的云计算技术略有不同,但是核心的设计概念都是来自Google的MapReduce模式和分布式档案架构,Google也有不少工程师参与Hadoop计划的发展,例如发起Google云计算学术计划的工程师Christophe Bisciglia,也参与了Hadoop的开发。 Google云计算架构MapReduce模式Big Table信息库模式GFS(Google File System)档案系统
Yahoo用Hadoop处理4 PB的网页
Yahoo架构工程师Vivek Ratan也是Hadoop框架的开发者之一,他表示:「目前使用Hadoop框架的云计算,任务规模最大的是Yahoo用来建立网页索引数据库的运算,同时使用1万个Linux平台的处理器核心,处理1兆个网页连结,从4PB的数据,运算得出300TB的索引数据。」他进一步补充:「以相用的机器设备,改用Hadoop来处理相同任务,比起原本利用丛集运算的方式,节省了1/3的时间。」
云计算用来处理大量数据的优势,也吸引了许多企业投入。例如IBM去年宣布和Google合作,在大陆进行蓝云计划(Blue Cloud),使用Hadoop框架,来处理科学计算或提供云计算的服务。
和传统超级计算机或大型主机的架构相比,Vivek Ratan认为云计算的系统架构是完全不同的设计典范,传统大型主机是垂直式扩充(Vertical Scaling)的设计架构,而像Hadoop或Google的云计算,则是采取水平式扩充(Horizontal scaling)的设计架构。
垂直式的扩充,是指不断提高单一台服务器的运算能力,例如,尽力让单一台服务器配备更多的运算核心,来提升应用程序可以处理的数据量;而水平式扩充则是,不断增加服务器的数量,就能提高应用程序可以处理的数据量,而不需要提高单一台服务器的运算能力。所以,以采取水平式扩充设计的Hadoop来说,随着使用应用程序服务的使用者越来越多,要处理的资料量越来越大,就只需要不断增加新服务器即可,而不需要修改原来的应用程序代码。
Vivek进一步指出水平式扩充的两个优点,他说:「因为可以藉由大量扩充服务器来提高运算能力,所以不需要使用很贵的服务器,一般PC等级的计算机就足够。」买一台大型主机需要上千万元,但是企业用相同的费用可买到数百台个人计算机,透过Hadoop整合,就能提供超过单一台大型主机的运算能力,换言之,可以使用更低的成本,得到更高的运算效能。
另一个更大的优点是可以提高系统容错能力。虽然单一台大型主机的运算能力很高,但就像是将所有鸡蛋都放在同一个篮子中,一旦当机,主机所执行的应用程序就会完全停摆,无法提供服务,即使有备援系统,也需要一段时间来转换服务。在Hadoop的架构下,则是透过一台Master主机将程序切割成很多部分,分配到很多台电脑中执行,即使有几台电脑当机,Master主机也能马上将需要运算的部分交给闲置的计算机执行,整体的应用程序服务不会中断。
Vivek表示,在单一任务的运算中,甚至是即便有十分之一的计算机当机,运算仍旧可以继续执行,他说:「虽然效能会变慢,但是不会中断。」网管人员只需要将作业环境的备份文件,回复到新的机器中,就可以很快再加入Hadoop的运算环境中提供服务。
(共8页)
降低成本只是短期效益,速度会促成创新应用
运算成本的降低是云计算最明显的效益,Google工程研究所简立峰表示:「大型企业逐渐感受到单台服务器、储存和维护等成本增加的压力,以及管理人力增加的问题,目前有兴趣的企业,多半先看到云计算降低成本和人力的好处。」他接着说:「再坚持一段时间,这些企业就会看到云计算的速度价值。」
简立峰认为过去很多企业所提供的网络应用,往往受到技术上的限制,顾虑到企业使用的运算环境无法胜任大量数据处理及大量使用者联机,因此能提供的可行服务有限。但是,透过云计算,可以用较低的成本来处理大量资料,提供使用者几乎是实时的信息服务。简立峰说:「速度是产生应用的关键,随着数据量越大,就越能感受到速度的差异。」
趋势科技正是善用云服务的速度,来提供新的网络安全服务。趋势大约从4年前开始使用平行运算技术,来提供企业用户过滤网页内容的服务。随着网页内容检查的需求越来越高,企业或一般使用者希望趋势科技的安全防护,可以过滤像是钓鱼网站或恶意连结的网页内容,确保用户上网时的安全。
但是病毒演化速度越来越快,网页恶意程序的手法日趋复杂,趋势科技发现需要庞大的运算能力,才足以分析每天47亿笔的网页内容,而且病毒码更新速度也必须随时更新,才能让使用者的防护没有空窗期。
趋势科技研究开发部项目经理杨觐宁说:「当外面环境快速改变时,使用者希望安全厂商还是能够提供保障,因而产品更新的速度就很重要。」
再加上,趋势的研究团队分散在中国、美国与日本等地,每天需要分析的数据量高达Terabytes的等级,若要跨国搬移数据,所需联机成本非常高,速度也很慢,连带也会影响了产品更新的速度。
杨觐宁指出,趋势利用开源的云技术与网格技术,将服务放到云(in-the-cloud),不但可以让服务的反应速度很快、开发解决方案的速度很快,还能解决大量数据要跨地域运算的问题。她说:「过去要跑一天的分析任务,现在几秒钟就可以得到结果。如果使用者得等一天才能获得安全防护,根本就来不及。对资安厂商来说,云服务是非做不可。」
趋势科技很早就体会到云计算的威力,当相关技术都还在发展的过程,就已经开始投入。随着Google和Yahoo今年都相继推广云计算,同时也与不少大学合作培训云计算的开发人力。简立峰认为企业运用云计算的时机渐渐成熟,进入门坎将会越来越低,他说:「未来的应用都会跟云计算有关,对想要创新的企业来说,可以开始思考这个技术的可能性。」 Yahoo云计算架构(Hadoop)HadoopMapReduce模式HBase信息库模式GFS(Google File System)档案系统