发布于 2017-06-22 23:28:34 | 174 次阅读 | 评论: 0 | 来源: 网友投递
腾讯
腾讯控股有限公司(腾迅)是一家民营IT企业,成立于1998年11月29日,总部位于中国广东深圳,是中国最大的互联网综合服务提供商之一,也是中国服务用户最多,最广的互联网企业之一。
6 月 22 日,在腾讯“云+未来”峰会分会场的开发者专场上,腾讯研发管理部总监许勇以“腾讯开源在路上”为主题,和大家分享了腾讯内部如何打造工程师文化,以及腾讯外部开源的发展情况。
腾讯曾经很封闭,喜欢关起门来自己捣鼓,技术研发也是如此。各个业务、各个产品可能都会重复开发类似的功能。但 3Q 大战的爆发,让腾讯决定选择变革,提出了开放战略。与此同时,一批谷歌工程师加入了腾讯做搜索,结果如何大家也都知道,但是这批谷歌工程师带来的谷歌工程师文化,却在腾讯内部得到了极大的认同,正是在这种大背景和大环境下,腾讯的技术研发逐步由封闭走向共享复用和开源。
腾讯开源的起步比较艰难,即使从内部开源做起也是如此,公司希望通过开源减少内耗,更多地复用同事的工作成果,从而提升开发效率和积累对外开源的经验。然而,腾讯的开发模式是由业务和产品驱动的,这就会产生三个问题:
腾讯的工程师会优先考虑如何更快实现业务需求,因此代码的实现和业务的耦合性会更强,这样的好处是对业务侧和产品侧的反应很到位,然而将代码应用到类似业务场景上会很困难。
大公司所面临的 KPI 问题。
部门墙。其实有些业务存在内部竞争的关系,比如同一时期做微信的产品就有三、四个团队,竞争十分激烈,如果这个时候选择开源更是难上加难。
所以,腾讯内部开源社区提供了从轻量到重度参与开源的的各种途径和形式,既可以简简单单的分享片段,也可以分享自己的开源项目。
对于 KPI 的问题,许勇老师表示,如果把开源看成是一件很好玩、很酷的事甚至是一种情感诉求呢?工程师会不会更积极主动参与和贡献呢?因此,应该让工程师感觉到技术社区是温暖的,有温度的。
2011 年,腾讯内部开始提倡以公共组建的方式分享和复用代码,2012 年腾讯尝试开源了第一个构建项目叫 BLADE,2013 年启动代码文化项目,2014 年规范和发布了腾讯开源策略,并且制定落地执行具体流程。同年,腾讯也推出了首批开源项目共六个,到 2015 年底,设立了 QSA,也就是腾讯开源联盟,整体指导和推进腾讯开源工作。截止到 2016 年底,腾讯正式发布的开源项目一共有 36 个。
如此看来,腾讯开源的节奏似乎有点缓慢,到目前为止也只是开源了 36 个项目。不过下面的数据或许可以给这个数量一个合理的解释。
55 这个数字是腾讯在开源一个项目之前所要做的检查项,包括很多方面;8 这个数字是作为开源项目涉及到的部门和业务领域,包括安全、专利、法务协议等很多部门;3 代表了开源项目从提出申请到最终开源的流程周期,如果涉及到一些合规处理或者复杂问题的话,这个时间还会长一些。
腾讯也会以其他方式进行开源,比如说积极参与开源社区。今年腾讯云加入了 CNCF 和 Linux 基金会,在容器服务和 KVM 虚拟化方面贡献自己的力量,去年腾讯加入了 OpenDaylight 基金会。最近腾讯云又加入全球知名开源组织 MariaDB 基金会并成为 MariaDB 基金会白金会员。
除此之外,腾讯也运营着自己的开源项目社区,例如 Alloyteam,以及来自腾讯游戏运营部的蓝鲸平台。腾讯也在积极为一些开源项目做贡献,包括 Docker、Hadoop、Ceph 以及 Linux Kernel 等。
在大会上,许老师还透露了腾讯将来的开源计划,涉及到机器学习、AI、工作流等方面。值得关注的一个项目是 SOTER,这是一个腾讯生物认证组件,应用于微信 Android 客户端的指纹支付业务,以及公众平台 H5 页面的指纹授权。还包括小程序相关的一些项目,不过因为还没确定,所以不方便透露。
与谷歌、Facebook 这些公司相比,腾讯开源还处于追赶者的阶段,即使与国内开源先行的企业相比,也存在很大差距。但可以看到腾讯工程师在努力着,并推出了很多便利的基础服务,比如说工具、开源项目等,跟外部的开发者连接在一起,把中国的开源做得更好。