2.3 选择你需要的云提供商
我们已经深入了解了许多不同类型的云及其API、提供的其他服务,以及支撑它们的技术。它们中哪一种才适合你?在做出选择时,该怎样做才不被套牢(lock-in)?通过回顾主要云提供商和应用一个决策标准框架来就项目逐一评估这些提供商,我们将试着回答这些问题。
2.3.1 亚马逊Web服务IaaS云
综合目前我们掌握的信息可知,AWS是一种灵活、低层级的产品(更接近于硬件),这意味着你有更多的可能性。而且,综合来说,要实现更高级的功能,其代价就是“所有事情自己做”,包括如何和何时进行伸缩、移动或复制数据等。
亚马逊EC2运行你提供的平台,支持所有主流编程语言,并且提供了一组工业标准的服务(随着标准组织和开源的Eucalyptus试图把它们定义为标准的云API,它们离标准会越近)。但作为一种IaaS,亚马逊需要做更多的工作,这意味着延长了应用面市的时间。
如果你有如下需求,使用AWS:
- 想使用第三方开源软件;
- 有现成代码;
- 把代码移植到其他语言;
- 未来想要把Web应用转移到自己的机器/服务器;
- 想完全控制;
- 需要对应用进行压力/负载测试(如,加载1000个实例)。
说到避免被套牢,亚马逊EC2表现相当不错,因为就像开源项目一样,亚马逊兼容的服务可以而且也会很容易由其他公司提供。领导者总是着手设置标准。就你目前所能做出的选择来讲,EC2实际上最接近零套牢。
2.3.2 微软Windows Azure IaaS和PaaS云
Azure介于应用框架(如App Engine)和硬件虚拟机(如EC2)之间。微软正试图尽量无缝地完成从桌面(数据中心)向它的云迁移。该公司建议你可以在本地构建和测试应用,然后再把它部署到它的云中。但微软也承认,所有UI和任何数据抽取逻辑必须重写,以应对低带宽的互联网连接。注意,我们说的是它的云。在这个意义上,微软类似App Engine和Force.com,将你套牢在它的云上—由公司运营的云。
如果你有如下需求,使用Windows Azure:
- 已经使用微软技术栈的.NET和SQL Server部分;
- 现有代码采用微软API进行开发;
- 有团队平时就在Visual Studio中用C#进行开发;
- 对被微软套牢没有觉得不妥;
- 想要从桌面到云的混合开发。
讲到被套牢,Windows Azure的表现并不一定就和Google App Engine一样差。尽管它仍然由微软专门托管,但由其他公司提供兼容的云服务也是可能的,因为Windows Azure的核心模块建立在广为人知的SQL Server、IIS和.NET框架技术栈之上。
2.3.3 Google App Engine PaaS云
Google App Engine是一个严格受控的环境—由Google做出让应用线程和数据存储库可以自动伸缩的决策。该环境只支持Python和Java,并且不可能安装任何开源软件。
如果你有如下需求,使用App Engine:
- 无遗留代码;
- 正在构建请求-响应Web应用或mashup;
- 视面市时间为头等大事;
- 不打算做任何特别的事情(安装软件);
- 并不担心被Google套牢。
就套牢方面而言,App Engine是高套牢方案。很长一段时间内,很难想象出其他公司能提供任何兼容的产品,假如有的话。它是专有的,而且Google并没有打算公开其技术。自动伸缩和面市时间有很多好处,但是你为这些好处付出的代价则是近乎完全的套牢。
2.3.4 Ruby on Rails PaaS云
Ruby在计算效率上的代价比其他语言稍微要昂贵点,但随时可以找到大把资源解决业务人员遭遇到的大量“万一我被奥普拉点名咋办”(奥普拉是美国脱口秀女王,拥有巨大的影响力。这句话喻指网站访问量突然上升。—译者注)式的惊吓。由于它无共享架构,因此Rails与云计算是绝配。这意味着你可以产生应用的新实例,而且它们马上就可以运行。开发人员也因为它的高生产率而喜爱Ruby。许多小公司现在都提供RoR云(很多就构建在亚马逊之上)。
如果你有如下需求,使用Ruby on Rails:
- 构建请求-响应Web应用,而且有Ruby经验;
- 非常重视面市时间;
- 不打算做任何特别的事情(安装软件);
- 并不担心被套牢。
对于RoR来讲,套牢的问题并不大,因为前面已经介绍过,有很多RoR供应商可供选择,而且未来会更多。
2.3.5 Force.com PaaS云
Force.com是SaaS服务Salesforce.com的扩展。很多公司使用Salesforce已经很长时间了。他们有大量复杂的销售合同数据库、销售周期的历史、他们产品的信息,以及大量与其他销售过程相关的信息。这些信息形成了公司销售团队的皇冠珠宝,而且公司还需要很多并没有构建到Salesforce.com中的应用。出于这个原因,Salesforce.com创建了一个框架,它使用的后台服务很大程度上跟该公司主SaaS应用使用的相同,操作相同的后台数据,使最终用户可以对其访问和编程。Force.com是构建现有Salesforce.com数据库(如销售合同、内部销售团队、产品等)附加应用的理想之选。
如果你有如下需求,使用Force.com:
- 已经是Salesforce.com的SaaS客户资源管理产品的客户;
- 需要简单的mashup风格的Web应用;
- 愿意使用Force.com特有的编程语言;
- 并不担心被套牢。
我们并没有介绍关于何时使用私有云的内容,因为它是一个非常复杂的讨论。我们将在第4章处理这一主题。