如何在企业内部推动开源?

如今,基于开源软件的商业模式席卷全球,国内外陆续涌现出不少成功的创业案例,比如已经上市的 MongoDB、Elastic,国内屡获资本青睐的 PingCAP、涛思数据等。此外,很多头部的大厂近年来也在加大对开源领域的投入,比如微软入主 GitHub,IBM 斥巨资收购 Red Hat,国内的 BAT、华为先后成立开源管理办公室并提出开源战略等。开源已经成为了全球科技公司发展的趋势。

然而,在企业内部推动开源往往不是一件简单的事情,考虑如何在合规、安全等前提下,鼓励员工参与开源项目,形成良好的内部技术文化,并且发掘具有价值的项目,遵循开源法则,推动社区的健康发展,这些都是从企业内部角度来看面临的各种挑战。

钟燕清是微众银行开源管理办公室负责人,目前主要负责微众银行开源治理体系建设等工作,对企业内部研发团队的开源文化建设有着深刻的见解与实践经验。钟燕清作为全球开源技术峰会 GOTC 开源运营与治理分论坛的演讲嘉宾,结合微众银行的开源实践经验,给大家带来了“如何在企业内部推动开源”的主题分享。本文整理自钟燕清的演讲内容,希望对想要在企业内部推动开源的管理者或技术人带来一些启发。

直播回放: https://play.itdks.com/watch/10452151?player

企业为什么要拥抱开源

全球这么多的科技公司为什么会陆续拥抱开源?企业参与开源的好处主要有几个方面:

  • 提升企业形象:开源已经成为全球技术创新发展的源动力,世界上领先的科技型企业都在开源界占有一席之地。开源文化代表开放、透明、共享、包容、奉献等精神,符合社会和企业组织发展与协作分工的新趋势。
  • 加强技术竞争力:一方面是企业通过开源把技术能力完全透明地开放到社区,可以依靠社区来检验技术能力,有效促进创新能力的提升。另一方面,开源社区中包含各种优秀的人才,活跃的开发者社区可以大幅度降低吸纳优秀人才的成本,并持续提升现有团队的技术能力,形成正向循环。
  • 实现商业价值:基于开源项目的商业模式已经愈发成熟,企业的部分项目和产品如果具备商业价值,可利用开源模式加速影响力的提升、赋能合作伙伴、建设生态圈等,从而提升商业化变现的能力。当然,开源模式的选择也需要跟企业核心业务战略挂钩,才能确保投入的持续性,不会让项目成为一个“半途而废”的短期工程。

虽然参与开源会给企业带来诸多的益处,但在实际参与过程中,企业遇到的困难和挑战也有很多。

首先,很多企业的管理者没想清楚是否应该开源,开源之后又是否应该商业化,这也是一种常态。在形成企业战略层面的开源体系之前,很多的开源工作实际上都是“自下而上”的,比如企业中的某个团队或个人发起,缺乏长期战略性地考量。而有的项目也确实不适合商业化,这点也需要在开源之前考虑清楚。 

还有一种情况是来自友商的竞争。比如公司开发了某个组件,但友商已经开源了类似的东西,抱着不能被落下的心理同样选择开源,往往会造成“为了开源而开源”的现象,导致市场上的开源项目同质化,内外部重复造轮子的情况。 

此外,还有因为前期准备不足,导致的人手不足、架构设计缺乏远见、代码质量不高、开发流程需要优化等种种问题。

如何在企业内部推动开源?

因此,在制定企业的开源治理战略时,需要综合多个角度全方位地考量。考虑的问题包括愿景规划、资源投入、合规安全、内部协同、社区运营等。

微众银行的开源发展路径

微众银行作为一个互联网银行,几乎所有的业务都在线上产生,从技术路线上来说与互联网科技公司没有区别,其整个技术架构体系都建立在开源软件之上。所以微众银行在一开始就确定了基于开源的发展路径。一路走来,微众银行的开源发展可以总结为四个阶段:

如何在企业内部推动开源?

微众银行在成立之初,就基于开源软件技术建立自主安全可控的银行核心系统,并建立了完备的开源治理体系,防范合规与安全风险。与很多互联网公司一样,微众银行最初也仅仅是开源软件的使用者。 

在大量使用开源技术的过程中,团队开始把日常使用开源软件遇到的一些问题和优化反馈到上游社区,从而进入第二阶段。这一时期,微众银行的技术团队逐渐深度参与上游开源项目社区建设,积极反馈意见、建议和贡献代码,一些优秀的开发者也在这个过程中成长为社区开源项目的 PMC/Committer,成为开源社区的核心开发者。 

第三阶段,微众银行在积累了一些经过生产环境验证且已成熟的技术实践之后,团队开始把内部的一些优秀项目开源出来回馈社会,同时投入人力建设项目社区,促进开源项目长期良好发展。 

最后,微众银行致力于真正成为国内开源社区的建设者,拥抱开源基金会,把旗下重要的开源项目捐赠出去,利用开源基金会的先进运营体系,让所有项目发挥出最大的潜力。同时,微众银行建立与合作伙伴和应用用户的开源生态圈,共同探索商业连接,实现互利互惠的良性循环。 

成立 6 年至今,微众银行已对外开源 31 个项目,涵盖云原生、大数据、人工智能、区块链、大前端等技术领域。目前,微众银行已经加入 Linux 基金会,成为黄金会员,其向 Linux 基金会捐赠的 FATE 项目已成为 Linux 基金会顶级项目,在联邦学习领域取得了较大的影响力;从 DeFiBus 剥离出来的 EventMesh 项目也已捐赠给 Apache 基金会进行孵化;此外还有 FISCO BCOS、WeDataSphere、Fes.js 等项目均在各自领域吸引了一定规模的用户。

微众开源治理体系的建设实践

以企业的名义推广开源,必须做好风险管控、确保开源项目的质量,同时控制开源项目的总体投入成本。微众银行从组织架构、制度规范、流程/工具等几个方面完善公司内部的开源治理体系。

组织架构层面,微众银行 2019 年成立开源管理办公室,参考开源基金会的组织架构,下设合规、信息安全、知识产权、辅助运营等职能岗位,设立相关流程规范,降低合规、安全风险,给与旗下开源项目以组织保障。

此外,微众开源出来的各个开源项目又分别建设社区,运营机制遵照 Apache 基金会的模式,以社区为中心,激发社区所有参与者的活跃度,促进项目发展。

同时,微众开源团队还在内部建立了技术监督委员会(TOC),通过制定技术标准、解决技术难题、增强跨部门技术交流,推动公共平台建设和内部开源工作。

如何在企业内部推动开源?

制度规范方面,微众银行内部建立了一系列开源相关的管理规范,明确技术选型的标准、安全评估标准、合规评估标准、规范版本管理等,确保开源管理过程有章可循。

例如在开源项目孵化过程中,明确规定了从项目规划阶段到正式开源阶段的工作流程:

如何在企业内部推动开源?

开源项目日常的运营体系也有标准化的管理流程:

如何在企业内部推动开源?

除了制定完善的开源组织架构和制度规范以外,微众开源团队还引入专业的流程/工具,将安全管控、合规管控等嵌入软件引入流程和开发运维过程以及退出管理过程中,并实现流程线上化,一系列流程需遵循制度规范。同时通过进一步升级,将风险管控嵌入工具中,在 DevOps 全流程中实现自动化。

开源项目社区的运营经验

很多企业以为,在做好风险管控、确保代码质量等工作一切就绪以后,将项目开源出来就算大功告成了。其实不然,对一个想要持续发展的开源项目来说,代码开源出来仅仅是一个开始。 

前面提到,一个开源项目的成功,社区运营是非常关键的一环。结合微众开源的运营经验来看,团队持续与国内各类技术社区展开深度合作,将代码托管到 Gitee 平台,软件收录到开源中国社区等,同时不断对外输出包括技术博客、开源资讯、版本更新新闻等内容。此外,团队还会不定期组织技术峰会演讲等线下活动,也会在线上展开社区直播等活动。

如何在企业内部推动开源?

除了持续对外输出内容,建立开发者社区生态之外,企业内部也是一个社区,需要持续运营。这里的工作包括建立企业内部的开源文化,比如总结开源发展历程,在内部推广开源基金会的运作模式、许可证说明等开源指南,定期举办业界最新进展和动态的分享,读书分享会等;建立表彰激励机制,比如设立最佳开源项目评选、杰出贡献者评选,建立积分体系等;提供项目路演平台,给项目团队展示自己的机会;还有项目经验分享、内部开源治理体系建设等。

如何在企业内部推动开源?

企业参与开源不是一朝一夕的事情,所建立起来的开源项目社区也应该具备长期发展的规划与资源投入。只有真正做到把企业的核心业务技术与开源社区运营结合起来,形成良性循环,才能杜绝诸如“KPI 开源”、“无人维护的短期开源”等企业开源时经常出现的问题,构建可持续发展的、健康的国内开源环境。

如何在企业内部推动开源?

GOTC,the Global Opensource Technology Conference,即全球开源技术峰会。该会议由开放原子开源基金会与 Linux 基金会联合开源中国社区共同发起,邀请 10+ 重量级开源基金会与开源社区深度参与,覆盖 100+ 公司的相关开源经验,涉及优秀开源项目 300+。峰会将携头部开源公司和顶级开源项目一起亮相,覆盖云原生、人工智能、物联网、区块链、大前端、音视频、安全、操作系统、数据库、开源治理等多个技术领域,为开发者带来全球最新、最纯粹的开源技术,同时传播开源文化和理念,推动开源生态的发展和建设。

详情请查看:https://gotc.oschina.net/

{{o.name}}


{{m.name}}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/72712.html

(0)
上一篇 2021年8月11日
下一篇 2021年8月11日

相关推荐

发表回复

登录后才能评论