6月25日,由 Cloud Native Computing Foundation (CNCF) 主办的云原生技术大会在上海举办,腾讯开源联盟主席、腾讯开源管理办公室委员、Apache Member 堵俊平首次公开了腾讯整体的开源战略路线图。在开源的道路上,腾讯不仅将内部优质项目持续对外开放,还积极与国际开源社区协同合作,发挥中国企业的科技力量,推动开源和开放进一步升级。
堵俊平表示:“腾讯开源提倡‘开放、共享、合力开发’的研发模式,以发起者和贡献者的方式积极参与国内外开源社区建设,对内成立开源管理办公室,每个开源项目都设立相应的管理委员会;对外积极参与开源社区合作,持续不断地向开源社区捐赠项目、贡献 patch,并输出行业标准。同时,腾讯还加大投入,成为诸多国际知名开源组织的白金会员或白金赞助商,通过参与国际通行的协作方式,发挥中国企业的科技影响力,成为社区中活跃的中国力量。”
基于代码开放和社区运营,腾讯开源路线通过“三步走”的开源计划,不断深化腾讯已有的技术能力,推动从封闭孤立向协同开放向社区开放治理的纵深方向发展。
具体来说,第一步是内部开源协同。首先拉通内部项目和组织,通过部门小团队作战或跨部门大团队作战的方式协同推进,以优化资源配置的方式集中优势寻求技术突破。随后,腾讯建立起筛选机制将代码开放出来。第二步是外部代码开放。优化设计与代码结构,不断拓展落地场景,有效利用外部贡献者资源实现资源整合,构建技术影响力。第三步是社区开放治理,在这一阶段,注重大规模技术推广与应用、开发者生态体系构建、社区领袖与领导力培养、全社会研发资源的优化配置四个方面。
据堵俊平现场透露,腾讯开源将重点关注 IaaS、容器与云原生、数据库、大数据与 AI、中间件、IoT/边缘计算、小程序生态等。
自2010年以来,腾讯内部就开始试水开源,好的项目会跨团队、跨部门、跨业务的广泛使用,由此积累了对外开源的基础。从2016年开始,腾讯不断将内部开源出来的优质项目在 GitHub 上发布,腾讯开源逐步进入快节奏时代。
随着腾讯开源工作的不断深入,各式各样的问题也接踵而至,既有一些企业开源共同的难题,也有一些特殊开源文化下的矛盾。经过多年的开源实践,腾讯形成了一套成熟的开源机制,包括组织架构、规范、平台工具等,将开源过程中产生的宝贵的治理经验共享出来,为更多团队提供借鉴,从而扩展思路,实现精益管理和协同发展。
为此,腾讯特别成立了开源管理办公室,下设项目管理委员会、腾讯开源联盟和开源合规组三大组织,自上而下地传递腾讯开源策略,自下而上地落地开源技术生态。同时,通过开放的开源评审平台,孵化和培育优秀的自主开源项目。
此外,腾讯开源管理办公室还为开发者们提供与国内外开源基金会和开源社区合作交流的机会,将优秀的项目有效回馈给社区,建立起以开源为核心的技术生态圈。
除了优化内部开源机制之外,腾讯也不断活跃在各大国际开源社区中,加大对开源领域的投入,参与国际通行的协作方式,成为开源社区的积极贡献者,发挥中国企业的科技力量。
在 Apache 基金会参与方面,腾讯主导发布了 Hadoop 2.8.4、2.8.5 和 Spark 2.3.2,也是多个项目的核心贡献者,包括 Hadoop 、Spark 、Flink、HBase、Hive、MXNet、Parquet 等。
腾讯游戏 TenDB 经过多年积累,向 MariaDB 数据库提交的四个核心特性,已经合入到 MariaDB 的主线版本中。
而在 Linux 基金会参与方面,腾讯向 Linux 贡献了 Tars 和 TSeer 两大项目,并将 AI 开源项目 Angel 贡献给 LFAI 基金会(原名 LF deep learning 基金会)。
去年,腾讯云向 KVM 内核贡献了 40 个 patch,连续第二年登上 KVM 全球开源贡献榜,也成为中国唯一入选云厂商。
今年初,腾讯云正式发布基础设施层面四大核心技术项目,分别涵盖数据中心、网络、服务器以及自动化平台领域,并宣布将这四大技术项目全部贡献给开源 OCP 社区。
此外,腾讯已经获得 OpenStack 社区、Linux 基金会、LFAI 基金会、MariaDB 基金会、Apache 基金会等多个白金会员或白金赞助商身份。在积极参与开源社区建设的同时,以更加活跃的姿态为开源项目提供支持。
截至目前,腾讯共开源了 75 个项目,覆盖云计算、腾讯游戏、腾讯AI、腾讯安全、小程序等领域,这些项目都是经过腾讯众多明星业务和海量用户的检验后对外开放的,参与贡献人数超过 600 名。
Star 是在 GitHub 上收藏开源项目的功能,Star 数越多,表示该项目越受欢迎。截至目前,腾讯累计在 GitHub 获得了超过 22 万个 Star。
具体项目上,超过 1 万 Star 数的项目有 5 个,超过 5000 Star 数的项目有 15 个,超过 3000 的有 23 个。这说明腾讯开源的项目深受开发者关注,证明了项目本身的高质量和腾讯的技术实力。
腾讯始终保持着与社区健康、良好的互动,旗下开源项目的 issue 和 PR 的关闭比例都非常高。以微信终端开源项目 Tinker 为例,平均每月发布一个版本,issue 解决率在 99% 以上。TARS 这种基础技术架构开源也保持着平均 2 个月发布一次新版本,收获了上千位个人开发者用户。