WSO2 最近发布了针对企业应用开发的开源云计算平台Stratos 。WSO2 Stratos 构建在WSO2 Carbon 基础之上,并对其进行了扩展,后者是一种OSGi 兼容的中间件。
WSO2 Carbon 平台包含了大量企业中间件的功能,从托管在 WSO2 Web 服务应用服务器和 WSO2 数据服务中的核心服务,利用 WSO2 企业服务总线和 WSO2 业务流程服务器连接和组合服务,到跟 WSO2 Mashup 服务器和 WSO2 Gadget 服务器一起提供界面展示。所有这些都由 WSO2 治理注册库、WSO2 身份认证服务器和 WSO2 业务活动监视器来管理。
Stratos 提供了一个 Web 控制台,使得在多租户环境中动态部署 WSO2 Carbon 产品成为可能。WSO2 称这种在多租户环境里客户动态部署和使用任何 WSO2 Carbon 产品透明进行伸缩的能力为原生云(Cloud-native)。按照官方发布声明的说法,制造原生云产品的关键好处 / 特征是:
- 弹性:基础设施的利用根据使用情况动态伸缩。
- 多租户:支持不同业务单位或地区办公室的应用可以从单一位置交付成本效益。
- 计费、度量和灵活的监视:用户按使用进行控制和付费。
- 自部署和管理:导致应用开发和把它们部署到使用者面前的时间差接近于 0。
- 动态、即时的发现和装配:虚拟化基础设施可以在服务器、私有和公共云之间灵活,甚至部分的移动。
- 递增部署和测试:支持持续更新、端对端操作、就地测试和递增开发产品。
InfoQ 采访了 WSO2 的 CTO,Paul Fremantle,跟他一起探讨了 Stratos 的功能,深入了解了该产品的路线图和发展。
InfoQ:当你谈到原生云时,有哪些特征可以让一个 WSO2 云镜像(cloud image)蜕变成一个原生云平台?
PF:我们认为让一个系统成为原生云有一系列的特征。核心 / 基本的是多租户、自服务、弹性和度量 / 计费。此外,我们还认为动态发现端点以及递增开发和测试也很关键。具体的细节可以从最近的一篇博客文章里了解,我们还有一份白皮书更深入进行了阐述。
基本上,云镜像和Stratos 之间区别的解释可以很容易在 http://cloud.wso2.com 找 到,只需注册一下就好了。Stratos 是多租户、自服务和弹性的。如果使用云镜像,你不得不依赖底层基础设施(如 Amazon EC2)来启动一个新(比方说)ESB 实例, 度量并调整它。利用 Stratos,我们可以帮你独立于底层的基础设施云来完成这些工作,而且以一种对平台要经济得多的方式。
例如,每个 Amazon VM 都是要花钱的。在 Stratos 里,我们在相同的 JVM 上运行多个 ESB 租户,按需增加 JVM。这种方式下,要是有很多 ESB 并没有进行重负荷工作(如,开发 / 测试 ESB),在它们用到足够的资源需启动一个新 VM 之前,它们基本没有什么开销。
InfoQ:我们能不能使一个适合部署到云中的应用(针对原生云应用的特点)成为原生云?
PF:Stratos 的最初目标是能够让现有应用在一个租户内运行。但是,在构建 Stratos 的时候,我们不得不处理跨租 户运行多租户的应用构建问题。我把这称为子租户(sub-tenant)和超级租户(super-tenant)的编程模型。Stratos 的确有办法让 你可以把子租户应用变成多租户应用,但是这种方法并不是完全无需编码的。你需要增加一些理解周围所处多租户环境的代码。这样说的话,其实也不困难。
我们目前还没有任何关于这部分的文档。这也正是我们和被选中的测试用户一起在做的事情。
InfoQ:该平台的移植性如何?要是数据的合规 / 敏感性使其更适合于一种私有云部署的话,人们可不可以在企业内部运行它?
PF:Stratos 完全可以移植运行在企业的内部。其实,这就是我们未来 2 年的主要目标。在制造可以部署到企业内部的开源 PaaS 方面,我们可以说是独树一帜。
InfoQ:对于操作系统 / 平台的依赖性如何,你认为存在很多依赖吗?就对平台依赖的程度来讲,Stratos 处于什么样的水平?
PF:我们支持 Windows/Linux/Solaris,同时也支持多种云基础设施,包括 Amazon、Ubuntu、 Eucalyptus 和 vmWare(很快就会发布)。我认为,绑定到一个平台或操作系统,就像被绑定到任何东西之上一样 - 依赖点越多,从长期看,你得到的自由度就越小。
InfoQ:你们现在支持的度量粒度是什么样的级别?你能给读者举一些被使用的度量值的例子吗?
PF:我们缺省度量带宽、存储、服务调用和用户数(都是以每租户为单位的),但是用户可以扩展度量系统,因此你也可以度量诸如中介或更偏向业务级别的度量值。
目前,我们还没有正式发布这些 [用来扩展度量系统的]API,但我们已经打算这么做了。由于目前还有文档,因此用户当前要是想使用这些 API,他们需要我们的帮助。这些代码目前可以从这里获得: http://svn.wso2.org/repos/wso2/trunk/stratos/components/org.wso2.carbon.billing.core/ 。
InfoQ:这个云产品支持哪种存储模型?
PF:目前,我们支持任何租户都可写的读 - 写注册库,租户可以连接到数据库。我们正规划一种 NoSQL/ 类 BigTable 的模型,但是现在我们的主要关注点是为现有应用提供部署模型,它们大多是基于 SQL 的。
[Stratos] 与 S3、Amazon RDS 和 NoSQL 配合良好。WSO2 目前还不提供任何数据库:我们寄期望于那些现在已经存在的事物上,或者用户可以在 Amazon 上启动类似 RDS 的东西。
InfoQ:那么,这些存储服务是否能以一种平台 / 存储无关的风格(API)获得或者它们是点对点的存储机制吗?
PF:目前,除了 JDBC,我们还没有任何平台无关的数据 API。我们打算将在于 2011 年第一季度发布的 Stratos 中包含一个数据服务和 API。
InfoQ:鉴于 Google App Engine 和 Microsoft Azure 的兵临城下,都是 PaaS 解决方案,而且在构建可伸缩系统方面拥有丰富的经验,WSO2 准备如何与这些拥有广泛经验的巨人竞争?显然,对于多租 户架构来说存在着秘方;你能描述一下你们基础设施的规模吗?
PF:当然,WSO2 在运行像 Azure 和 AppEngine 这类规模的基础设施方面并没有什么经验。然而,我们有的客户正每天运 行大规模的系统,处理上亿次交易。而且,在启动 Stratos 之前,我们已经运行公共云服务一段时间了。我们最开始对于 Stratos 的目标是私有云部 署,我们认为在这样的环境里不存在我们处理不了的伸缩性挑战。至于公共的 Stratos 运行时,我们正将之运行在 Amazon EC2 之上。
InfoQ:从业务模型的观点看,你能不能将你们的模型与像 Red Hat、Novell 等这样的公司进行一下比较。假设大部分构建产品的代码都是由 WSO2 公司团队贡献的,那你们如何保护提供竞争优势的知识产权呢?
PF:我们在 Apache 许可证之下完成所有事情。那并不能真正"保护"知识产权 - 相反是把它公开了。我们采用 Apache 许可证的原因在于,它带来了巨大的合作机会。
我们的主要收入来源是产品支持订阅,它是基于我们软件运行的实例数(即,产品里的 JVM 实例数)进行收费的。我们还提供一组敏捷咨询和服务,其中最 受欢迎的产品是我们的 QuickStart、CloudStart 和 PartnerStart 包。通过一些简单的场景介绍,一般可以让用户在一周内上线运 行。
InfoQ:除了关注标准,你能否分享一些关于产品策略以及将产品包含进产品集中的标准的看法?
PF:一致性和轻便性是我们的首要关注点。我们的目标是确保 Carbon(我们的标准平台)和 Stratos(原生云版本)是完全 模块化和一致的。接下来的关注点实际是由用户驱动的。我们已经根据用户的强烈意愿增加了部分组件。我们构建自己的注册库是因为客户需要一种高效的开源注册 库。我们增加 BAM 是因为客户向我们询问如何监视他们的 SOA,诸如此类。
查看英文原文: Interview With Paul Fremantle On WSO2 Stratos
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家加入到 InfoQ 中文站用户讨论组中与我们的编辑和其他读者朋友交流。
评论