【51CTO专访】在之前的一篇访谈中,红帽副总裁、中间件事业部副总裁兼主管Craig Muzilla先生谈了谈JBoss的近况,红帽中间件在混合云策略中的定位,红帽这两年在中间件领域的几次收购,以及OpenShift上开发者的机遇。
下面,在访谈的第二部分,Muzilla先生将进一步探讨Java发展趋势对JBoss的影响,对移动开发方向的支持情况,JBoss团队的运作机制,产品支持与质量控制方面的流程,以及JBoss在大数据方面的一些工作。
红帽中间件事业部副总裁兼主管Craig Muzilla
51CTO:谈谈技术趋势吧。Java的快速发展期是在1990年代,而现在则是移动互联网的年代,有很多人观察到企业也在往这个方向探索,他们想要更加快速的变化。JBoss在移动这方面有什么安排么?
Craig:我们有一个战略,也是我们的理念,就是开放的选择。很多企业和开发者仍然会使用Java,同时很多企业和开发者也开始使用其他的编程模型和语言,比如Ruby on Rails和Ruby,都是在特定场景下使用的语言。不过使用什么语言都好,他们都需要后端提供服务。他们需要一个通用的运行时。他们需要能够管理的工具。他们需要执行交易。他们需要安全性。JBoss核心平台可以提供所有的这些后端的服务。
你提到了移动开发,的确现在有很多开发者针对iPhone,Android等平台开发移动应用,有的是针对现有的应用创建移动版本,有的是创建全新的移动应用,不过所有的应用都需要后端服务,他们需要查询数据库,需要从前端的iPhone或者Android上传输订单和信用卡这些信息到后端去。一个强劲的后端对于企业而言至关重要,Java技术在交易处理等业务的安全性和健壮性都是企业所需要的。所以是的,行业在变化,但是有些需求和10年前或15年前相比,是没怎么变化的。
51CTO:所以您的意思是你们主要还是关注后端的技术么?
Craig:后端是我们的强项,不过我们现在也有一些项目在关注前端。除了刚才我提到的几个编程语言之外,我们有一个TorqueBox项目,可以在JBoss中运行Ruby on Rails,开发者可以用它进行前端开发。我们还有AeroGear项目,是一个用于创建HTML5应用的接口,针对iPhone或Android开发的开发者可以使用这个项目里的代码库创建HTML5的应用,项目本身提供了后端钩子和服务。这些是我们在前端的一些工作,不过我们的主要方向仍然在后端。
51CTO:这些也都是开源项目吧?
Craig:大部分都是社区的开源项目,有些在JBoss.org,有些在其他社区。我们未来会围绕这些项目构建产品,提供订阅服务来支持那些希望使用这些技术的企业,不过目前他们还是单纯的社区项目。
51CTO:真不错。下面我想问问你们内部团队的一些事情,比如你们内部是如何做决策的。您负责JBoss,在研发新产品或产品的新版本时,你们是如何收集用户需求的?
Craig:这样说吧,开源的流程是非常特别的。开源软件跟传统软件开发非常不同,跟IBM和微软都不一样。外面有开发者的社区。我们自己有开发者在做产品,外面的开发者有些来自客户,有些来自合作伙伴,也有很多就是对项目感兴趣,希望贡献代码、合作构建这个软件的。所以,社区在不断地推动项目,有很多新的创意出来。在红帽内部,我们仍然是一个传统的开发流程,把需求实现为产品。
我们先跟客户沟通,收集需求;然后,我们跟开发者沟通,把我们从客户那里听到的东西讲给开发者听,为他们提供一些指引。在客户的声音与社区的想法之间,我们寻找一些产品需要构建的东西,开始构建一个企业可以直接拿来使用的产品。我们提供更多的质量保证,安全性,这些都以一个完整产品的方式交付给市场。单纯的项目是无法做到这一点的。
我们的开发模式跟其他软件厂商有些不同,总的来说这是一个协同的模式。开源的方式能带来更多的创新,我们在开源项目的基础上能为客户带来更多的增值。
51CTO:那么,跟客户沟通的是工程师么,还是你们有产品经理?
Craig:我们的每一个产品都有产品经理。产品经理与社区一起工作,与工程师一起工作。他们聆听客户的声音,收集产品需求。
51CTO:我知道对于很多优秀的工程师而言,他们喜欢技术上的挑战,而不太喜欢处理琐碎的、表层的需求。
Craig:是的,所以我们需要聆听终端用户的声音。比如商业流程管理这个技术,我们这方面的工具就主要都是按照商业用户的需求来打造的,比较少由开发者的理念所推动。开发者往往对非常底层的技术感兴趣,比如运行时引擎,而对图形化界面之类的领域不感兴趣;但是企业用户是关注这个的,所以我们必须确保满足企业用户的需求。
整个过程挺复杂的,有点像是艺术创作的过程,有来自不同方面的很多声音,有些来自开发者,有些来自企业客户,有些来自社区里贡献代码的开发者,有些来自产品管理团队。所有的声音都在迭代的过程中整合到了一起,这需要一定的时间。
51CTO:工程师对整个商业的流程感兴趣么?
Craig:是的。对于项目的成功,有很多不同的衡量方法。其中一种是根据你的项目在社区里有多少人下载来衡量:如果你的项目有很多人下载,下载的人都很喜欢这个项目,他们会反馈很多评论,这是一种成功。但是成功的另一个标尺是这个项目在大型企业的生产环境下是否被使用。这种情况下,你需要一个十分强劲的产品,因为很多企业不会将生产环境建立在一个开源的项目上,他们想要安全性,他们想要质量。对于开发者而言,他们关注自己的工作在市场上是否成功。所以,他们愿意为了产品在生产环境下的运行状态而投入时间精力,而不仅仅是当做一个科研项目来做。
51CTO:对于项目需求的优先级,你们是如何评定的?
Craig:这也是一个协同的过程。很多时候,社区有自己的愿景以及自己的优先级列表,而项目管理团队则知道用户想要什么,企业愿意为什么功能掏腰包。在技术愿景和用户需求之间,有一个协调的过程,有很多平衡要顾及。社区里的工程师喜欢架构上的技术挑战,客户关心的是安全性、可靠性、可扩展性、可用性。我们充当的角色就是尽量让开发者、客户和大企业里的运营团队都满意。这是个非常有挑战的工作。
51CTO:那么,工作的分配上你们是怎样处理的?
Craig:拿JBoss EAP来说,这是JBoss的核心应用服务器,下面有22个子项目。我们有一个Hibernate的项目,有一个针对交易和高可用的项目,等等。每一个项目都有一个总揽全局的项目主管,项目主管来将任务拆解,看看都有哪些工作要做,然后每个单独的项目又各自有各自的项目组长。在项目主管和组长之间会协商出一个任务清单,分派给不同的开发者来完成,完成之后再将所有的代码拉到一起,先以开源项目的方式发布,之后在进行更多质量保证等方面的工作,形成一个产品。
51CTO:质量保证方面具体的工作有哪些?
Craig:这方面的工作比较传统了,我们会逐一检查跨API的一致性。对于产品的每一个单独的组件,我们都有深度的质量测试流程。对于每一个版本更新,我们都要确保向后兼容性。我们要测试产品对不同的操作系统、不同的数据库的支持情况,为所有不同的接口做认证。在开源项目当中是不包含这些的,客户付费订阅获得的服务,正是我们最后完成的这些部分。
51CTO:这样一个流程,这些年都没什么变化么?
Craig:整个流程其实每年都在变得更加复杂。我们每个产品有生命周期,比如一个7年的产品生命周期,对于项目而言是非常快的。对于在社区里面的开发者而言,他们完成了一个项目,比如JBoss 7之后,他们很快就开始进行8.0的工作,将7.0完全抛之脑后。而在产品组,我们要确保7.0能够获得7年的服务支持。
7年的标准支持过后,还有用户想继续使用,还有3年的延长服务期。这就是和社区不同的地方了。社区追求创新,要快速的推动新特性。产品则追求信心,对软件提供长久的支持。尤其是亚洲,比如日本,他们的时间周期都很长。一旦进入生产环境,就需要运转7年到10年。这正是我们提供的价值,作为一个开源软件公司,支持这样长久的一个时间段的信心。
51CTO:那么最后我想问,对于大数据这个趋势,您认为会对JBoss的未来产生怎样的影响?
Craig:对于这个问题,有不同的答案。首先,大数据会非常重要,也越来越流行。所以用户通过JBoss技术创建的应用也会有一些不同,我认为它们会更多的由数据驱动,比如在Hadoop里跟踪客户信息,他们购买什么,点击了什么,在电子商务网站做了什么等等。这是应用层面会发生的一些变化。
所以,JBoss需要能够与Hadoop交互,能够响应数据分析,我们跟这些大数据源交互的API将非常重要。我们在大数据方面也提供产品,比如今年夏天我们发布的JBoss Data Grid,这是NoSQL内存数据存储的产品,通过扩展内存可以降低瓶颈,你可以在内存中直接管理数据。Hadoop是一方面。对于其他的大数据技术,我们也会持续关注。
51CTO:好的。十分感谢!本次采访到此结束。
最后,附上本次采访的视频实录。感谢观看!