访谈:Paul Fremantle谈WSO2 Stratos
作者Dilip Krishnan译者胡键发布于2010年10月11日
http://www.infoq.com/cn/articles/interview-wso2-stratos;jsessionid=8355C3A77045F5E0DAFF3B591860DA4B
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