Cloud Foundry团队最近推出了Cloud Foundry Core,它是一款Web应用程序,针对一套通用的功能对公共实例(Cloud Foundry Endpoints)进行验证。该应用检测其所支持的服务和运行时,从而让用户提前知晓能否能够移植自己的Cloud Foundry应用到其他云提供商。
\Cloud Foundry是开源的PaaS云平台,最初由VMware / SpringSource推出。因为代码是开放的,任何人都可以创建私有云实例,部署本地兼容的应用程序。部分公司/合作伙伴甚至创建了Cloud Foundry实现的公共实例,试图在增值特性或定价方面加以差异化。
\截止到本文撰写时,Cloud Foundry实例有:
\- VMware官方版公共实例\
- 用于开发环境的Micro Cloud Foundry(在本地PC的VM中运行)\
- AppFog 的公共实例(支持PHP)\
- Tier 3的Iron Foundry公共实例(侧重于.NET)\
- Uhuru的公共实例(支持.NET)\
尽管这些实例共享一组公共服务,但它们也不是完全相同。一些实例支持完全不同的开发平台,在某些情况下甚至支持同一平台的不同版本。所以尽管在理论上,云应用程序应当兼容上述所有平台;但在实际情况中,应用所需要使用的服务很可能缺失或版本不对应。这对不想被限定在特定云服务商的用户而言,是一个致命的缺点。
\为促进云之间的互操作性,Cloud Foundry定义了一组通用的Core Services。它包括特定程序运行时的特定版本。当常用功能中的运行时更新时,老版本即被标记为弃用。为保持市场竞争力,云计算提供商可以在主流运行时之上提供额外的运行时支持。例如,AppFog支持MongoDB 1.8,Uhuru支持MongoDB 2.0,所以从AppFog移动云应用程序到Uhuru时,与MongoDB相关的代码可能需要一些修改。
\随着Cloud Foundry Core的推出,新版本的Micro Cloud Foundry也已经发布。此版本完全兼容前面所述的core功能,同时还增强了原有功能:
\- 支持独立应用程序,如Spring后台任务\
- 支持JRuby应用程序\
- 为Ruby应用程序自动重新配置\
- 支持Java 7(可以使用vert.x)\
- 通过Play2.0框架开发Scala应用\
- 为node.js应用程序自动重新配置\
- 支持Node Package Manager(NPM)\
如需更多信息,请访问Cloud Foundry官网。
\查看英文原文:Cloud Foundry Core: Portability Across Cloud Foundry Vendors
\感谢杨赛对本文的审校。
\给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。