个人简介 易立毕业于北京大学,获得计算机软件与理论专业硕士学位, 他于2001年加入IBM中国开发实验室,现在是资深云计算架构师,负责IBM平台云产品IBM PureApplication System, IBM Workload Deployer等的设计与开发,关注于云计算尤其是Platform as a Service领域,并为客户提供技术咨询和服务。在此之前他在IBM中国开发中心还负责和参与了一系列Web 2.0以及SOA产品的研发和创新。
QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、杭州、旧金山召开。自2007年3月份首次举办以来,已经有包括传统制造、金融、电信、互联网、航空航天等领域的近万名架构师、项目经理、团队领导者和高级开发人员参加过QCon大会。
1. 各位InfoQ的读者们大家好,我现在在QCon北京2014大会的现场,今天很高兴邀请到IBM资深云计算架构师易立先生接受我们的采访。那么首先请易立简单的介绍一下您在IBM做云计算这块的历史,包括您所负责的PureApplication System等产品,跟其他云计算相关产品线的关系,各自的定位如何?
易立:各位InfoQ的朋友大家好,很高兴在这跟大家做一些分享。我是来自于IBM中国软件开发实验室的易立,在01年北京大学毕业之后就一直在IBM进行软件开发;然后我是从09年开始做Platform as a Service产品的一些开发,我们的产品最初的是IBM Workload Deployer,后边就成为了IBM PureSystem专家集成系统里头的一个重要的成员,就是Pure Application System。它的一个理念就是开箱即用的云平台,也就是企业只要买回来一个机架,这个机架上包含了存储、计算,以及网络等Infrastructure,包含了上面的虚拟化软件,以及中间件能力,用户可以在几个小时之内就开始部署应用,而且应用也能够满足各种各样云应用的一些特征,能弹性伸缩,自动恢复等等。
这里头一个很重要的能力就是预制的专家模式,而这些专家模式是预定义的一些软件的架构,包括我们说弹性伸缩的这样大规模的Web应用模式,还有像业务流程、消息中间件等等,这些东西都能大大的加快应用的开发部署上线,它是IBM在企业面向私有云一个非常重要的产品。
当然除了Pure Application之外,在Pure System Family里头,还有Pure Data System能够帮助大家做各种各样的数据服务,包括online transaction、data analysis、big data等等,IBM的云产品线除了私有云这边,在私有云这个领域还有另外一个产品叫IBM Smartcloud Cloud Orchestration,它能够帮助大家通过利用OpenStack技术,利用现有的硬件搭建私有云,并且也能用刚才我们提到的这种专家模式这种概念,用模式的方法,在OpenStack的平台上来部署和管理运维应用。在今年2月份,我们刚announce一个新的一个产品,是在Softlayer上,就是IBM在公有云上的一个Pure Application Service on Softlayer,它也是利用我们刚才说到的专家模式这个理念,能够非常方便在公有云上来部署管理应用,甚至就说我们可以构建一个混合云应用,我们可以在企业里头,把企业私有云和公有云结合在一起,然后让它都统一的用专家模式这种技术来部署、运维应用,比如说我可以在公有云上开发,在私有云上部署,然后我可以把公有云和私有云构建一个完整的云环境,工作负载可以在私有云和有云之间进行弹性的伸缩进行扩展,这是IBM在开放云服务上几个重要产品的一个介绍。
当然我们可能今天参加大会的同事也都看到了,有一个很重要的announcements,IBM Bluemix,它是一个下一代的公有云平台,它把开发、运维和整个生命周期中的各种各样能力都提供出来,包括像开发的服务,包括各种各样面向新一代移动互联等等这样的开发能力都结合在一起,这样用户就可以在公有云上来进行完整的应用的开发和部署,这个是一个简单的介绍。
2. 介绍一下您现在的职责吧。您这块是属于产品研发部门,还是实施支持方面?您所负责的团队,他的上下游关系是怎么样的?
易立:刚才我已经介绍了我是来自于开发实验室,所以我的职责是产品的研发。刚才我们提到了专家模式,不停的在谈,用专家模式这种方式来部署、运维和开发应用。我负责Pattern Engine的架构设计,以及负责Pure System前端的技术,以及相关pattern开发的工具的架构设计。我们团队像IBM很多项目一样,都是从采用国际化开发这种方式,中国团队是国际化团队中一个非常重要的部分,我们的团队分布在全球,北美、欧洲,中国。在这里头,不同团队有不同职责,中国团队主要负责的是刚才说到的pattern engine——模式引擎的开发、管理控制台,监控、弹性伸缩这些能力,还有相关的一些pattern开发的工具,这些都是中国团队侧重的部分。
3. 您提到的专家模式,我理解它好像是一个服务器或者是应用部署的模板?
易立:远比这件事情要广泛。我们所谓专家模式,实际上就是把我们在很多实践中的最佳的应用部署和运维的经验都capture下来,变成一些可以复用的资产,这些资产包含了一些常见的模板,预制了一些软件架构,同时它能够自动化很多复杂的运维流程,比如说弹性伸缩,比如说应用的升级、更新,自动的故障恢复。它里头除了刚才说的部署这一个阶段以外,也可以在整个软件生命周期中都扮演非常重要的角色,同时专家模式也对DevOps、持续交付有非常重要的一些帮助,因为通过一个预定义的专家模式,我可以确保我的开发测试和部署上线的环境是严格一致的,模式可以根据我的不同需求,通过不同的参数设置,能够生成相应的环境,比如说我的开发环境相对来说计算量要小,需要连接测试数据库,但是如果要上线、生产的时候,我要连接更大的一个数据库,要分配真实的、足够多的资源,同时连接真实的数据。
在传统的方法里,任何一个在开发测试过程中的配置失误都会导致一些不可预知的问题,所以说大家以前非常辛苦的进行应用上线测试,这些都非常非常痛苦,但是通过这种专家模式,他能把infrastructure变成Code,他能把这些Pattern进行管理,然后呢,同时这个Pattern可以在这个软件过程中可以重复部署,可以用于测试,然后可以上线,能大大改善整个开发流程的质量,降低成本。
4. 假设说我们现在已经有一套开发流程,有一套部署的方式,我们已经有一套东西在那里跑,如果现在想要应用这种专家模式的最佳实践,我可以一点一点来吗?
易立:当然是可以的。首先IBM是一直很强调开放和扩展的公司,所以我们在设计我们的云平台的时候,首先第一个点考虑就是我们希望它是一个Open的一个系统,然后可以很容易的把企业已有的一些资产搬到云上来,让他们能感受到云的一些好处。比如说如果现在您已经用到了一些我们已经开发好预制的一些中间件,比如说J2EE的应用服务器,流程引擎、数据分析,等等,这些已经预制好的这些能力,就很简单,只需要把您的现在现有的应用迁移到专家模式上就可以了,然后直接就可以在云上部署,它就可以部署在您的您的private cloud还是public cloud,都可以采用一致化的方法来部署和管理,而且他也能够立刻能获得像之前说的弹性伸缩自动,故障恢复,等等集成和监控能力,等等。
但是如果现有的一些模式不能满足需求,这在企业里太正常,因为我们见到所有的企业客户,每个企业客户都有自己特殊的一些应用,特殊的一些中间件,我们也提供了一些工具能够让他们把现有的应用和能力变成专家模式,因为每个企业他都有自己的process,都有自己的automation和运维方式,我们希望他们也能把这些东西,变成他自己专家模式的一部分,而这些东西也能够持续的不断的重复的部署,能够在公有云、在私有云,各种不同的云环境上能够有个统一的管理,能够改善它的流程。所以通过这种方式,我们可以帮助把企业客户里的很多的传统企业应用都迁移到云上,让它真正从云计算中受益
5. 所以他还是一个需要迁移的过程?
易立:这里头是有一定的迁移过程,但是如果说,比如说,如果现在就已经是IBM的中间件,IBM已经提供了很多这样的迁移工具,基本上,我们可以捕获现在的Web应用,WebSphere Application Server这样的应用集群里头各种各样配置,然后把它capture下来,优化好,最后发到云上,就能完成一个和您,在您的物理机上一模一样的一个执行环境。这样的话,就是说它的迁移成本是非常低的。
6. 那还是很有意思的。那么介绍一下您现在你们内部研发过程中,对PaaS的应用情况,就是你们现在已经整体都在使用了吗?
易立:我们本身是做PaaS云的,做PaaS云的和用PaaS云的是两个稍微不太相同的概念。不过我可以回答一下,就是在我们的开发过程中,实际上我们也是利用了我们自己的软件来帮助我们进行一些开发,比如说我们从代码check-in之后,也会通过自动化的集成,Build,集成系统,编译,编译之后,他是通过我们自己的产品创建出一个小的云环境,在此之上呢,开始进行单元测试,自动化的功能测试,当功能测试这些都完成之后,我们认为它是一个好的Build,这个好的Build,我们可以自动把这个Build去更新我们的专家集成系统。因为专家集成系统,不但是包含了上面的软件,还包含了上面的硬件,就包括硬件固件的更新,上面hypervisor的更新,我们能够自动化的把计算节点的firmware、网络的firmware、存储的firmware以及管理和虚拟化hypervisor ,以及上面操作系统的更新都完全打到一个Build包里头,我们可以利用Build对整个机器进行更新,这个过程实际上是完全自动化的。目前在Build流程还不能够自动选择和更新硬件环境,但是尽量已经减少了很多人的交互,而且我们也已经采用一些方法来鼓励我们的开发人员来培养这种运维的经验,就是我们让开发者,Developer as operator,我们让每个开发的同事都有机会轮流去当rack——就是我们的那个Cloud in a box的admin,让他们去感受真正用户在使用我们的云环境中遇到哪些的痛苦,更新是不是会有问题,如何收集日志,哪些错误信息是不是足够详细能够帮助代码进行分析,出现问题怎么恢复。
通过这些过程,实际上也能够帮助我们去积累很多的经验,就是这里头,所强调的是几方面,第一个就是我们在开发过程中,也采用了我们的专家模式这种方式,用我们的,先是一个种子系统,然后自动生成出很多的的一些开发测试环境,能进行自动化测试,都通过之后,而且我们能够自动化的部署和更新,把一个完整的云环境,从硬件到软件进行更新,这件事情是很酷的,因为很多同事,尤其做软件的同事可能很少有机会去修改网络的配置,修改更新hypervisor,因为很多以前都是要很多是系统管理员才能做的事情,但是现在我们已经能够做到一个完全没有这样经验的同事,就能够很快的把一个新的Build更新到整个rack上,而且我们在内部开发中,因为我们IBM很多的内容团队,就像刚才我说的,像应用服务器,数据库,还有像流程这些他们都是要把他们的应用当做pattern,这种专家模式进行交付,所以他们也需要我们的rack进行一些开发和测试,所以这整个过程都是一个相对来说是一个比较频发的过程。我们在这个过程中也发现很多问题,也希望它变得更加自动化,更多的质量保证的机制能够帮助我们把这些事情做得更好,因为只有我们把这个痛苦的事情都做了,客户才能真正享受到一个好的一个专家运行环境,给系统带来的一些好处。
7. 好像在OpenStack他们也有一个Triple-O的项目,就是在OpenStack上去运维,然后去更新升级,OpenStack项目本身。
易立:因为我们在项目开始初期就是采用这种方式,这是有一点不同,因为我们是在做PaaS,不是在用PaaS,但是做PaaS有它自己特殊的地方,同时我们也要考虑到在使用PaaS的人他关心的什么,他不希望系统宕机,他希望今天减少这个系统的中断,然后我们要把我们做的东西做好之后才能更好的为他们服务。
8. 你们现在整个内部的体量大概是多少?
易立:不同的团队的云环境它是不一样的。我们部门因为是做专家系统,Cloud in a box,所以说我们每一个大的机架上,几十个计算节点就是完整的一个云,它上面能运行几千个虚拟机,在我们Raleigh实验室一个大的datacenter里头,我们有60多台这样的rack,还是很impressive;另外就是在中国开发实验室这边也有相应的一些,面向开发测试相应的云,具体数目我不是很清楚,大概一万五千或者更多的虚拟机在运行,因为它支持很多同事的日常的一些开发测试的活动,当然有些部门也有自己的需要,他有他自己小的Cloud,具体的数字他们可能更清楚一些。
9. 你们也会直接去跟客户沟通吗?
易立:你知道,成就客户是IBM一直的一个口号,不但是口号,而且是IBM一直在实践的一件事情。既使是在开发实验室很多同事,我们平时有很多机会跟客户之间交流,因为从软件,从我们架构这些软件的一开始,我们并不是在闭门造车,从项目开始去跟客户有很多紧密的一些合作,然后我们去了解他们真正的痛点之后,我们会制订相应的软件的这些开发的一些Feature Set,在这个整个开发过程中,我们也不断的会跟客户之间交流,我们有专门的customer advisory board,顾问委员会,就会请一些比较资深的客户的IT人员来去跟我们一块讨论,我们可以展示我们的一些最新的成果,他们也会有些反馈进来;同时呢,因为我们是中国的实验室,我们跟中国的客户也有很多的沟通,所以也有很多机会到客户现场,去跟客户的一些IT人员和他们的CIO、CTO一块去对他们现有的一个IT系统进行规划,然后帮助他们去考虑在云计算的时代,怎么让他们的企业IT系统变得更加的敏捷、弹性,能够满足他们的业务目标的发展。
10. 就您所接触的一些客户来说,您觉得刚开始跟他们沟通,他们理解的PaaS跟你们理解的PaaS,重合度高吗?
易立:问题有几方面,首先PaaS这个概念,大家是比较模糊的,不像IaaS,大家非常清楚,提供虚拟机,这件事情很清楚,一句话就能说明白,也不像SaaS,SaaS就是以服务的方式来交付应用,大家也明白,在线的邮箱、微博这些都是SaaS,大家都很清楚。但什么是PaaS?大家就不是特别清楚。
在我们的理解里边,PaaS是一个云上应用执行的支撑环境,它能够帮助云上面的应用达到它自己所要实现的一个业务目标,它能够去组装不同的服务能力,而这些服务能力能够满足不同的服务质量保证SLA,然后由PaaS在具体的IaaS基础之上来分配相应虚拟化资源,就比如说分配相应的虚拟机资源,配置相应的网络存储,然后把中间件按照SLA所需要的描述的能力,进行智能的部署,来满足业务应用所关注的那些指标,所以说呢,和IaaS不一样,PaaS关注的是应用本身,关注的是应用想要达到的一些能力,以及怎么利用云平台去帮助他实现业务目标。
所以现在的很多客户,在云计算这个成熟度的模型上,相对来说还只是做了最初的虚拟化,通过虚拟化实现了应用的聚合,能够把若干个应用部署在一个硬件上,提高硬件利用率,很多客户现在成熟度模型还是在这样的一个程度。
但是我们知道这样的,如果只停留在IaaS这个基础上,是远远不能达到大家对IT发展的那种期望和要求的,所以我们也是期望,我们把PaaS这种以应用为中心的这种理念,慢慢的跟大家进行沟通,然后大家会逐渐的去接受。
其实我觉得QCon是个很好的平台,大家去看到的很多Session里头,大家都在讲,在运维一个大规模的网站的时候,我遇到了什么痛苦,我遇到什么问题,我在运维上有什么经验——其实这就是我们的专家模式,而且很多的经验,无论是中间件的部署,还是他们运维的很多经验,这也是我们实践专家模式的目标。只是现在很多人都是通过自己的摸索,通过失败去积累这样的东西,而IBM已经有很多这样的经验,有很多的案例积累起来,这些是已经久经考验的一些模式,我们希望它变成可以复用的资产,可以被用在各处地方,这样大家就少了很多不必要的一些effort来去自己去摸索,这也是我们面向企业的云平台一个很重要的目标,就是我们能让客户关注他自己应用的本身,不用关注于软件的的部署,以及云上运维,的最佳实践,pattern就已经在那边,它已经是可以ready to deploy、ready to run。
11. 看来这个专家模式应该好好研究研究。
易立:这个概念,我觉得也存在很多年了,只是说我们把它变成一个大家真的可以执行的东西。因为很多时候,就比如说我们的一个presentation,一个sharing,也是一个模式,但是它大部分只是告诉大家一个设计的架构,一些理念,一些经验,我们是要让它这一切变成自动化,标准化,可以重复部署的,只是往前再走一步。
12. 但是很多客户,他会有定制化的要求。你们现在对这方面怎么处理的?
易立:这也是一个非常现实的问题。因为对企业来讲,定制化不是可选项,是必选项,因为每个客户都有他自己特有的IT的需求,包括了他的IT流程的特殊性。所有的客户都很关心我的云平台能不能很好的去支持我企业现有的应用,能不能跟我企业现有的IT的管理的这些流程结合在一起,所有的客户都在问这件事情。
其实这件事情,要想简单回答,那就是:只有实现平台的开放性和标准化才能做到。因为只有这样的话,我才可以让云平台所提供的能力可以很容易的被别人消费,可以很容易集成到现有的IT系统里去。如果提供的是一个封闭系统,我只能用被提供的这个OS,我只能用这个平台上支持的中间件,那很难满足企业客户的一些需求。所以说,扩展性方面,就是我们在设计之初就非常考虑这些地方,包括说怎么支持现有客户的操作系统,有些客户对操作系统有很严格的要求,比如说我目前使用Redhat 6.4,也许6.5是更新的版本,因为他不认可这样的一些新的OS,他是不能把它这样的操作系统应用到生产环境里头。有些情况需要微软的Windows操作系统,因为我的有些应用就是需要运行在Windows系统上,还有的我有各种各样中间件,比如有开源的,商用的中间件,甚至有套装软件,像用友,SAP这样的ERP Solution这样的。一个好的PaaS应该能够提供这样的一些扩展性,能够把这样不同的能力都带到企业环境里头去,另外也能跟企业的已有的监控系统很好的结合在一起,不能说是你变成了企业IT里的一个孤岛,你这儿东西都可以管理的很好,但是别人不能很容易的去管理你,这是不可以的。这是从扩展性角度来说。
另外一个就是从开放性,开放性这点也是非常重要的,为什么呢?只有成为开放标准才能实现互操作,才能真正的实现良好的集成。在这方面,我相信大家都知道IBM在支持开放标准上一直有很好的信用,无论是在Linux,到现在的云时代对OpenStack的支持,IBM都是有很大的投入。比如说我们刚才说的专家模式,实际上IBM也把我们的很多的实践和理念贡献给标准化组织和开源社区,然后把这些东西变成标准化和规范化的一部分,开源产品的一部分,比如说在OASIS社区里头,它的TOSCA标准其实就是对专家模式的一个规范化的描述,它定义了服务的组装,以及在云应用的Operation它的模式对应的概念叫Service Template。然后它在OpenStack开源社区里头,我们利用我们在Software configuration、 deployment 和Operation上的概念,加强了它已有的Heat这样的Orchestration工具,我们让Heat不再是只是做IaaS的组装,就是提供什么样的虚拟机,添加什么样的网络,添加什么样的存储,不再只是这样,而是的组装应用上面指明要装什么的软件,这些软件以什么样的方式来进行交互。我们不断的把这些模式的一些能力变成标准化的规范,变成开源里的一些实现,这样才能为未来实现一个真正的无边界的一个云计算来进行一些帮助,这样大家的工作负载,应用,不用担心是跑在A公司的云上,还是B公司的云上,而是说,它应该能在自己企业的公有云上,私有云上能够自由的迁移,我们考虑的只是说我需要什么样的能力,这些能力进行什么样的组装能服务于我的业务目标,我不应该去考虑下边那么多私有的技术、专有的标准。用户应该越来越多把他们的IT的资源和精力花在对于他们业务来说最重要的方面。
13. 所以你们的模板和OpenStack Heat Template是兼容的?
易立:在Heat Icehouse版本里头,它有一个叫software configuration的能力,它实际上就是说我怎么在infrastructure基础之上,然后安装部署软件,这个软件按照什么样的一种方式进行交互,它已经具备了我们专家能力一些简单的一些功能,但是说,还有些其他的一些能力,IBM也会跟开源社区的,一块进行发展,一块去推动,把这个东西变成标准化,成为社区的一部分,同时IBM在像Heat这些开发上也投入了很多一些资源,包括中国实验室,有几个我很好的朋友是专门在做这样software configuration的支持。他们做得东西都很酷,我们也都很开心能有一些我们的这些想法、这些技术,不但能够用在企业级软件上,也能够陆陆续续用在开源的社区上,因为只有这样更多人才会从云计算中受益。
14. 所以其实整体来说,以后这种定制化集成开发的事情会变得更简单?
易立:大家以后更多的应该是集成现在云上的提供这些能力,然后按照它的需求,来选择我需要的各种各样的一些能力,我需要的应用的能力,我需要的数据的能力,我需要分析的能力,然后把这些能力进行组装,进行编排,然后去构建我的应用,因为通过这样的方式才能够让我们更快的能响应市场的变化。同时呢,如果我们把业务上的一些SLA渐渐能映射到在运维过程中的一些流程,部署上的一些模式,他能大大的简化我们的复杂度,让我们关注应用本身,而不是关注infrastructure。
15. 最后还有一个问题,就是PureApplication System你们现在做的这个服务,它主要面向的是企业内部用,还是说会和公有云进行融合?
易立:一开始介绍的是说,我们PureApplication System是我们PureSystem Family的一员,PureSystem Family实际上是,主要的目标是面向企业的私有云,它通过提供一个集成的专家系统来让企业立刻就能拥有云计算的能力,而不用自己搭建——我需要采购硬件,进行虚拟化,进行管理,监控,再构建PaaS,不需要这么痛苦的过程,而是说开箱即用的一个云环境,ready for use。
但是呢,就PureApplication System而言随着IBM在公有云上的投入的加强,我们现在有PureApplication Service On Softlayer,你知道IBM投入11、12亿美金在全球在扩建我们的以Softlayer为中心的公有云数据中心,然后在这样的公有平台上,我们还会把PureApplication的能力提供出来,因为如果用户并不希望买这样一个一体机的机架,他就可以通过租用的方式,从公有云上租用相应的PureApplication服务,来帮助他在公有云上就能部署他的应有,同时更酷的是,我们可以把公有云和私有云结合在一起,然后构成一个无缝的混合云平台,能够让各种各样的场景。比如说大家最常见的场景是说,我希望公有云上开发,私有云上部署,或者说公有云、私有云,我都进行部署,这样能确保整个系统的最大的可用性,或者是说当一些峰值的情况,比如说逢年过节,或者说大的业务负载发生巨大变化的时候,我可以把我的一部分工作负载迁移到共有云上去,这些都是一个很好的解决的方式。
所以说通过这样的一个方式呢,虽说我们是面向企业客户,但是说如果您对企业应用有要求,那就是可以采购,并不是一定要大企业才可以。
infoQ:十分感谢易立接受我们的采访。