云计算与网格计算

服务类型,异同点及有关问题

希望进一步了解云计算和网格计算吗?本文介绍如何通过 Amazon 的 Elastic Compute Cloud (EC2) 使用 Infrastructure as a Service 获得完善的计算机基础设施。您将了解网格计算和云计算的相似之处、差别及有关问题。本文将探讨云计算中 Web 开发的一些安全问题和选择,帮助您了解使用云计算的环境友好性。

Judith Myerson, 系统工程师兼架构师

Judith M. Myerson 是一位系统工程师兼架构师。她感兴趣的领域包括中间件技术、企业级系统、数据库技术、应用程序开发、网络管理、安全性和项目管理。


developerWorks 投稿作者

2009 年 5 月 06 日

云计算空间

您是否希望随时获取最新的云计算消息?是否想得到云计算相关的技术知识?developerWorks 云计算空间就是这样一个云计算信息资源的门户,在这里您可以了解来自 IBM 和业界其他媒体的最新信息,并且得到如何在云环境中使用 IBM 软件的入门知识。

IBM 在 Amazon EC2 云计算环境中提供了 DB2、Informix、Lotus、WebSphere 等方面的 AMI 镜像资源。您只需按使用量支付少量费用,就可以使用到云上的数据、门户、Web 内容管理、情景应用等服务。欢迎您随时访问 云计算空间,获取更多信息。

简介

您可能非常关注云计算和网格计算的比较。本文介绍了云计算服务类型,云计算和网格计算的相似与不同。同时本文探讨了云计算优于网格计算的地方,两者面临的共同问题以及一些安全方面的问题。本文以 Amazon Web Services 为例。

实现云计算需要三个部分:瘦客户机(或者能够在胖瘦之间切换的客户机)、网格计算和效用计算。网格计算将独立的计算机连接成一个大的基础设施,充分利用闲置的资源。效用计算就是支付在共享服务器上使用的服务,就好象支付公共事业一样(比如电力、天然气等)。

通过网格计算,可以把计算资源作为能够开启关闭的公用事业来提供。云计算更进一步,可以随需提供计算资源。这样在使用公用定价时就可以避免过度供给。在满足数百万用户的需求时也消除了过度供给的需要。

基础设施即服务

消费者通过 Internet 可以从完善的计算机基础设施获得服务。这类服务称为基础设施即服务(Infrastructure as a Service,IaaS)。基于 Internet 的服务(如存储和数据库)是 IaaS 的一部分。Internet 上其他类型的服务包括平台即服务(Platform as a Service,PaaS)和软件即服务(Software as a Service,SaaS)。PaaS 提供了用户可以访问的完整或部分的应用程序开发,SaaS 则提供了完整的可直接使用的应用程序,比如通过 Internet 管理企业资源。

作为 Infrastructure as a Service (IaaS) 在实际应用中的一个例子,The New York Times 使用成百上千台 Amazon EC2 实例在 36 小时内处理 TB 级的文档数据。如果没有 EC2,The New York Times 处理这些数据将要花费数天或者数月的时间。

IaaS 分为两种用法:公共的和私有的。Amazon EC2 在基础设施云中使用公共服务器池。更加私有化的服务会使用企业内部数据中心的一组公用或私有服务器池。如果在企业数据中心环境中开发软件,那么这两种类型都能使用,而且使用 EC2 临时扩展资源的成本也很低 — 比方说测试。结合使用两者可以更快地开发应用程序和服务,缩短开发和测试周期。

Amazon Web 服务

使用 EC2,客户可以创建自己的 Amazon Machine Images (AMI),包括操作系统、应用程序和数据,并控制在给定的时候每个 AMI 有多少实例运行。客户为占用的实例时间(和带宽)付费,高峰的时候增加计算资源,不需要的时候减少计算资源。EC2、Simple Storage Service (S3) 及其他 Amazon 产品能够通过 Internet 为数百万用户提供服务。

Amazon 提供了从单核的 x86 服务器到 8 核的 x86_64 服务器等五种不同类型的服务器。提供服务实例不需要知道使用了哪种服务器。可以把实例放在不同的地理位置或者可用区域内。Amazon 允许使用弹性 IP 地址,可以动态分配给实例。

云计算

使用云计算,企业马上就能大幅提高自己的计算能力,而不需要投资新的基础设施,开展新的培训或者购买新的软件许可证。云计算最适合希望将数据中心基础设施全部外包的中小型企业,或者希望不用花费高额成本建立更大的数据中心就可获得更高负荷能力的大型企业。不论哪种情况,服务消费者都在 Internet 上使用所需要的服务并只为所使用的服务付费。

服务消费者不用再守在 PC 旁边使用 PC 上的应用程序,或者购买针对特定智能手机、PDA 及其他设备的版本。消费者不必拥有云中的基础设施、软件或平台,因此降低了前期成本、资本支出和运营成本。消费者也不用关心云中的服务器和网络怎么维护。消费者可以访问任何地方的多台服务器,不需要知道使用的是哪一台服务器以及它们的位置。

网格计算

云计算是从网格计算演化来的,能够随需应变地提供资源。网格计算可以在云中,也可能不在,这取决于什么样的用户在使用它。如果用户是系统管理员和集成商,他们就会关心如何维护云。他们升级、安装和虚拟化服务器与应用程序。如果用户是消费者,就不必关心系统是如何运行的。

网格计算要求软件的使用可以分为多个部分,将程序的片段作为大的系统映像传递给几千个计算机中。网格的一个问题是如果某个节点上的软件片段失效,可能会影响到其他节点上的软件片段。如果这个片段在其他节点上可以使用故障转移组件,那么就可以缓解问题,但是如果软件片段依赖其他软件片段完成一项或多项网格计算任务,那么问题仍然得不到解决。大型系统镜像以及用于操作和维护的相关硬件可能造成很高的资本和运营支出。

异同点

云计算和网格计算都是可伸缩的。可伸缩性是通过独立运行在通过 Web 服务连接的各种操作系统上的应用程序实例的负载平衡实现的。CPU 和网络带宽根据需要分配和回收。系统存储能力根据特定时间的用户数量、实例的数量和传输的数据量进行调整。

两种计算类型都涉及到多承租(multitenancy)和多任务,即很多用户可以执行不同的任务,访问一个或多个应用程序实例。通过大型的用户池共享资源来降低基础设施成本,提高峰值负荷能力。云计算和网格计算都提供了服务水平协议(SLA)以保证可用性,比如 99%。如果服务达不到承诺的正常运行时间,消费者将由于数据延迟而得到服务补偿。

Amazon S3 在云中提供了存储和数据检索 Web 服务。设置在 S3 中能够存储的对象数量的最大上限。可以存储只有一个字节的对象,也能存储 5 GB 甚至 TB 级的对象。S3 对于对象的每个存储位置使用 “桶(bucket)” 作为容器。这些数据采用和 Amazon 电子商务网站相同的数据存储基础设施安全地实现存储。

虽然网格中的存储计算非常适合数据密集型存储,但是存储一个字节大小的对象从经济上来说不合适。在数据网格中,分布式数据的数量必须足够大才能发挥最大效益。

计算型网格关注的是计算量非常大的操作。云计算中的 Amazon Web Services 提供了两种实例:标准和高 CPU。

需要考虑的问题

云计算和网格计算面临着四个问题:阈值策略、互操作性、隐含成本、异常行为。

阈值策略

假设有一个程序在云中进行信用卡验证,并且碰到了十二月份的销售旺季。于是我们发现了更高的需求,于是创建了更多的实例来满足这种需求。随着销售旺季的过去,这种需求就会减少,资源实例被回收并重新分配给其他应用。

为了检验程序能否工作,在转入真正的生产环境之前,在可行性试验(pilot study)阶段需要开发、改进并实现一种阈值策略。看看这种策略能否发现需求的突然增加,从而创建更多的实例以满足这些需求。看看如何回收闲置的资源并转移到其他工作。

互操作性问题

如果企业外包或者和一家云计算供应商共同创建应用程序,可能会发现很难转向其他采用私有 API 或者具有不同导入和导出数据格式的供应商。这就造成了两家云计算供应商之间的互操作性问题。可能需要改变数据的格式或者应用程序逻辑。虽然还没有出现 API 或者数据导入和导出的云计算业界标准,但 IBM 和 Amazon Web Services 展开了合作以实现互操作性。

隐含成本

云计算并没有告诉您隐含的成本有哪些。比方说,如果企业要使用服务提供商提供的云中的存储服务和包含 TB 级数据的数据库应用程序,可能需要支付很高的网络费用。这笔费用要比在购买新的基础设施、培训新的雇员或者购买新的软件许可证方面节省的成本高。网络成本的另一个例子是,如果企业距离云提供商很远,可能会遇到很长的延迟,尤其是在流量大的情况下。

无法预料的行为

假设信用卡验证应用程序在企业内部数据中心运行的很好。需要通过可行性试验对云中的应用程序进行检验,以检查是否存在无法预料的行为。比方说,检查应用程序如何验证信用卡,在十二月份的销售高峰期如何分配资源和释放闲置的资源,并转向其他任务。如果发现信用卡验证或者释放闲置资源出现异常的结果,那么就需要在将其放入云中之前解决这些问题。

安全问题

2008 年 2 月,Amazon S3 和 EC2 遭遇了三个小时的宕机。尽管 SLA 提供了数据恢复和针对这种情况的补偿,但这个期间用户失去了销售机会,高管人员得不到需要的重要业务信息。

不要被动地等待宕机的发生,用户应该自己检查安全性 — 看看供应商能在多大程度上恢复数据。测试非常简单。不需要特殊的工具。只需要请求过去存储的数据看看供应商恢复它需要多长时间。如果时间很长,问问供应商在不同情况下能获得多少服务补偿。检查校验和是否匹配原来的数据。

安全测试的一个方面是用一种可信的算法在本地机器上加密数据,然后使用解密密匙访问云中远程服务器上的数据。如果无法读取曾经访问过的数据,那么就是加密密匙被破坏了或者供应商使用了自己的加密算法。可能需要向供应商了解该算法。

另一个是云中数据潜在的问题。为了保护数据,可能需要管理自己的私有密匙。询问供应商私有密匙的管理问题。如果签署的话,Amazon 将提供证书。

云中的软件开发

使用高端数据库开发软件,最可能的选择是使用企业内部数据中心的云服务器池,测试的时候可以使用 Amazon Web 服务临时扩展资源。这样项目管理人员可以更好地控制成本、管理安全问题和分配资源。项目管理人员可以为不同的云类型分配不同的硬件资源:Web 开发云、测试云和产品云。不同类型的云成本也是不一样的。开发云的单位时间成本可能低于产品云,因为 SLA 和安全性等附加特性都分配在产品云中。

管理人员可以将项目限制为特定的云。比方说,产品云的部分服务可用于产品配置。开发云的服务仅用于开发。为了优化软件开发项目不同阶段的资产,管理人员可以按项目和用户跟踪使用情况,从而获得成本数据。如果发现成本很高,管理人员可花费较低的成本使用 Amazon EC2 临时扩展资源,只要安全和数据恢复问题已经得到解决。

环境友好的云计算

云计算的动机之一就是更高的环境友好性。首先,减少了企业内部数据中心运行应用程序需要的硬件,使用云计算替代它们可以减少运行硬件和降低其温度需要的电能。将这些系统整合到远程中心里,可以更有效地进行管理。

其次,云计算技术提高了电信技术,比如远程打印和文件传输,有可能降低办公空间、购买新家具、淘汰旧家具、办公室清洁等方面的需求。还减少了开车上班的需要,降低了二氧化碳的释放。

结束语

本文比较了云计算和网格计算之间的异同,介绍了如何解决云计算和网格计算中的问题,在按需付费环境中的数据恢复和管理私有密匙的安全问题,帮助您做好使用云计算的准备。用户对更大的 Internet 容量的潜在需求对开发人员和项目团队的其他成员提出了挑战。处理好 Web 应用程序设计和潜在的安全问题可以减少团队遇到的麻烦。要获得帮助,请考虑可以帮助您创建 Web 应用程序的 IBM Rational Web Developer WebSphere 软件,以及可帮助减少应用程序缺陷和实现应用程序跟踪的 IBM Rational ClearQuest(请参阅 参考资料)。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Web development
ArticleID=387626
ArticleTitle=云计算与网格计算
publish-date=05062009