【eNet硅谷动力专稿】许多人都关心微软新的Windows Azure平台与亚马逊的EC2平台相比怎么样,或者谷歌打算如何利用云服务。到目前为止,这些所谓的“云平台”并不像它们看起来那样互相存在激烈的竞争关系。而用户真正想要知道的是需要了解这些平台的哪些方面,以及它们可能对未来的应用意味着什么。
首先,先来澄清一些术语。我想要谈论的是云计算的主要平台---换句话说,也就是云计算软件开发商用来托管应用的平台。最终用户不会直接使用任何这些云平台工具---相反,他们非常有可能使用部署在云中的应用,从商业应用(例如Salesforce.com和NetSuite)到消费应用(比如在线邮件、Google Apps或Picnic)。“软件即服务(SaaS)”解决方案很受关注。开发商可以利用这些平台开发各种各样的在线应用,既可以是Web商业应用又可以是企业内部应用软件。
显然,目前最受关注的云平台是亚马逊的Amazon Web Services,它包含了各种各样低级别的开发工具。而Amazon Elastic Computer Cloud (EC2)是这些工具中最受欢迎的一个Web服务,它可以让你将自己的应用分配给任意多的“计算单元”,只要你需要它们。一个单一的默认实例包括1个“虚拟核心”、1.7 GB内存、160 GB的实例存储空间(只能存储与这次会话有关的内容),费用为一小时10美分。除此之外,你可能还要使用该公司的“简单存储解决方案(S3)”,如果存储容量尚未超过50TB,每GB每月的使用费为15美分,超过50TB后,费用会有所降低,此外你还需要为某些事务单独付费。Simple DB数据库是亚马逊提供的另一个信息存储服务,同样也需要付费。
亚马逊平台最基本的优点是简单:当你需要的时候,你就能使用你想要的存储空间。该平台本身似乎水平非常低,但是却非常灵活。现在,不同的操作系统、数据库、应用开发环境等都有 “机器映像”,大多数人一般利用各种开源工具通常是Ruby on Rails来使用这些“映像”,不过最近亚马逊推出了一个试用版的亚马逊平台。它能够运行Windows Server和微软SQL Server。亚马逊表示,在将来它还打算给自己得平台增加一些新功能,比如负载平衡、计算能力自动缩放的、以及更多的监测和管理工具。
使用亚马逊平台的用户基本上可分为两类:其一就是那些已经开始网上业务的企业,他们希望能够得到他们所需要的计算能力,但却不想花钱或雇用工作人员来购买和维护设备;另外就是那些现有IT环境与目前的计算需求非常不一致的用户,比如流量偶尔会达到峰值的网站,或者需要之需要断断续续运行某个特殊应用的企业。大多数公司在刚开始的时候使用EC2平台,而一旦业务正常运转,他们就会使用自己的服务器(通常是在一个托管环境中),因为这样是更符合成本效益,但许多企业还继续使用EC2处理峰值流量。谷歌的App Engine是一个新的云产品。它仍然处于免费试用阶段,并且目前这个工具仍然又诸多的限制。据我所知,亚马逊“给你”的虚拟机可以安装任何软件,而谷歌的App Engine“给你”的是一个固定的环境,该环境以Python语言、Django开发框架、谷歌BigTable数据库/存储系统和谷歌文件系统Google File System(GFS)为基础。就目前而言,App Engine向开发人员每月免费提供500 MB的存储空间和500万浏览量的计算能力,而且谷歌已经宣布了一个定价方案。例如,该公司称,开发人员应该为每小时CPU时间支付10至12美分。
由于App Engine紧紧围绕谷歌自身的运营环境,应该懂得这些编程语言和开发框架的开发人员更容易上手。但是,有些开发人员不打算使用App Engine,因为它似乎比亚马逊的解决方案限制更严格。尽管如此,目前已经有很多开发人员使用该平台,并且近来我已经听说有一些其它技术公司正在讨论如何将Appngine应用移植到其它环境中。
在11月初举办的开发人员大会上,微软推出了用于云服务开发的Windows Azure平台,这标志着微软也开始进军云领域。Windows Azure目前仍处于测试阶段,微软并没有给出最终发布的时间表,但是开发人员能够访问微软的Community Technology Preview。
Windows Azure已经得到了业界极大的关注,主要是因为它看起来像是广泛使用的微软开发环境的一个自然扩展,尤其是在业应用开发领域。
与亚马逊网络服务类似,Windows Azure实际上在一个单一的平台上集成了各种不同的服务。事实上,微软在职业开发人员大会上使用了“Azure Services Platform”这个短语来描述该平台,它既包括面向开发人员的工具,比如.NET服务和SQL服务,又包括企业应用软件,比如SharePoint Services、Dynamics CRM Services 、Live Services等。可以说,Windows Azure囊括了微软大所多数面向消费者的应用。
但是.NET的服务才是让目前最受关注的,因为该服务才是开发人员开始用来开发应用的。事实上,从我参加的会议来看,在Visual Studio 中为.NET框架开发的应用开起来迁移到“云”中要相对容易些。起初,Windows Azure是专为这种“托管应用”而设计的,尽管微软已经讨论在明年将该平台面向“非托管应用”和其它框架开放。基本版本的Windows Azure包括一个简单的数据库,但开发人员也能够连接到一个基于云的SQL Server。
Windows Azure一个很大的不同就是,虽然微软打算提供自己的托管Azure服务,不过该平台的设计目的却是能够在本地计算机或公司服务器上运行。这应该使得测试应用更容易实现,而且也使企业应用技能在企业内网上运行又能在外部互联网上运行。用Windows Azure开发的内部应用可以很容易地扩展到云中满足高峰期需求;或者对现有的.NET应用进行修改成云应用。在PDC 2008大会上,微软演示了如何将普通应用转化成云应用以及增加服务器实例,演示效果看上去非常好。不过在PDC上展示的代码仍然尚未完成,什么时候它能真正用于现实世界仍然是一个悬而未决的问题。
综上所述,亚马逊、谷歌和微软在云计算方面各有所长。亚马逊是最早进入该领域的厂商,它利用互联网标准和开源平台创建了一个非常灵活的平台。谷歌正在利用它在大型数据库和内部开发方法方面取得的成果努力建立一个强大的但更严格的云环境。而微软则利用其传统的开发人员和开发工具的广度等优势以创造一个尽可能提供各种服务的平台。随着时间的推移,我预计我们将会看到所有这些平台都会开始互相靠拢---亚马逊引入Windows Server实例就是一个先兆。
当然,目前在云计算领域很有很多其它的厂商,既有各种各样的SaaS软件开发商(最著名的就是Salesforce.com),又有很多提供托管应用的小型软件开发商。