近日,“OSCAR云计算开源产业大会”于北京国家会议中心举行,“开源治理论坛”作为"OSCAR云计算开源产业大会"的分论坛之一,于3月22日下午召开。华为Cloud BU开源总监刘艳华参加会议,并带来《从开源到产品》的主题演讲。现场解答了把开源软件拿到产业中应该关注什么,开源之后为什么回馈社区,回馈社区中要注意什么,以及开源如何增强等问题。
刘艳华的演讲围绕开源管理、回馈社区和商用增强三方面展开。
第一部分是开源管理。
开源管理管什么?从华为公司做的工作来看,第一是来源可靠。在使用外部代码做产品开发时,应该保证外部代码的来源可靠。第二是合法合规。使用开源,要遵守相应的规则,因为开源代码享有知识产权保护。第三是安全漏洞。开源的软件代码是公开的,使用者会基于此做研究,安全漏洞的处理是使用开源之后要做的一个非常重要的事情。第四是可追溯。现在的开源社区各个方面都有,如果用了一个开源软件一段时间之后,网站没人管了,软件找不到了,这个软件就不是可追溯的。第五是生命周期。开源软件特别是大的开源软件,都会承诺一定的生命周期。
个人开发出代码之后,除了遵循标准的License协议之外,还可以有很多附加条款。使用开源软件,除了看到它是BSD,还要看有没有别的附加条款在里面。像Facebook就是一个很典型的案例,它是大的BSD,但是有附加的条款。如果用了开源软件,一定要把许可证考虑清楚,包括有的开源说使用之后一定要请开发者吃个饭,要给开发者发个什么邮件等都是附加条款。
刘艳华还提到了三个重点的License.首先是GPL,如果使用GPL,使用者跟GPL之间的竞争都要求开源,这对于很多人来说是不愿意做的,所以看到有GPL时眼睛要睁大一点,明确是否要用。其次是GPLV3,现在很多公司禁用GPLV3.最后是AGPL,这是最近几年才出的一个协议,以前所有的License都是一个分发,做一个产品分发给你时,使用者要履行开源义务而AGPL是不分发,只供自己使用,AGPL对做云服务的厂商来讲比较常见。
开源有几个通用的游戏规则。第一是开源普遍排斥专利,第二是正规社区或者一些大社区都会通过协议要求代码提供者放弃专利权利,第三是使用者担责,第四是如果代码中包含非代码所有人的专利,使用时会造成专利侵权。
资料显示,在所有的产品中,开源第三方软件占的安全漏洞为88%,在这88%里面又有66%的漏洞是开源软件,如果使用开源软件,漏洞起到一个重要的作用。从开源漏洞数据库可以得知,每个季度平均有1200个左右的开源漏洞暴露,每天都有十几个开源漏洞暴露。很多黑客靠一些公开的漏洞开展攻击,如果产品不及时弥补,那就完全被别人攻破了。因此,使用开源之后安全漏洞的跟踪修复是很重要的事情。
华为在实践中逐渐摸索出来一些开源管理策略。第一个是选型,第二个是内部管理会有选后的申请,使用开源软件之后,公司会有一个融入行业组织,把业界的都统计过来,哪怕产品发布三五年之后,只要有安全漏洞,华为都会告知产品让它弥补安全漏洞。第三个是开发阶段,要跟踪社区做一些缺陷修复,如果有缺陷要及时弥补和修复。第四个是测试,实际上开源软件拿过来的时候成本是比较低的,由于不断对它进行测试融入,这个成本相是必须要付出的。
第二部分是回馈社区。
回馈社区是一个麻烦的事情。比如说拿来使用一个开源软件是很容易的,但是如果想搞一点东西回馈社区往往很难,因为你要跟社区的维护人员沟通,说明改代码的原因、它会带来什么好处等等,因此很多人不愿意回馈社区。刘艳华说这是一个成本分析,如果使用者不回馈社区,刚开始使用的时候,竞争力收益很高,维护成本很低,但是随着时间的推移,开源也在发展,使用者的竞争力收益会越来越低,维护成本则会越来越高,最后会发现维护成本比竞争力收益低了很多。
如果使用者回馈社区,为什么收益还会继续涨?因为社区是在发展的,使用者能够持续获取社区的成果。维护成本开始上涨是因为使用者开始有一个熟悉开源软件的过程,熟悉完之后,维护成本将越来越低,这相当于一个自维护成本陷阱。
熟悉、接纳并融入开源文化,做到开放的源码、设计、治理和开发“四个Open”。
贡献社区这块还有一个问题,开发者进入新的社区,抱着一颗好心想为社区做贡献,但是并没有得到社区的认可。因此需要循序渐进,做受欢迎的开源公民。例如从完善文档开始,最后写运行测试、报告缺陷,提交补丁,提议开发新功能和代码检视。
合理公允的解读贡献排名。因为很多商业公司在做社区,可能就会追逐说一定要开始宣传,纠结于在这个社区里面排名第几。
第三部分是商用增强。
使用开源之后会发现离客户的需求还会有些差距,需要进行商用增强。常用的举措是商用增强的方法论,即用商业牵引开源,与用户和社区联合创新,通过交付客户的产品和解决方案,获取需求,同时创新贡献和应用。
商用增强典型的功能是维护社区的功能。一个是工程化的东西,社区更多考虑的是技术难度,一个是面向场景的东西,针对业务场景,第三个是性能的提升,跟场景有关系,第四个是关于可靠性的。
另外,再讲讲商用增强的拓展原则,简单介绍,就是增强一定要是解耦实现,不破坏开源架构,不影响社区原生接口。因为开源之后,外面往往还有一层,这也是很关键的。结果是什么呢?相当于你用完之后你的产品和OpenStack的标准接口是吻合的。
欲知详情,点击链接下载ppt原文:
http://www.idcquan.com/Special/OSCAR2018/live.html
或
http://cdn.opensourcecloud.cn/zt/2018cloud/ppt/
【中国IDC圈原创,未经授权禁止转载】