互联网IT技术发展至今,流传广泛的架构图可谓成千上万,但真正称得上整个互联网的底层基石的,或许只有唯一的“LAMP架构”——Linux操作系统、Apache服务器、MySQL数据库、PHP/Perl/Python等编程语言。
这个架构的特征是——开源。开源技术吞噬了闭源软件,又成为了商业软件的基石,以此衍生的开源社区更是缩短了世界的边界、开发的边界,促进了全球化的软件研发与创新。随着近年来开源技术的快速发展,越来越多的企业、组织与开发者参与到开源之中。与此同时,开源治理逐渐进入人们的视野,成为开源领域的一大热点话题。
12月18日,腾讯云TVP与腾源会联合主办的TVP开源闭门会正式召开,本期主题聚焦开源的对内修炼:开源治理,通过三场开源分享与一场圆桌尖峰对话,为行业内的你我探索开源的“内功心法”。
内部开源国内外大厂实践
会议伊始,我们请出了开放原子开源基金会TOC副主席、腾讯云TVP、腾源会导师谭中意老师为大家带来了题为《内部开源(InnerSoure)国内外大企业实践》的主题演讲,为与会者从内部开源的定义;起源、好处和难点;国内外情况;大厂实践等维度出发,深入浅出地解构了内部开源的前世今生。
什么是内部开源?
谭老师表示,内部开源,是指从开源社区的软件研发中吸取经验,并将其应用于公司内部软件研发团队的一种软件开放模式。简单来说,就是在内部开放代码,并接受外部门的贡献,用国际内源基金会主席的说法,就是在内部实践“ApacheWay”。谭老师用一个浅显易懂的例子解释了内部开源的发生场景:
TeamA使用了TeamB的一个API服务,现在A有新需求TeamB做了排期,但不符合TeamA的预期现在TeamA有如下几个选项:
1.等待
2.自己做
3.找上级领导协调
4.内部开源
在这样的场景下,内部开源无疑成为了一种最理想化的选择。
内部开源的起源
事实上,内部开源并不是一个新鲜的事物,早在年,便有了最初形态的探索。世界知名的开源活动家TimO’Reilly在年创立了咨询公司CollabNet,给很多传统企业提供开源的工具和咨询,其中一个最典型的案例就是给HP做内部开源咨询,将分散在HP多个部门的个打印机驱动软件通过内部开源的方式,最后缩减到由10个。这是内部开源的缘起之时,但由于当时整个开源社区都还没有兴盛起来,内部开源慢慢归为沉寂。
时至年,另一位开源专家DaneseCooper的出现,让内部开源走向了复兴。年,DaneseCooper受雇于PayPal,负责公司整体开源事务,她推行了很多开源的措施,其中一项就是内部开源。后来她还牵头成立了InnerSourceCommons开源社区,后来成为国际内部开源基金会,专门去推动内部开源的普及,到今年已经有7年的时间。
的当下,内部开源正当时!无论是国际上的微软、谷歌、IBM、NASA等企业/组织,还是国内以腾讯、华为、百度为代表的一线大厂,都在发力内部开源。
具体而言,内部开源的好处有:
1.提升代码质量
2.提高人员能力
3.提升员工满意度
4.打破部门墙
5.减少重复造轮子
6.激励创新
除此之外,在很多企业中,内部开源也成为了外部开源的孵化器,同时也能与DevOps文化相互促进,打造更开放、透明、协作的研发文化。
虽然内部开源很美好,但其也存在各种各样的难题,谭老师总结了以下几个亟待解决的问题:
1.对变化的普遍恐惧
2.“notinventedhere”恐惧症
3.认为外团队的技能不够
4.不愿意做导师或缺乏做导师的知识
5.中层管理的冲突
国内外大厂内部开源实践
分享最后,谭老师为我们介绍了包括微软、谷歌、Bosch、华为、腾讯、百度等在内的大厂内部开源实践。每家企业的内部开源实践出发点各不相同,推进的步骤也各有差异,但都通过内部开源打造了良性的研发文化,推动了产品和技术的创新,减少了重复造轮子,提升了效率。
谭老师最后总结道,推进内部开源,首先要获取CTO级别的领导支持,同时要去争取内部工程师社区的支持,然后从单一项目发展到一个BU/BG,最后形成一个全面的内部开源文化。只有这样,才能真正让内部开源的文化沉淀下来,延续下去。
腾讯开源治理实践
腾讯开源办公室执行总监、腾讯技术委员会委员、腾源会导师许勇老师,带来了题为《腾讯开源治理实践》的主题演讲,系统性地介绍了腾讯在开源治理方面的体系化思考与全方位实践。
推动开源创新发展的三股力量
许老师首先分析了开源创新发展的时代背景,这背后的推手来自于三股力量:政府、开源组织与企业。
1.政府,在顶层设计上,为开源创新的生态发展制定政策法规,以及指导和牵引;
2.开源组织,一类是开源基金会例如Apache、Linux基金会;一类是汇聚大部分开源项目托管而形成的开源社区,例如GitHub;
3.企业,无论是创新的开源技术的出现,还是在业务中的大规模应用和不断进步都离不开企业。其中一类是科技公司例如Google,腾讯,华为等是开源最大的受益者也是贡献者;另外一类是以开源项目为核心提供服务为商业模式的开源软件厂商,典型的如红帽。
而在这其中,企业的作用至关重要。许老师以云计算产业的蓬勃发展为例,剖析了这背后的原因。
随着云计算和云原生的发展,在众多科技公司、开源软件厂商、基金会博弈过程中逐渐形成了下图中展示的云开源生态,并且随着时间推移还会继续演进和变化。
可以看到,从底层操作系统,到IaaS、PaaS再到云原生,每个细分领域都衍生出了众多的头部开源项目,随着被科技企业和软件厂商的大量使用、迅速推广,并通过自身的不断迭代进步形成了事实上的行业标准,比如Hadoop、K8s。与此同时,企业也成为了开源软件的重要贡献者,很多开源项目最早就诞生于企业内部,比如Hadoop源自Yahoo,K8s来源于Google。企业不仅是开源技术最大的使用者,同时也是开源技术最大的贡献者。
腾讯开源发展历程
许老师向与会者梳理了腾讯在开源领域的十年发展历程。从年至今,腾讯的业务发展受益于开源技术,也回馈了开源社区。这其中的关键节点是年腾讯“”变革,把开源协同作写进了变革战略,让开源创新在腾讯变得越发关键。此后,腾讯技术委员会的成立,“开源,协同,云上生长”的新代码文化的诞生,腾讯对外开源管理办公室的设立等等,都让腾讯开源在公司内外部引发高度