另外一个潜在的不足就是云计算宿主离线所导致的事件。尽管多数公司说这是不可能的,但它确实发生了,亚马逊的EC2业务在2008年2月15日经受了一次大规模的服务中止,并抹去了一些客户应用数据。(该次业务中止由一个软件部署所引起,它错误的终止了数量未知的用户实例。)对那些需要可靠和安全平台的客户来说,平台故障和数据消失就像被粗鲁的唤醒一样。更进一步讲,如果一个公司依赖于第三方的云平台来存放数据而没有其他的物理备份,该数据可能处于危险之中。
注意
亚马逊声称,通过将应用的实例放在多个地方并指派专为云计算设计的弹性IP地址,他们已经解决了导致系统故障的原因。
云服务开发的类型
云服务开发这一概念包含几种不同的开发类型。让我们来看一下一个公司能够利用云计算来开发自己的业务应用的不同方法。
软件即服务
软件即服务(SaaS)可能是最普遍的云服务开发类型。有了SaaS,一个独立的应用通过供应商的服务器交付给成千上万的使用者。客户不必为拥有软件而支付费用,确切的说,他们支付使用费。用户通过web可以访问的API使用应用。
注意
一个API(应用开发接口)是一个接口,它使得一个远程程序能够与另外一个程序或服务进行通信或使用其资源。
供应商所服务的每一个组织都称之为一个租户,这种类型的安排称为多租户架构。供应商的服务器被虚拟的划分成多个部分从而使得每个组织都可以利用定制的应用实例进行工作。
对客户而言,SaaS无需前期的服务器或软件许可投资。对应用开发者而言,只需要为多个客户端维护一个应用。
许多不同类型的公司都在利用SaaS模型开发应用。也许最为著名的SaaS应用就是谷歌为自己的客户群所提供的应用。
平台即服务
平台即服务(PaaS)是SaaS的一个变种,整个开发环境作为一个服务而提供。开发者利用供应商开发环境中的“结构单元”来创建自己的客户应用。这在某种程度上就像利用Legos构造应用,尽管最终应用在一定程度上受到可用代码块的限制,但利用这些预定义的代码块,应用的构建变得更容易。
Web服务
一个Web服务就是一个在网络上,通常是因特网上运行的应用。更典型的说法是,一个Web服务就是一个能够通过因特网访问的API。用户所请求的服务运行在远端系统上,后者充当服务的宿主。
第三章 开发云服务(3)
这种类型的Web API使得用户能够利用因特网上共享的功能,而不是提供自己的完整的应用程序。这种做法的最终结果是一个定制的、基于web的应用程序,该程序的大部分由第三方提供,因而减轻了传统应用程序在开发和带宽方面的需求。
一个不错的web服务的例子就是谷歌地图API用户所创造的“整合应用”。利用这些定制的应用程序,供应给地图的数据由开发者提供,而创造地图本身的引擎则由谷歌提供。开发者无需编写代码或提供地图应用,他所要做的一切就是连接到谷歌的Web API。
正如你可能猜测的那样,Web服务的优点包括更快的(和更低成本的)应用开发,更精简的应用和较少的存储和带宽需求。
实际上,web服务使得开发者每次开发新应用的时候不必重复开发相同的功能。利用来自web服务提供商的代码,他们在开发自己的应用的时候更容易成功。
按需计算
顾名思义,按需(on…demand)计算将计算机资源(处理能力,存储等)打包成类似公共设施的可计量的服务。在这一模式中,客户只需为他们所需的处理能力和存储支付费用。
注意
按需计算也称为效用(utility)计算。
那些具有很大的需求高峰并伴有低得多的正常使用期的公司特别受益于效用计算。当然,该公司需要为高峰使用支付更多,但是,当高峰结束,正常使用模式恢复时,他们的帐单会迅速下降。
按需计算服务的客户端基本上将这些服务作为异地虚拟服务器来使用。无需投资自己的物理基础设施,公司与云服务提供商之间执行现用现付的方案。
按需计算本身并不是一个新概念,但它因云计算而获得新的生命。在过去的岁月里,按需计算由一台服务器通过某种分时方式而提供。今天,服务基于大型的计算机网格,它作为一个独立的云运行。
注意
现今提供按需计算和存储的公司包括亚马逊,IBM,Sun和其他公司。
了解云服务开发服务和工具
正如你所知,云计算还处在发展的早期阶段。通过观察大量的小型和新兴的提供云开发工具的公司就能够看到这一点。在一个更加成熟的产业中,随着更大的企业登上舞台的中心,规模较小的厂商最终会倒在路边。
也就是说,许多公司,有大有小,都提供云服务的开发服务和工具。最基本的产品面向从零开发的应用程序,为其提供基于云的托管服务。功能更为齐全的产品包括开发工具和预先建立的应用程序,开发人员可以将其用作构造单元来构建自己独特的基于web的应用。
让我们回来从云服务开发的角度看一看谁在提供哪些服务。这是一个有趣的公司和服务的组合。
亚马逊
这是正确的,亚马逊,因特网上最大的零售商之一,也是一个主要的云开发服务供应商。按照如下的方式来考虑:亚马逊已经花了大量的时间和金钱设立了众多的服务器来服务其广受欢迎的网站,它正在将这些海量的硬件资源提供给所有开发者使用。
我们讨论中的这项服务称之为弹性计算云,亦称为EC2。这是一个商业web服务,它允许开发人员和公司租用亚马逊公司拥有的服务器云的能力,这一服务器云正是世界上最大的服务器农场之一。通过让客户请求指定数目的虚拟机,并在其上加载他们选择的任何应用,EC2使得可扩展的应用部署成为可能。因此,客户可以按需创建,启动和终止服务器实例,从而形成真正的“弹性”操作。
第三章 开发云服务(4)
亚马逊的服务提供了三种配置的虚拟服务器让客户选择:
? 小型的,它相当于一个具有内存,160GB存储空间和一个32位内核处理器的系统
? 大型的,它相当于一个具有内存,850GB存储空间和两个64位内核处理器的系统
? 超大型,它相当于一个具有15GB内存,存储空间和四个64位内核处理器的系统
换句话说,你只需要选择想要的虚拟服务器的配置和计算能力,而剩下的事情由亚马逊来完成。
EC2仅仅是亚马逊web服务产品集的一部分,它使得开发人员能够直接访问亚马逊的软件和机器。通过充分利用亚马逊已经建成的计算能力,开发人员能够建立可靠的,强大的,低成本的基于web的应用。亚马逊提供了云(以及对它的访问),开发人员提供了其余部分。他们只需要为他们所使用的计算能力支付相应的费用。
AWS也许是目前最流行的云计算服务。亚马逊声称有超过330; 000的客户,这里面既有开发者,初创企业,也有已建成的公司。
注意
关于亚马逊Web服务的更多信息,请访问。
谷歌应用引擎
谷歌是web应用的领导者,因此它提供云开发服务一点也不奇怪。这些服务以谷歌应用引擎的形式提供,它使得开发者能够利用谷歌强大的应用所依赖的相同的基础设施来构建他们自己的web应用。
谷歌应用引擎提供了一个完全集成的应用环境。利用谷歌的开发工具和计算云,应用引擎应用易于构建,易于维护,易于扩展。所有你需要做的就是开发你的应用(使用谷歌的API和Python编程语言)并把它上传到应用引擎云里,从那里,它准备服务于用户。
如同你所推测的那样,谷歌提供了一个健壮的云开发环境。它具有以下特征:
? 动态Web服务
? 通用web技术的全方位支持
? 具有查询、分类和事务功能的持久存储
? 自动扩展和负载均衡
? 用于用户认证和利用谷歌账户发送电子邮件的API
此外,谷歌还提供了一个全功能的本地开发环境,能够在任何桌面计算机上模拟谷歌应用引擎。
关于谷歌产品的一件最好的事情就是:与其他大多数云托管解决方案不同,谷歌应用引擎是完全免费使用——不管怎么说,至少在基本层面如此。一个免费的应用引擎账户可以使用多达500MB的存储和每个月足够支持500万页面浏览量的CPU强度和带宽。如果你需要更多的存储,计算能力或容量,谷歌打算在不久的将来提供额外的资源(收费)。
注意
关于谷歌应用引擎的更多信息,请访问。
IBM
考虑到IBM在企业级计算机硬件方面的实力,它推出云计算解决方案并不奇怪。通过蓝云计划,IBM推出了一整套面向中小企业的基于云的按需服务。
蓝云是一系列的云计算产品,使得企业能够将他们的计算需求分散到可全球访问的资源网格中。其中的一个产品是快速优势(Express Advantage)套件,其中包括数据备份和恢复,电子邮件的连续性和归档以及数据安全功能,他们都是一个典型的IT部门所处理的数据密集型过程的一部分。
为管理它的云硬件,IBM提供了一个名为Hadoop的开源负载调度软件,该软件基于谷歌在自己的产品中所使用的MapReduce软件。其他软件还包括PowerVM和Xen虚拟化工具以及IBM的Tivoli数据中心管理软件。 txt小说上传分享
第三章 开发云服务(5)
注意
关于IBM蓝云计划的更多信息,请访问。
也许是以它的销售管理SaaS而闻名,然而它也是云计算开发的一个领导者