腾讯许勇:腾讯技术研发正在全面拥抱开源

导读

6月21至22日,“云+未来”峰会在深圳召开,腾讯向外界进一步展示了开放的诚意:充分开放腾讯的数据能力,包括智能推荐、数字营销等重量级服务,让行业真正感受到数据的价值。腾讯的开放是一个漫长的过程。许勇指出,腾讯曾经是一个较为封闭的环境,技术研发也不例外。

2010年的3Q大战后,腾讯开始拥抱“开放”战略,技术研发也正是在这种环境下,开始向共享、复用和开源迈进。腾讯内部的开源社区,给大家提供了从轻度到重度参与开源的途径;而从2016年开始,腾讯外部开源也开始进入了快节奏时代。

在AI方面,深度计算的基础平台能力不断迎来开放,一个是Angel的开源,作为高性能的机器学习计算平台,Angel目前应用于腾讯内部包括广告推荐,视频推荐,微信公众号等业务场景。另外一个NCNN的开源,是腾讯优图实验室前向卷积神经网络的实现,在手机QQ、手机Qzone、微信、天天P图等腾讯业务中广泛使用。

越来越多的业务团队开始拥抱开源,把自己的项目开源出来,在接下来,还有更多经过腾讯众多明星业务检验的项目开源出来。相对于google,facebook这样的科技公司,腾讯的开源,目前还是处在一个追赶者的阶段,但我们看到了腾讯的工程师们已经被开源的力量唤醒,腾讯希望和外部开发者一起,砥砺前行,创造中国开源的未来。

以下为许勇演讲实录:

Hi,大家下午好,简单介绍一下自己,我是腾讯研发管理部的许勇,目前任职腾讯的研发平台,主要致力于推动腾讯内部开源社区建设和外部开源项目的管理工作。今天,我以“腾讯开源,在路上”为题,分享腾讯内部如何打造工程师文化和外部开源的情况。

曾经的腾讯比较保守,什么事情都是关起门来自己做,内部的技术研发也是如此,各业务和产品都会重复开发很多类似的功能,比如5~6个不同版本的二维码扫描,7~8个功能类似的热补丁组件等等。2010年,随着3Q大战,变革来临,腾讯开始“开放”战略,同时前google的一批工程师加入腾讯做搜索,虽然搜索没有做起来,但他们带来的google的工程师文化却得到了很多认同,正是在这种大环境和背景下,腾讯的技术研发开始由封闭向共享,复用和开源迈进。

我们从2011年开始,在内部提倡以公共组件的形式共享和复用代码;2012年,尝试发布了腾讯第一个对外开源项目,一个构建系统BLADE;2013年,旨在鼓励和推进腾讯内、外部开源落地执行的腾讯代码文化项目启动;2014年,制定和发布了腾讯的开源策略和具体流程,并发布第一批的6个官方开源项目;2015年,在腾讯技术管理委员会下成立腾讯开源联盟(TOSA),整体指导和管理腾讯开源工作;截止到2016年底,腾讯正式发布的开源项目共计36个。这是腾讯开源6年的发展历程。

然而腾讯开源的起步还是比较艰难的,即使是先从内部开源做起也是如此。公司是希望通过开源,减少内部消耗,更多的复用同事的工作成果,这样不仅能提高代码质量和效率,还可以为外部开源积累经验;然而腾讯的研发模式是业务和产品驱动,这里会存在三个方面的问题。第一,工程师会先去考虑能更快的满足业务需求,因此代码的实现与业务耦合性很强,这样好处就是对业务和产品侧的反应会很快,很到位,但很难复用到别的类似业务和场景中去,而解耦的难度更大。第二,就是每个大公司都会遇到的KPI问题,做开源不是KPI的内容,那么时间投入和对工程师的重要性方面就会弱很多。第三,就是部门墙,有些业务甚至存在内部竞争的问题,比如最初做类似微信类产品的团队就有3~4个,竞争很激烈,这样去开源代码的阻力更大。

因此腾讯内部开源的工作主要是围绕着如何解决这三个问题展开的。

现有代码开源比较困难,但是如果从分享一段代码片段开始呢?微码这种低门槛的代码分享方式应运而生了,这让工程师很快感受到了用代码交流的魅力,吸引和培养了内部开源社区的第一批用户,至今,微码分享的活跃度还是非常可观。

突破KPI的难题,如果把开源当做是一个好玩,很酷或者是情感诉求的事儿,那么是不是能够吸引到工程师去积极参与和贡献呢?我们内部开源社区的定位和运营上,在这方面做了许多尝试,比如腾讯员工最关注和期待的每年的圣诞晚会,有圣诞大奖的抽奖环节,在每次遗憾自己与大奖失之交臂的同时,工程师都会很关心算法是否真正体现公平,自己的名字是否在随机算法的盲区等技术问题,由此,腾讯内部最长寿,参与工程师最多的开源项目-圣诞抽奖项目诞生了,也成为腾讯内部开源的样板;还有乐高EV3机器人编程大赛,基于AI预测2016年欧洲杯等等活动,让工程师以码会友,同场PK,感受到了技术社区可以很酷,很好玩;每年的代码统计报告,不是冰冷的数据统计,而是试图描绘工程师在代码世界中的生活,感受到技术社区是有温度的,是温暖的。

对于部门墙的问题,当工程师对于分享和开源有了认识和实践以后,追求更高的技术价值和成就感驱动大家,突破部门业务的局限性去开源项目,从给与中获得满足。技术社区必须靠开源项目和贡献说话,而非Title或者资历,因此我们保持了社区草根化的特质,比如区别于公司内部官方的优秀评选,社区的优秀项目的评选完全取决于项目的客观数据,工程师的票选和一部分专家评选三者结合的总成绩,这获得了工程师的极大认可。

因此,腾讯内部的开源社区,给大家提供了从轻度到重度参与开源的途径,你可以仅仅只是轻量化的分享代码片段,或者是贡献公共组件,或者开源项目去实现技术价值的最大化和建立技术影响力,截止2016年,内部的组件和开源项目数达到了1600+,内部开源社区的DAU在3000+。技术研发由最初的封闭,到现在工程师普遍认可开源,并积极参与其中。

有了一定的内部开源基础,我们开始尝试外部开源,然而发现,同样不简单。由于公司性质的对外开源,所以需要把控的方面特别多。55这个数字,是我们开源一个项目之前,需要对项目做的检查项的数量,包括安全,商标,专利,协议等等各方面;8是我们做一个开源项目所涉及的部门和业务领域的数量;3是一个开源项目从发起到最终正式开源的周期-3个月。因此可以看到,开源一个项目的投入是巨大的,还不包括开源之后,项目团队投入的维护资源。所以腾讯开源的节奏开始很慢,至今开源的数量仅仅是36个项目,但我们看到,从2016年开始,这个节奏快了起来。同时腾讯也在以其他三种方式参与开源,积极参与知名开源社区、运营自己开源项目的社区以及为开源项目贡献。

腾讯云在今年5月份,宣布加入CNCF和Linux基金会,腾讯云是国内最大的基于Kubernetes提供容器服务的公有云服务商,也是拥有国内最大规模KVM集群的企业,将在容器服务、KVM虚拟化等重大开源项目贡献力量。

6月,腾讯云加入MariaDB基金会,释放腾讯云数据库CDB的内核积累。腾讯在去年,也成为OpenDaylight项目的白银会员,两次主办全球SDN&ODL技术实践峰会。

另外腾讯也独立运营了一些自己项目的开源社区,例如Alloyteam,开源了腾讯许多优秀的前端项目,并举办了3届WEB前端大会,工具类的Bugly和游戏的蓝鲸平台等,都有不错的口碑,并聚集了一批热心的开发者。

腾讯积极贡献知名的开源社区和项目,过去一年,产生一名docker项目maintainer,一名ceph项目的maintainer,35个patch到docker,17个patch到ceph,31个patch到Hadoop,2个patch到OpenContainer/runc,1个patch到linux kernel等等,腾讯正在以不同的方式,积极参与到开源活动中来。

腾讯目前大多数的官方开源项目,都已经放在Github上来管理,下面简单做一些介绍。

RapidJSON,腾讯游戏专家工程师的一个开源项目,是一个C++ JSON解析/生成器,目前有4800+star和 1300+fork,被包括守望先锋等许多游戏采用。Tinker,微信前端团队的Android热补丁方案,目前有9000+star和1900+fork,是腾讯第一个占据GITHUB全球周榜冠军的开源项目。WEUI,微信设计团队开源的同微信原生视觉体验一致的基础样式库,目前有17000+star和4100+fork,是腾讯最具影响力的一个开源项目。MSEC,QQ后台团队开源的毫秒服务引擎,来自于QQ后台团队10年的运营思考。

可以看到,越来越多的业务团队开始拥抱开源,把自己的项目开源出来,在接下来,还会有更多的经过腾讯众多明星业务检验的项目开源出来。

在AI方面,2个项目即将开源,一个是高性能的机器学习计算平台Angel,它的目标是让模型训练能够在千万级别、亿级别、乃至十亿级别维度的模型上,自如的展开,加速各种机器学习算法。目前腾讯包括广告推荐,视频推荐,微信公众号等业务场景,都有Angel应用的Case。另外一个NCNN,是腾讯优图实验室前向卷积神经网络的实现,是优图基于深度学习算法,如人脸检测,五官定位,配准跟踪等Android / ios sdk 使用 ncnn 框架实现,在手机QQ,手机Qzone,微信,天天P图等app中使用。

Weflow,基于TMT-WORKFLOW的前端工作流开发工具,应用于微信游戏、微信广告等项目的第三方合作团队前端构建工作SOTER,腾讯生物认证组件,应用于微信Android客户端的指纹支付业务,以及公众平台H5页面的指纹授权。还有小程序相关的一些项目……

相对于google,facebook这样的科技公司,腾讯的开源,目前还是处在一个追赶者的阶段,甚至相对于国内的其他开源先行企业,也还有很大差距,但我们看到了腾讯的工程师们已经被开源的力量唤醒,更有热情的投入到了开源中来,去追求更大的技术价值,腾讯开源也会与腾讯云紧密结合,为开发者提供更多便利的基础服务和工具,以及开源项目使用,我们希望能和外部开发者一起,砥砺前行,创造中国开源的未来

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏人工智能快报

专家称人工集群智能有助于应对人工智能的潜在威胁

最近关于人工智能威胁的讨论越来越多,斯蒂芬·霍金、比尔·盖茨、伊隆·马斯克、史蒂夫·沃兹尼亚克等世界各地名人已经敲响了警钟,称人类可能会失去对人工智能技术的控制...

3173
来自专栏DevOps时代的专栏

聆听中国开源最强音 | 国内大厂开源项目齐聚 OSCAR 开源先锋日

聆听中国开源最强音,阿里、华为、腾讯、小米齐聚北京,万众期待的 OSCAR 开源先锋日终于到来啦!

923
来自专栏企鹅号快讯

郑斌:企业数据安全能力框架——数据安全能力成熟度模型的构建及应用

摘要 安全的目的是为了保障发展,如何衡量一个拥有数据的组织的数据安全保护能力十分重要。本文探讨了这种组织所面临的数据问题及其挑战,介绍了大数据环境下数据安全发展...

2360
来自专栏云计算D1net

企业将业务迁移到云端时的核心考虑因素

将业务迁移到云端对于初创企业和需要管理运营支出的中小型企业尤其具有吸引力,同时确保可以快速“开启”资源以支持业务增长。同样,云计算模型对于云计算供应商的合规性负...

863
来自专栏CDA数据分析师

大数据时代8大热门IT岗位,你适合哪一款?

新的想法诞生新的技术,从而造出许多新词,云计算、大数据、BYOD、社交媒体、3D打印机、物联网……在互联网时代,各种新词层出不穷,令人应接不暇。 这些新的技术、...

2036
来自专栏灯塔大数据

观点 | 国内各产业加速发展的“利器”——大数据

随着物联网的应用及智慧产业的爆发,“大数据”这个词汇再次高频度地出现在人们的视线中,围绕大数据做文章也相应催生出了农业大数据、工业大数据、健康大数据、旅游大数...

3349
来自专栏安全领域

走进物联网平台

随着第四次工业革命的进展,我们很容易迷失在新术语和流行语中。如果你搜索“物联网”这个词,你会注意到“物联网平台”这个短语经常出现。但“物联网平台”到底是什么?在...

39314
来自专栏云计算D1net

解析2015年企业十大战略技术趋势:云计算成主角

Gartner提出2015年对企业组织而言最重要的十大战略性技术趋势。根据Gartner定义,战略性技术趋势即在未来三年内可能对企业组织带来重大影响的技术。构成...

3386
来自专栏鹅厂网事

中国未来网络中心主任刘韵洁院士:畅谈中国未来网络的试验床

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

2239
来自专栏智能计算时代

2016年RSA会议和物联网

世界领先的信息安全会议和展览会2016年RSA大会今天在旧金山的Moscone中心揭幕。会议结束了第25年,会议聚集了顶尖的信息安全专业人员和商业领袖,讨论新兴...

2735

扫码关注云+社区