论文部分内容阅读
摘要:云计算是当前的一个研究热点。它是一种基于Internet的超级计算模式,可以通过对硬件资源的虚拟化调度来提供各种IT服务。该文首先介绍了云计算的定义和研究现状,然后分析了其发展趋势,接着阐述了云计算所具有的形式以及所用到的关键技术,最后指出了它在技术上所面临的挑战。
关键词:云计算;虚拟化;效用计算;分布式计算;IT服务
中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)27-6678-02
Review of Cloud Computing
WANG Chao
(School of Software, Nanyang Institute of Technology, Nanyang 473004, China)
Abstract: Cloud computing is a hot research area at present. It is a super calculation mode based on Internet and it can provide different IT services by scheduling hardware resources virtually. This paper introduces the definition and research status of cloud computing at first, then analyzes its development tendency, describes the different forms and key technology it has, at last points out the challenges it faces.
Key words: cloud computing; virtualization; utility computation; distributed computation; IT services
1 简介
1.1 定义
云计算是一种新近提出的计算模式。中国云计算网对云的定义是[1]:云计算是一种基于因特网的超级计算模式。IBM将云计算定义为[2]:云计算是随着互联网的发展而诞生的一种新兴计算模式。应用、数据和IT资源分布在大量的分布式系统上,而不是在本地计算机或单个远程服务器上。这种模式的核心原则是“硬件和软件都是资源并被封装为服务,用户可以通过互联网按需访问和使用”。这些分布式系统称为“云”,并基于开放的标准和技术,通过互联网向用户提供服务。用户可以随时通过任何有网络连接的设备使用这些服务,并按使用量付费。
1.2 云计算的现状
软件开发者可以在在线应用服务托管平台Google应用引擎(GAE)上编写应用程序,客户则可以使用定制化的网络服务。
亚马逊的云计算服务的主要思想是虚拟化,它将硬件设备等基础资源封装成服务供用户使用,所提供的云计算服务有弹性计算云EC2、简单存储服务S3、简单数据库服务、简单队列服务SQS、弹性MapReduce服务、内容推送服务、电子商务服务、灵活支付服务FPS。
IBM的蓝云计算平台[3]基于IBM Almaden研究中心的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop文件系统与并行构建。
微软认为[4],未来的互联网世界将会是“云 端”的组合。其云计算架构主要分为4个层次,从上到下依次是:客户端、软件即服务SaaS、平台即服务PaaS、基础设施即服务IaaS。基于该架构,微软为企业提供两种云计算部署类型:公有云和私有云。典型的解决方案有Windows Azure、Hyper-VTM Cloud、Windows Azure Appliance。
1.3 云计算的发展
目前,各大IT公司纷纷提出了“云计划”。例如亚马逊的AWS、IBM和谷歌联合进行的“蓝云”计划。同时学术界也开始对云计算进行更深层次的研究。比如谷歌同华盛顿大学以及清华大学合作启动的云计算学术合作计划(Academic Cloud Computing Initiative)。
由此可见,在各大公司以及学术界的共同推动下,云计算技术将会持续发展。
2 云计算的形式
云计算主要分为以下七种形式[5]。
2.1 软件即服务
这种类型的云计算是采用multitenant架构通过网络浏览器将单个的应用软件推广到数千用户。从用户角度来说,这意味着他们前期无需在服务器或软件许可证授权上进行投资;从供应商角度来看,与常规的软件服务模式相比,维护一个应用软件的成本要相对低廉。
2.2 效用计算
效用计算本身并无新意,但由于这种类型的云计算有了Amazon.com、Sun、IBM和其他从事存储服务以及随需访问的虚拟机厂商的参与而焕发出了新的活力。
早期的效用计算是一种常规计算的补充,不会应用在关键性任务需求上,但是随着数据中心的发展,今天效用计算也逐渐占据了一席之地。一些供应商已经开始向用户提供解决方案来帮助企业从商业服务器开始创建数据中心,比如3Tera的AppLogic和Cohesive Flexible Technologies的Elastic Server都是提供这种随需服务的。
2.3 云端网络服务
云端网络服务与软件即服务是密切相关的,网络服务供应商不只是提供成熟的应用软件,而是提供API来帮助开发商通过网络拓展功能性。其服务范围从提供分散的商业服务到Google Maps、ADP薪資处理流程、美国邮电服务、Bloomberg和常规的信用卡处理服务等的全套API服务。
2.4 平台即服务
平台即服务是软件即服务的变种,这种形式的云计算将开发环境作为服务来提供。任何人都可以将自己创建的应用软件运行在供应商的基础架构上,然后通过网络上传给用户。但是这些服务会受到厂商设计和容量的限制,因此用户就没有足够的自由。
2.5 管理服务供应商
管理服务是云计算最早的形式之一,它是面向IT厂商而并非最终用户的一种应用软件,比如用于电子邮件的病毒扫描服务或者应用软件监控服务。由SecureWorks、IBM和Verizon公司提供的管理安全服务就属于此类。
2.6 服务商业平台
服务商业平台是软件即服务和管理服务供应商的混合体,这种云计算服务提供了一种与用户相结合的服务采集器。在贸易领域中应用最为普遍,比如费用管理系统能允许用户在用户设定的规格范围内从普通平台上订购与所要求的服务和价格相符的旅游产品或者秘书台服务。
2.7 网络集成
云基础服务的集成尚处于起步阶段。软件服务供应商OpSource目前推出了OpSource Service Bus,使用的就是被称为Boomi的云集成技术。
3 云计算的关键技术
云计算是一种新型的超级计算方式,它以数据为中心。云计算中所使用的关键技术主要有数据存储、数据管理、编程模式等[6]。
3.1 数据存储技术
云计算采用分布式存储方式来存储数据以保证可用性,采用冗余存储的方式来保证可靠性。因此,云计算系统可以同时满足大量用户的需求,并为其提供服务。因此,云计算的数据存储技术必须具有高吞吐量和高传输率。
谷歌的非开源的GFS(Google File System)和Hadoop开发的GFS的开源实现HDFS(Hadoop Distributed File System)都采用了该技术。
超大规模数据存储、数据安全性保证、提高I/O速率等方面是该技术需要考虑的问题。
3.2 数据管理技术
云计算需要处理大量的数据,因此,如何在规模巨大的数据中找到特定的数据,是云计算数据管理技术所必须解决的问题。
云计算的特点是对海量的数据存储进行分析,数据的读操作频率远大于数据的更新频率。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式,将表按列划分后存储。
比较典型的应用有谷歌的BigTable数据管理技术,以及Hadoop开发团队的开源数据管理模块。
由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来数据管理技术必须解决的问题。
3.3 编程模式
为了让用户能利用编程模型编写简单的程序以实现特定的目的,云计算系统必须保证并行执行和任务调度对用户和编程人员来说是透明的。
云计算采用类似MAP-Reduce的编程模式。MAP-Reduce不仅是一种编程模型,同时也是一种高效的任务调度模型。该编程模型在多核和多处理器、cell processor以及异构机群上也具有良好的性能。
该编程模式仅适用于编写任务内部松耦合、能够高度并行化的程序。如何改进该编程模式使程序员能够编写紧耦合的程序,以及运行时能高效地调度和执行任务,是MAP-Reduce编程模型未来的发展方向。
4 云计算的未来
云计算的前景虽然美好,但还有一些技术亟需解决,主要有高可靠的系统技术、可扩展的并行計算技术、海量数据的挖掘技术和数据安全技术[7]。
4.1 高可靠的系统技术
当云计算系统规模增大后,就需要保证其可靠性和稳定性。另外,系统级的容错技术也是一个难点。大量服务器在进行同一个计算时,单个节点的故障不应该影响应用的正常运行。对比较简单的应用程序来说,这一点容易实现。但对于那些紧耦合类应用来说,当前仍无有效的系统级容错方案。目前主要还是依赖应用层面的检查点和重启技术,一方面增加了开发的难度和工作量,另一方面对运行性能也有一定的影响。
4.2 可扩展的并行计算技术
并行计算技术是云计算的核心技术。多核处理器的出现增加了并行的层次性,使得并行程序的开发比以往更难。
可扩展性是云计算时代并行计算的主要特点,应用程序必须能随着用户请求、系统规模的增大而有效扩展。当前大部分并行应用程序在多个处理器上都难以获得有效的加速性能,未来的并行应用程序必须能有效扩展到成千上万个处理器上。这对开发者来说是一种巨大的挑战。
4.3 海量数据的挖掘技术
云计算面对的是TB乃至PB级的海量数据,如何从数据中获取有效信息,决定了云计算应用成败的关键。除了利用并行计算技术加速处理数据外,还需要有新的算法来完成更精确的数据挖掘。
除了数据挖掘,海量数据的存储和管理也将是一个难题。
4.4 数据安全技术
云计算需要将所有应用程序的数据交给外部的云计算服务中心,这样就容易出现安全问题。网络技术的发展,使得安全性仍然是最重要的考虑因素。另外,制度、法规、观念等非技术的因素将决定云计算的受欢迎程度。
参考文献:
[1] 中国云计算网[EB/OL].云计算[EB/OL].http://www.cloudcomputing-china.cn/.
[2] 王庆波.云计算[EB/OL].http://wenku.baidu.com/view/0b75503f0912a21614792917.html.
[3] 袁国骏.浅谈云计算及其发展应用[J].实验室科学,2009(2):103-105.
[4] 微软云计算[EB/OL].http://www.microsoft.com/china/cloud/default.aspx.
[5] 范昊,余婷.一种新型的网络分布式计算——云计算[C]//2008年全国高性能计算学术年会,2008:56-60.
[6] 胡慧,王辉.云计算技术现状与发展趋势分析[J].软件导刊,2009,8(9):3-4.
[7] 姚继锋.未来需要云计算[J].高性能计算发展与应用,2009(1):7-9.
关键词:云计算;虚拟化;效用计算;分布式计算;IT服务
中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)27-6678-02
Review of Cloud Computing
WANG Chao
(School of Software, Nanyang Institute of Technology, Nanyang 473004, China)
Abstract: Cloud computing is a hot research area at present. It is a super calculation mode based on Internet and it can provide different IT services by scheduling hardware resources virtually. This paper introduces the definition and research status of cloud computing at first, then analyzes its development tendency, describes the different forms and key technology it has, at last points out the challenges it faces.
Key words: cloud computing; virtualization; utility computation; distributed computation; IT services
1 简介
1.1 定义
云计算是一种新近提出的计算模式。中国云计算网对云的定义是[1]:云计算是一种基于因特网的超级计算模式。IBM将云计算定义为[2]:云计算是随着互联网的发展而诞生的一种新兴计算模式。应用、数据和IT资源分布在大量的分布式系统上,而不是在本地计算机或单个远程服务器上。这种模式的核心原则是“硬件和软件都是资源并被封装为服务,用户可以通过互联网按需访问和使用”。这些分布式系统称为“云”,并基于开放的标准和技术,通过互联网向用户提供服务。用户可以随时通过任何有网络连接的设备使用这些服务,并按使用量付费。
1.2 云计算的现状
软件开发者可以在在线应用服务托管平台Google应用引擎(GAE)上编写应用程序,客户则可以使用定制化的网络服务。
亚马逊的云计算服务的主要思想是虚拟化,它将硬件设备等基础资源封装成服务供用户使用,所提供的云计算服务有弹性计算云EC2、简单存储服务S3、简单数据库服务、简单队列服务SQS、弹性MapReduce服务、内容推送服务、电子商务服务、灵活支付服务FPS。
IBM的蓝云计算平台[3]基于IBM Almaden研究中心的云基础架构,包括Xen和PowerVM虚拟化、Linux操作系统映像以及Hadoop文件系统与并行构建。
微软认为[4],未来的互联网世界将会是“云 端”的组合。其云计算架构主要分为4个层次,从上到下依次是:客户端、软件即服务SaaS、平台即服务PaaS、基础设施即服务IaaS。基于该架构,微软为企业提供两种云计算部署类型:公有云和私有云。典型的解决方案有Windows Azure、Hyper-VTM Cloud、Windows Azure Appliance。
1.3 云计算的发展
目前,各大IT公司纷纷提出了“云计划”。例如亚马逊的AWS、IBM和谷歌联合进行的“蓝云”计划。同时学术界也开始对云计算进行更深层次的研究。比如谷歌同华盛顿大学以及清华大学合作启动的云计算学术合作计划(Academic Cloud Computing Initiative)。
由此可见,在各大公司以及学术界的共同推动下,云计算技术将会持续发展。
2 云计算的形式
云计算主要分为以下七种形式[5]。
2.1 软件即服务
这种类型的云计算是采用multitenant架构通过网络浏览器将单个的应用软件推广到数千用户。从用户角度来说,这意味着他们前期无需在服务器或软件许可证授权上进行投资;从供应商角度来看,与常规的软件服务模式相比,维护一个应用软件的成本要相对低廉。
2.2 效用计算
效用计算本身并无新意,但由于这种类型的云计算有了Amazon.com、Sun、IBM和其他从事存储服务以及随需访问的虚拟机厂商的参与而焕发出了新的活力。
早期的效用计算是一种常规计算的补充,不会应用在关键性任务需求上,但是随着数据中心的发展,今天效用计算也逐渐占据了一席之地。一些供应商已经开始向用户提供解决方案来帮助企业从商业服务器开始创建数据中心,比如3Tera的AppLogic和Cohesive Flexible Technologies的Elastic Server都是提供这种随需服务的。
2.3 云端网络服务
云端网络服务与软件即服务是密切相关的,网络服务供应商不只是提供成熟的应用软件,而是提供API来帮助开发商通过网络拓展功能性。其服务范围从提供分散的商业服务到Google Maps、ADP薪資处理流程、美国邮电服务、Bloomberg和常规的信用卡处理服务等的全套API服务。
2.4 平台即服务
平台即服务是软件即服务的变种,这种形式的云计算将开发环境作为服务来提供。任何人都可以将自己创建的应用软件运行在供应商的基础架构上,然后通过网络上传给用户。但是这些服务会受到厂商设计和容量的限制,因此用户就没有足够的自由。
2.5 管理服务供应商
管理服务是云计算最早的形式之一,它是面向IT厂商而并非最终用户的一种应用软件,比如用于电子邮件的病毒扫描服务或者应用软件监控服务。由SecureWorks、IBM和Verizon公司提供的管理安全服务就属于此类。
2.6 服务商业平台
服务商业平台是软件即服务和管理服务供应商的混合体,这种云计算服务提供了一种与用户相结合的服务采集器。在贸易领域中应用最为普遍,比如费用管理系统能允许用户在用户设定的规格范围内从普通平台上订购与所要求的服务和价格相符的旅游产品或者秘书台服务。
2.7 网络集成
云基础服务的集成尚处于起步阶段。软件服务供应商OpSource目前推出了OpSource Service Bus,使用的就是被称为Boomi的云集成技术。
3 云计算的关键技术
云计算是一种新型的超级计算方式,它以数据为中心。云计算中所使用的关键技术主要有数据存储、数据管理、编程模式等[6]。
3.1 数据存储技术
云计算采用分布式存储方式来存储数据以保证可用性,采用冗余存储的方式来保证可靠性。因此,云计算系统可以同时满足大量用户的需求,并为其提供服务。因此,云计算的数据存储技术必须具有高吞吐量和高传输率。
谷歌的非开源的GFS(Google File System)和Hadoop开发的GFS的开源实现HDFS(Hadoop Distributed File System)都采用了该技术。
超大规模数据存储、数据安全性保证、提高I/O速率等方面是该技术需要考虑的问题。
3.2 数据管理技术
云计算需要处理大量的数据,因此,如何在规模巨大的数据中找到特定的数据,是云计算数据管理技术所必须解决的问题。
云计算的特点是对海量的数据存储进行分析,数据的读操作频率远大于数据的更新频率。因此,云系统的数据管理往往采用数据库领域中列存储的数据管理模式,将表按列划分后存储。
比较典型的应用有谷歌的BigTable数据管理技术,以及Hadoop开发团队的开源数据管理模块。
由于采用列存储的方式管理数据,如何提高数据的更新速率以及进一步提高随机读速率是未来数据管理技术必须解决的问题。
3.3 编程模式
为了让用户能利用编程模型编写简单的程序以实现特定的目的,云计算系统必须保证并行执行和任务调度对用户和编程人员来说是透明的。
云计算采用类似MAP-Reduce的编程模式。MAP-Reduce不仅是一种编程模型,同时也是一种高效的任务调度模型。该编程模型在多核和多处理器、cell processor以及异构机群上也具有良好的性能。
该编程模式仅适用于编写任务内部松耦合、能够高度并行化的程序。如何改进该编程模式使程序员能够编写紧耦合的程序,以及运行时能高效地调度和执行任务,是MAP-Reduce编程模型未来的发展方向。
4 云计算的未来
云计算的前景虽然美好,但还有一些技术亟需解决,主要有高可靠的系统技术、可扩展的并行計算技术、海量数据的挖掘技术和数据安全技术[7]。
4.1 高可靠的系统技术
当云计算系统规模增大后,就需要保证其可靠性和稳定性。另外,系统级的容错技术也是一个难点。大量服务器在进行同一个计算时,单个节点的故障不应该影响应用的正常运行。对比较简单的应用程序来说,这一点容易实现。但对于那些紧耦合类应用来说,当前仍无有效的系统级容错方案。目前主要还是依赖应用层面的检查点和重启技术,一方面增加了开发的难度和工作量,另一方面对运行性能也有一定的影响。
4.2 可扩展的并行计算技术
并行计算技术是云计算的核心技术。多核处理器的出现增加了并行的层次性,使得并行程序的开发比以往更难。
可扩展性是云计算时代并行计算的主要特点,应用程序必须能随着用户请求、系统规模的增大而有效扩展。当前大部分并行应用程序在多个处理器上都难以获得有效的加速性能,未来的并行应用程序必须能有效扩展到成千上万个处理器上。这对开发者来说是一种巨大的挑战。
4.3 海量数据的挖掘技术
云计算面对的是TB乃至PB级的海量数据,如何从数据中获取有效信息,决定了云计算应用成败的关键。除了利用并行计算技术加速处理数据外,还需要有新的算法来完成更精确的数据挖掘。
除了数据挖掘,海量数据的存储和管理也将是一个难题。
4.4 数据安全技术
云计算需要将所有应用程序的数据交给外部的云计算服务中心,这样就容易出现安全问题。网络技术的发展,使得安全性仍然是最重要的考虑因素。另外,制度、法规、观念等非技术的因素将决定云计算的受欢迎程度。
参考文献:
[1] 中国云计算网[EB/OL].云计算[EB/OL].http://www.cloudcomputing-china.cn/.
[2] 王庆波.云计算[EB/OL].http://wenku.baidu.com/view/0b75503f0912a21614792917.html.
[3] 袁国骏.浅谈云计算及其发展应用[J].实验室科学,2009(2):103-105.
[4] 微软云计算[EB/OL].http://www.microsoft.com/china/cloud/default.aspx.
[5] 范昊,余婷.一种新型的网络分布式计算——云计算[C]//2008年全国高性能计算学术年会,2008:56-60.
[6] 胡慧,王辉.云计算技术现状与发展趋势分析[J].软件导刊,2009,8(9):3-4.
[7] 姚继锋.未来需要云计算[J].高性能计算发展与应用,2009(1):7-9.