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 )关注我们,并与我们的编辑和其他读者朋友交流。
评论