正如你所知,云计算还处在发展的早期阶段。通过观察大量的小型和新兴的提供云开发工具的公司就能够看到这一点。在一个更加成熟的产业中,随着更大的企业登上舞台的中心,规模较小的厂商最终会倒在路边。
也就是说,许多公司,有大有小,都提供云服务的开发服务和工具。最基本的产品面向从零开发的应用程序,为其提供基于云的托管服务。功能更为齐全的产品包括开发工具和预先建立的应用程序,开发人员可以将其用作构造单元来构建自己独特的基于web的应用。
让我们回来从云服务开发的角度看一看谁在提供哪些服务。这是一个有趣的公司和服务的组合。
亚马逊
这是正确的,亚马逊,因特网上最大的零售商之一,也是一个主要的云开发服务供应商。按照如下的方式来考虑:亚马逊已经花了大量的时间和金钱设立了众多的服务器来服务其广受欢迎的网站,它正在将这些海量的硬件资源提供给所有开发者使用。
我们讨论中的这项服务称之为弹性计算云,亦称为EC2。这是一个商业web服务,它允许开发人员和公司租用亚马逊公司拥有的服务器云的能力,这一服务器云正是世界上最大的服务器农场之一。通过让客户请求指定数目的虚拟机,并在其上加载他们选择的任何应用,EC2使得可扩展的应用部署成为可能。因此,客户可以按需创建,启动和终止服务器实例,从而形成真正的“弹性”操作。
亚马逊的服务提供了三种配置的虚拟服务器让客户选择:
小型的,它相当于一个具有1.7GB内存,160GB存储空间和一个32位内核处理器的系统
大型的,它相当于一个具有7.5GB内存,850GB存储空间和两个64位内核处理器的系统
超大型,它相当于一个具有15GB内存,1.7TB存储空间和四个64位内核处理器的系统
换句话说,你只需要选择想要的虚拟服务器的配置和计算能力,而剩下的事情由亚马逊来完成。
EC2仅仅是亚马逊web服务产品集的一部分,它使得开发人员能够直接访问亚马逊的软件和机器。通过充分利用亚马逊已经建成的计算能力,开发人员能够建立可靠的,强大的,低成本的基于web的应用。亚马逊提供了云(以及对它的访问),开发人员提供了其余部分。他们只需要为他们所使用的计算能力支付相应的费用。
AWS也许是目前最流行的云计算服务。亚马逊声称有超过330, 000的客户,这里面既有开发者,初创企业,也有已建成的公司。
谷歌应用引擎
谷歌是web应用的领导者,因此它提供云开发服务一点也不奇怪。这些服务以谷歌应用引擎的形式提供,它使得开发者能够利用谷歌强大的应用所依赖的相同的基础设施来构建他们自己的web应用。
谷歌应用引擎提供了一个完全集成的应用环境。利用谷歌的开发工具和计算云,应用引擎应用易于构建,易于维护,易于扩展。所有你需要做的就是开发你的应用(使用谷歌的API和Python编程语言)并把它上传到应用引擎云里,从那里,它准备服务于用户。
如同你所推测的那样,谷歌提供了一个健壮的云开发环境。它具有以下特征:
动态Web服务
通用web技术的全方位支持
具有查询、分类和事务功能的持久存储
自动扩展和负载均衡
用于用户认证和利用谷歌账户发送电子邮件的API
此外,谷歌还提供了一个全功能的本地开发环境,能够在任何桌面计算机上模拟谷歌应用引擎。
关于谷歌产品的一件最好的事情就是:与其他大多数云托管解决方案不同,谷歌应用引擎是完全免费使用--不管怎么说,至少在基本层面如此。一个免费的应用引擎账户可以使用多达500MB的存储和每个月足够支持500万页面浏览量的CPU强度和带宽。如果你需要更多的存储,计算能力或容量,谷歌打算在不久的将来提供额外的资源(收费)。
IBM
考虑到IBM在企业级计算机硬件方面的实力,它推出云计算解决方案并不奇怪。通过蓝云计划,IBM推出了一整套面向中小企业的基于云的按需服务。
蓝云是一系列的云计算产品,使得企业能够将他们的计算需求分散到可全球访问的资源网格中。其中的一个产品是快速优势(Express Advantage)套件,其中包括数据备份和恢复,电子邮件的连续性和归档以及数据安全功能,他们都是一个典型的IT部门所处理的数据密集型过程的一部分。
为管理它的云硬件,IBM提供了一个名为Hadoop的开源负载调度软件,该软件基于谷歌在自己的产品中所使用的MapReduce软件。其他软件还包括PowerVM和Xen虚拟化工具以及IBM的Tivoli数据中心管理软件。
Salesforce.com
Salesforce.com也许是以它的销售管理SaaS而闻名,然而它也是云计算开发的一个领导者。该公司的云计算架构被称为Force.com。该平台作为一个服务运行在因特网上,是完全即时请求的。Salesforce提供自己的Force.com API和开发工具包。收费是以每登录为基础的。
作为Force.com的补充,AppExchange是一个以web为基础的应用的目录。开发人员可以使用AppExchange中他人上载的应用,可以在目录中共享自己的应用或发布只有获得授权的公司或客户才能使用的私有应用。AppExchange库中的许多应用是免费的,其他应用可以从原始开发者那里购买或获得授权。
毫不意外的是,大多数现有的AppExchange应用都是销售相关的--销售分析工具、电子邮件营销系统、财务分析应用等等。但是,公司可以使用Force.com平台开发任何类型的应用。事实上,许多小企业已经跳上了Force.com的潮流。
例如,2008年4月《微电脑世界》杂志的文章援引了乔纳森 斯奈德,Dreambuilder(一个位于纽约的10人的抵押贷款投资公司)首席技术官的话。“我们是一家小公司”,斯奈德说, “我们没有资源来专注于购买服务器和从零开始开发。对于我们来说,Force.com是一个真正的助推器。”
其他云服务开发工具
亚马逊,谷歌,IBM和Salesforce.com并不是唯一向云服务开发者提供工具的公司。还有若干开发者应该予以评估、最终用户也许最后会熟悉的小一些的公司在从事这方面的工作。这些公司包括以下的这些:
3tera (3tera.com)提供了AppLogic网格操作系统和用于按需计算的云件(Cloudware) 架构。
10gen (10gen.com)提供了一个平台供开发者构建可扩展的基于web的应用。
Cohesive Flexible Technologies (cohesiveft.com)提供了一个名为按需弹性服务器(Elastic Server On-Demand)的虚拟服务器平台。
Joyent (joyent.com)为web应用开发者提供了一个名为加速器(Accelerator)的可扩展的按需的基础设施以及面向小企业的名为连接器(Connector)的使用简单的web应用套件。
Mosso (mosso.com)提供了一个企业级的、可自动扩展的云宿主服务。
Nirvanix (nirvanix.com)为开发者提供了一个云存储平台和Nirvanix Web服务, 后者通过标准的API提供了文件管理和其他公共操作。
Skytap (skytap.com)提供了一个名为虚拟实验室(Virtual Lab)的按需web自动化解决方案, 它使得开发者能够利用预配置的虚拟机构建和配置实验室环境。
StrikeIron (strikeiron.com)提供了基于云的平台IronCloud,用来提供Web服务以及开发者可以集成到自己的应用中的各类实时数据服务。
此外,Sun微系统公司有一个研发计划,称之为卡罗琳计划(projectcaroline.net),它为开发和交付基于web的应用提供了一个开源宿主平台。普通大众访问卡罗琳计划的网格是免费的。
云服务的成熟度
为了了解我们称之为云服务的那些基于web的应用在计算机软件托管进程中所处的位置,我们求助于我们在微软的好朋友们,他们给出了四个主要的成熟级别。
第一级的成熟就是传统应用服务提供商(ASP)的软件交付模式,可以追溯到20世纪90年代。在这个级别,每个用户都有自己的个性化版本的托管应用,在宿主服务器上运行自己的应用实例。
第二级的成熟出现在供应商为每个客户提供一个单独的应用实例时。在这个级别,所有的实例都使用相同的实现。如同级别1的应用,代码不是为每个用户定制的。相反,用户的个性化是通过在应用程序中提供详细的配置选项实现的。
第三级的成熟标志着应用托管方式的一个重大变化。在这个级别,供应商为每个用户运行一个单独的应用实例。通过可配置的元数据,系统提供了独特的用户体验,授权和安全策略确保每个用户的数据都与其他用户的分开。
在第四级也是最后一级的成熟水平中,供应商在负载均衡的同源实例的农场上服务多个用户。由于服务器(和实例)的数目可以根据需要增加或减少,这种类型的系统可扩展到大量的用户。
此外,补丁和升级可以像面对一个单一的用户那样轻松的推广到整个用户群。这个级别就是云服务大有作为的地方。