开源技术在当前云计算领域的潜力令人欣喜,同时开源云系统的选择、搭建、部署、配置和应用也吞噬着技术人员的精力。日前,IBM杰出工程师、IBM中国开发中心开放软件与开放标准新技术工程院副院长田忠博士接受CSDN记者专访,基于IBM的实践介绍了云计算领域值得关注的开源技术,以及IBM对开放云计算技术的利用和规划。
田忠认为,基于开放治理、公平贡献的开源技术构建IT体系最符合云计算时代应用开发和迭代的需求。他目前的兴趣主要在OpenStack、CloudFoundry、Mesos、Kubernetes、Node.js,以及IBM最近开源的事件驱动编程模式OpenWhisk。但IBM会不断观察新的技术,及时将符合技术和业务需求的新兴开源项目引入自己的开放技术体系,打造开放的生态系统和成熟的云计算服务,通过其PaaS平台Bluemix以公共云、专属云、本地云和混合云等多种方式灵活地提供给企业开发人员。
开放标准是田忠目前的主要工作。开放标准有几个不同的回路, 随着技术的发展,标准也有新的变化。从最初面向纸张的标准,到现在迎合技术的快速发展到面向代码信息的标准,成为了新的潮流。以开源社区为代表的标准,在过去历史上有很多成功的例子,OpenStack就是一个典型的例子。IBM希望通过开源技术体系,帮助中国的机构建立一套的SOA标准体系,也帮助中国在国际大社区中发出自己的强音。
标准需要得到验证,只有落实到代码才有实际意义,只有满足实际应用需求才能成为持久的标准。对于今天云计算、互联网的世界,如果还是以委员会制度来制定标准——这往往需要经过旷日持久的折中,每一个标准到开始讨论到形成稳定的版本,一般要花两到三年的时间——这显然不符合代码迭代周期的需求。相反,建立基于开源的标准,因为开放、平等,它需要经过整个社区共同的决定,更加容易快速形成稳定的结果,经过验证成为事实标准。
开源的另外一个好处,就是为政企机构解决供应商锁定的问题,以及大量技术资源缺失的问题。因为开源在互联互通操作方面更加便利,例如,相对其他IaaS技术,OpenStack的一些实践在互联互通操作方面已经有了相对更好的开端。
所以,IBM希望融入开源生态系统,将更多的开源技术进入到IBM整个的开放标准体系中来。事实上,国内外的大中型企业以及初创公司也已经越来越多地加入到壮大开源社区、完善开源生态的工作中来。而中国政府开始大规模将基于开源技术的解决方案引入到整个平台重架构之中,也让田忠感到兴奋。
作为一家云计算技术服务商,IBM在IaaS、PaaS和SaaS层都投入研发力量。IBM从IaaS、PaaS、SaaS不同层面都围绕着开源和开放标准建立的基础平台体系,不仅仅是生态系统。
在IaaS层,IBM在OpenStack社区的大力投入并不是秘密,例如,供职于IBM的滕启明博士在M版周期现在commit数量是全球第三。田忠认为,像OpenStack、OpenDaylight等不同的开源和开放的平台,实际上建立了一种以开源技术为先导、以实际的可运行代码为基础的开发模式,并且这个模式进入一个非常蓬勃的时代。
PaaS层,CloudFoundry是IBM的重头戏,其PaaS层提供的Bluemix开放云平台就是基于CloudFoundry构建的。与此同时,对于Mesos、Kubernetes和Node.js等开源平台技术,IBM也都在做大量的投入。
田忠强调,IBM在开源社区的这些投入需要保证“开源和开源是不一样的”。根据他的解释,IBM建立了一种开放的治理模式,需要坚持一些公平的原则,包括公平的贡献,基于贡献的开放平台,无论是谁都可以有资格有权利参加开源的社区,都有平等的权利获得大家共同建设的结果。也就是说,通过一个社区共同做决定使得整个技术和业务的方向符合绝大多数人的需求。基于这种模式,可以保护大家对开源的投资、投入,也保证了大家可以平等地享受好处。但不是每个开源项目都是这样子,那些采用其他模式的项目,很容易会出现这样或那样的问题。
而对于SaaS层面,IBM也会有一个开放API的计划,保证能够有一个统一开放的方式描述大家所使用的API,使API能够以很好的方式进行管理,能够保证API很容易被使用。
围绕IaaS、PaaS和SaaS整个的架构体系都有投入,大家建立自己开源的生态,这样就能够形成所谓的生态系统。田忠认为,OpenStack、CloudFoundry这些成功项目的发展,印证了IBM在很多年谈到开放的构思。
基于开源技术,IBM在PaaS层构建了开放的Bluemix云平台,以及该平台上的服务。田忠认为,Bluemix有两个层面。
尽管DevOps谈得多,API经济载体谈得少,但二者是Bluemix的一体两面。不同的服务在Bluemix平台上也分为三种不同的模式;
由于IBM的Hypervisor技术,用户可以有一个混合云的方式,在三种层面之间建立自己的云计算技术堆栈。这取决于客户的经济实力、安全需求以及对业务的种种考虑。
容器是PaaS构建的一项核心技术,目前最热门的Docker,在IBM看来,只是容器技术中的一种。Bluemix支持Docker和CloudFoundry两种容器技术共同发展。
Bluemix在支持Docker部分没有问题,但Docker有Docker的好处,也有它的挑战。选择哪种容器技术,最终取决于客户自己的需求。如果需要很精细的容器,可以选择Docker服务;如果只是需要把应用放在一个平台上运行,CloudFoundry容器是很好的选择。
CloudFoundry的容器技术如何向前发展,这是IBM团队目前的一项重要工作。因为CloudFoundry要提供的是无缝体验,当应用做好时,把所有的都写在里面,希望得到的效果,如同哈利·波特魔法棒一挥事情就发生了。当然,要更多的自动化就要牺牲某些灵活性问题;如果需要灵活性的时候,就意味着自动化方面要自己多承担一些责任。而CloudFoundry社区也一直在努力。
底层使用CloudFoundry还是Kubernetes、Mesos,同样取决于客户对自己的问题的选择,以及技术贡献的选择,能够解决问题的具体技术路线都是可行的。但不同的企业或者开发者群体需求可能不同:
田忠解释说,Bluemix本身自带了Go、Java、Python、Node.js等一整套的东西,并且提供公共、专属和本地三种模式,应用的技术支持和部署方式都能有更灵活的选择。
从功能性的角度来讲,Bluemix就是CloudFoundry,CloudFoundry就是Bluemix,Bluemix并没有长期专属的功能是CloudFoundry所没有的。IBM全心投入在Cloud Foundry社区,会把Bluemix搜集到的客户对体验、能力的要求,包括在开放标准的体现,都是在第一时间反馈到社区,通过社区来满足客户的需要。既有IBM自己的程序员去完成编程的工作,也经常有社区中其他的程序员一起合作解决这些问题。
Bluemix专有的层面,首先是有更好的DevOps的体验和支持,不管是跑在OpenStack上还是Softlayer上,基础设施层能够提供更多的保证。从开发者的角度来讲,所追求的是更多自动化,能够更容易地scale up、scale out和scale back,更容易保护隐私和安全。
同时,IBM通过CloudFoundry社区完成了service key、service management等能力,从编程角度来讲,能够很容易地与第三方的服务集成。更丰富第三方服务的能力,包括一些基于专业行业知识的能力,都是通过Bluemix平台提供出来的。
IBM最近开源的一个新技术,是一个事件驱动的编程模式。过去的编程大部分都是过程驱动的,如何处理事件驱动需要新的语言、新的处理机制,IBM把相应的Whisk技术完全开源,称为OpenWhisk,项目托管在 GitHub 上,基于Apache 2许可。OpenWhisk也已经在Bluemix平台上作为一项服务推出,使用Scala实现核心引擎,用Kafka做执行Action时内部消息处理,使用Docker为执行Action的容器,对Node、Swift、Java都提供了原生的支持。OpenWhisk允许开发者专注于应用程序本身的代码,其内置的扩展与冗余能力,让开发者无需考虑为事件运行多个进程实现冗余。
田忠表示,第一时间能够使用新技术,并且功能没有差别,这就是开源带来的好处。在Bluemix上有不少的人在用OpenWhisk,包括Bluemix本身的开发人员。
去中心化的新型分布式数据库技术区块链(Blockchain)是最近很火的另一项技术。从功能的角度来看,Blockchain和Open Cloud稍微有差距,但IBM的原则和态度是一样的。IBM认为Blockchain技术对世界的改变可以媲美互联网对世界的改变,所以第一时间把Blockchain带到Linux基金会,在Linux基金会管理之下成立了Hyperledger项目,进行Open Blockchain的开发,大型IT企业到大型金融企业都是Sponsor。田忠介绍,IBM把很多区块技术都捐赠给了Hyperledger(截止目前累计已有百万行代码)。
Blockchain的商业化也体现在Bluemix平台上。IBM希望通过 Blockchain 和Bluemix以及Watson认知计算技术来解决IoT领域的挑战——IoT是IBM公司及Bluemix当前重点投资的一个领域。IBM认为Blockchain可以让IoT设备共享数据、计算力、带宽甚至电力, IoT数据通过Watson接入块链系统 。当然,Blockchain技术的更多应用,目前还处在实验阶段。
当然,以上谈到的并不是IBM投入开源项目的全部。田忠表示,世界每天都是新的,包括开源团队在内,公司内部技术团队会及时观察和分享开源技术的变化,并带到技术管理层和业务管理层,基于业务和技术的需要,决定对于新技术的投入状况。事实上,不断的会有新的开源技术被加入到IBM的要求里面,来满足IBM对整个技术架构的丰富性和对架构延伸的需要。与此同时,IBM也会更多参与到这些项目当中去。
对于最可能影响Bluemix平台未来的开源技术,田忠强调,在开发者层面,团队除了正在做CloudFoundry,同时也在开始参与有利于实现DevOps的新项目,如Mesos,IBM要用etcd去替换ZK,使得Mesos更加轻量化。这些都会影响到未来Bluemix开发者平台的走势和能力。
在云计算时代,开源技术对支持企业应用开发的作用已经不可或缺。本文介绍了IBM基于开源搭建云计算技术体系的实践和心得。田忠还对开源技术的运营提出建议:拿来主义当然是无可厚非的,但仅有拿来主义是不够的。开源社区的基本精神是利他主义,在共同利他的情况下达到利我的目的。对于云计算和新技术来说,我们需要有利他主义的精神态度,通过共同利益的驱使,一起创建更大更美好的世界。