IBM杰出工程师:基于开源技术打造云计算技术堆栈

版权声明:此文章转载自极客头条

如需转载请联系听云College团队成员小尹 邮箱:yinhy#tingyun.com

开源技术在当前云计算领域的潜力令人欣喜,同时开源云系统的选择、搭建、部署、配置和应用也吞噬着技术人员的精力。日前,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关注的开源技术

作为一家云计算技术服务商,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在很多年谈到开放的构思。

从Bluemix看开源技术的实践

基于开源技术,IBM在PaaS层构建了开放的Bluemix云平台,以及该平台上的服务。田忠认为,Bluemix有两个层面。

1.Bluemix一个是开发和运维的平台,在这个平台上,IBM支持各种各样的语言、编程模型,通过不同的机制,将编程、部署、实施、DevOps各方面的能力提供给研发团队和运维团队。大部分的能力都是IBM通过CloudFoundry社区直接做出来,在第一时间把它集成到Bluemix的市场环境当中去。

2.Bluemix也是API经济的承载者,通过在上面越来越多的部署和接入更多的服务。如IBM自身的认知计算、IoT、智慧城市等能力,都通过API服务的形式体现在Bluemix平台上,无论是IBM还是IBM合作伙伴都可以通过上面的服务接入到客户环境下去工作。

尽管DevOps谈得多,API经济载体谈得少,但二者是Bluemix的一体两面。不同的服务在Bluemix平台上也分为三种不同的模式;

1.公共云。通过IBM分布在全球的数据中心资源,公共可以使用Bluemix。

2.专属云。通过专属服务很大程度上可以解决客户对于安全、隐私等方面的顾虑。虽然专属服务运行在公共数据中心资源上,但是数据中心中的这一片区域是专属的,在物理上、逻辑上和其他的客户使用的资源都是分离的。

3.本地云。一些对安全等级要求更高的客户,需要超级私密的空间,他们可以在自己公司的防火墙内建立一个Bluemix实例。

由于IBM的Hypervisor技术,用户可以有一个混合云的方式,在三种层面之间建立自己的云计算技术堆栈。这取决于客户的经济实力、安全需求以及对业务的种种考虑。

CloudFoundry与Docker

容器是PaaS构建的一项核心技术,目前最热门的Docker,在IBM看来,只是容器技术中的一种。Bluemix支持Docker和CloudFoundry两种容器技术共同发展。

1.Bluemix提供Docker服务,用户可以在Bluemix上获得Docker的支持,包括上传、下载,Docker Registry种种的API都在里面,用户可以有完整的Docker体验,能够以Docker的形式去发布应用。

2.CloudFoundry也有自己的容器技术,可以使得用户在不同的条件下,无缝地满足对应用的扩展性、灵活性等方面的需要。甚至在OpenStack也有相关的容器技术。这些不同层面都可以在IBM Bluemix上体现出来。

Bluemix在支持Docker部分没有问题,但Docker有Docker的好处,也有它的挑战。选择哪种容器技术,最终取决于客户自己的需求。如果需要很精细的容器,可以选择Docker服务;如果只是需要把应用放在一个平台上运行,CloudFoundry容器是很好的选择。

CloudFoundry的容器技术如何向前发展,这是IBM团队目前的一项重要工作。因为CloudFoundry要提供的是无缝体验,当应用做好时,把所有的都写在里面,希望得到的效果,如同哈利·波特魔法棒一挥事情就发生了。当然,要更多的自动化就要牺牲某些灵活性问题;如果需要灵活性的时候,就意味着自动化方面要自己多承担一些责任。而CloudFoundry社区也一直在努力。

底层使用CloudFoundry还是Kubernetes、Mesos,同样取决于客户对自己的问题的选择,以及技术贡献的选择,能够解决问题的具体技术路线都是可行的。但不同的企业或者开发者群体需求可能不同:

对于想筹划自己平台技术的企业来讲,可能自成一盘菜是最好的,但底层需要自己配置和优化,相对会比较辛苦;

对于很多的企业,如银行、保险公司,以及创业公司,使劲琢磨如何调整和优化Mesos,可能不如直接使用基于CloudFoundry的PaaS去解决具体业务的优化问题,更好地满足需要。

田忠解释说,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平台提供出来的。

OpenWhisk

IBM最近开源的一个新技术,是一个事件驱动的编程模式。过去的编程大部分都是过程驱动的,如何处理事件驱动需要新的语言、新的处理机制,IBM把相应的Whisk技术完全开源,称为OpenWhisk,项目托管在GitHub上,基于Apache 2许可。OpenWhisk也已经在Bluemix平台上作为一项服务推出,使用Scala实现核心引擎,用Kafka做执行Action时内部消息处理,使用Docker为执行Action的容器,对Node、Swift、Java都提供了原生的支持。OpenWhisk允许开发者专注于应用程序本身的代码,其内置的扩展与冗余能力,让开发者无需考虑为事件运行多个进程实现冗余。

田忠表示,第一时间能够使用新技术,并且功能没有差别,这就是开源带来的好处。在Bluemix上有不少的人在用OpenWhisk,包括Bluemix本身的开发人员。

Blockchain

去中心化的新型分布式数据库技术区块链(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基于开源搭建云计算技术体系的实践和心得。田忠还对开源技术的运营提出建议:拿来主义当然是无可厚非的,但仅有拿来主义是不够的。开源社区的基本精神是利他主义,在共同利他的情况下达到利我的目的。对于云计算和新技术来说,我们需要有利他主义的精神态度,通过共同利益的驱使,一起创建更大更美好的世界。

想阅读更多技术文章,请访问听云技术博客,访问听云官方网站感受更多应用性能优化魔力。

关于作者

郝淼emily

重新开始,从心开始

我要评论

评论请先登录,或注册