腾讯云大数据团队:认真做开源的人,眼里有光

前段时间,Oracle 正式发布了 JDK 15,同时作为惯例公布了 OpenJDK 全球贡献者榜单,表达了对这些企业与个人开发者的感谢。其中,Oracl…

前段时间,Oracle 正式发布了 JDK 15,同时作为惯例公布了 OpenJDK 全球贡献者榜单,表达了对这些企业与个人开发者的感谢。其中,Oracle 依旧是 JDK 开发的主力军,完成了 79.68% 的工作量。

令很多人意想不到是,腾讯成为了全球企业贡献第五名国内为 OpenJDK 贡献最多的公司,并且是历史首个进入“Notable”贡献者范围的国内厂商,得到了 Oracle 的点名感谢。

腾讯云大数据团队:认真做开源的人,眼里有光

谈到国内大厂的开源,社区中仍然存在不少的偏见。大厂的开源工作究竟是不是为了 KPI?除了商业价值外,大厂的开源工作是否真正为开源社区带来了有意义的贡献?

为了探究腾讯内部真实的开源情况,以及这些年来腾讯对开源社区的实质性贡献,我们邀请到了腾讯云副总裁、腾讯数据平台部总经理蒋杰,e j : w 6 s C i讯云大数据团队高级技术专家、OpenJDK committer 杨晓峰,腾讯技术委员会对外开源管理办公室总监许u ; F P F勇,一起深入探讨了腾讯内部开源文化的变迁史,获悉了以腾讯云大数据团队为代表的腾讯技术人,一些鲜为人知的开源故事。

Op@ ! u H p benJDK 的突出贡献者

杨晓峰告诉我们,腾讯云大数据团队自 2019 年以来就一直在积R u | L A J H极参与 OpenJDK 开源J R \态的贡献。

去年 11 月,腾讯开源P k j ^ s内部使用的 JDK,并命名为 Tencent Kona JDK ,其定位是一款免费、开箱即用、经过腾讯规模生产验证的JR Y 0 S x F #DK发行版,为o Z n 2 Q Z大家提供在数据科学和云原生领域的最佳产品体验。

据介绍,Kona JDK 基OpenJDK主分支定制针对大数据和云计算等场景需求,引入了 JDK 11 的特性,能够帮助用户无感知的使用共享$ Q L *核心类信息来提高启动速度,在云场景下 JVM 的启动速度最高能够提升到 40% 左右。为了增强线上诊断的能力,腾讯 Kona JDK 还引入了 JFR 等功能,可以帮助 java 用户获得从系统到应? v x f \ q . |用的 profiling 信息,增强运行时诊断以及热点分析,指导优化,并陆续在后续版本更新中开源了GC等模块的多个自研特性。

Kona JDK 主要由来自腾讯云大数据团队的 OpeV F ] 4 z L KnJDK 社区资深参与者负责研发和维护,该团队一直以来都在积极t n c , j v Q #回馈 OpenJDK 社区。在今年 32 I j % b T M D J 月 JDK 14 发布时,腾讯就进入了 OpenJDK 全球突出贡献者名单。

公开数据显示,短短不到一年,腾讯云大数据团队已向 OpenJDK 社区贡献N t L , –了 50+ commits ,很多 commits 与腾讯+ N S ^ $ 5自身在海量大数据生产负载技术方面的经验相关,其中针对Vector API向量计算、Loom协程、ZGC等方面的改进_ ( P 0,是业界少有的生产级别前沿实践,为 OpenJDK 社区做出了十分有价值/ K w ~ r – e l的贡献。

亮眼的开源答卷

长久以来,由于在社交、游戏等领域的业务特色过于鲜明,导致很\ | u _ M S _多人忽略了腾讯的技术价值,尤其是在开源领域的贡献。以腾讯云大数D X J * [ { Z据团队为例,除了积极参与 OpenJDK 社区Y = a T \ b f以外,腾讯近年来在开源领域的贡献着实不少。

从 2014 年开始,f c Y ? s T c腾讯即开始将内部的第一代大数据平台核心即腾讯版的 Hive 进行了开源。2017 年,腾讯又把基于 AI 技术的第三代b K _大数据平台的核心 Angel 开源,并将该项目B Q e r a捐赠给了 Linux 基金会旗下专注人工智能的 LF AI 基金会,支持推动该项目顺利成为基金会毕业项目。

去年 11 月,腾讯除了 Kona JDK 外同期宣布开源的项目还有另外三个,分别是分布式消息中间件 TubeMQ0 K G分布式 HTAP 数据库 TBase 以及企业级 K8s 发行版 TKEStack. ` i &

其中,Tube~ 2 \ H \MQ 项目是腾讯云大数据从 7 年前起开始研发的一款分布式R ( % . ( ! – b消息中间件,支撑了腾讯QQ、微信等应用的海量数据业务,目前每天支撑的数据量超过 30 万亿条。TubeMQ 可支持数据的高性能存储与传输,吞吐率高,延迟可低至 5ms。目前,TubeMe 9 3 l JQ 已经捐赠给 Apac\ 1 e $he 基金会,被 ASFc Z L ~ j E K # / 正式接受为孵化级项目。

TBase 则是腾讯基于 PostgreSQL 开发的分布式 HTR R [ TAP 数据库。该数据库具备高性能可扩展的分布式事务能力,支持 RC 和 RR 两种隔离级别,通过安全、管理、审计三权分立体系,提供全方位的数据安全保证机制。性能方面支持高性能分区表,可使得数据检索效率v ~ P # & Z成倍提升。在兼容 SQL 2003 标准r % U 1 6 \ $ \ 3PostgreS. J g .QL 语法和常用 Oracle 函数&数据类型、窗口函数等基础上,额外提供大小商户数据离、冷热数据分离等高效的数据治理能力。

TKEStack 是腾讯将内部的容器编排平台基础上改进推出的 K8s 发行版。该平台面向离线业务、在线业务混部的业务场景,能够稳定地管理万级别的 Kubernetes 集群,并且提供全方位, : n o T C o的资源管控,解决网络带宽控制、磁盘 IO 等难题。同时 TKEStack 还拥有腾讯创新的 GPU 虚拟化技术包括对 GPU 调度的改进。

除了将技术对外开源之外,腾讯云大数据团队还以贡献代码的方式投入到开源社区建设中。今年 9 月,Apache Hadoop 社区发布新一代分布式存储系统 Ozone 1.0.0,该项目解决了 Hadoopj c / s B C X 分布式文件系统在可扩展性上的缺陷,能够满足千亿级小文件的存储需求。随着1.0.0 的发布,腾讯也参Z K z与和见证了Ozone从 Apache Hadoop社区孵化,到经ASF董事会的批准,直至正式成为一个Apache 顶级开源项目的过程。腾讯云大数据Ozone项目技术负责人,被社区推选为Apache OW y * ^ 8 ? uzone 首位项目主席(Chair),同时项目团队诞生了多位PMC成员和committer; } 7,带领社区一起把Ozone打造成下一代大数据存储系统。

值得一提的是,在大数据开源领域的突出表现并非个例,根据腾讯开源主页的统E \ u f f =计信息显b \ S t D H ,示,目前由腾讯主导的开源项目仓库共有 112 个,代码贡献者 1801 人,项目 fork 总数超过 67 万,star 总数超过 33– U G J 0 v t 万。腾讯公司也已经成为 Apache 基金会、 Li) Y S ) % A ` 2nux 基金会以及 Openstack 基金会的白金赞助商,同时是国内首个开源基金会 —— 开放原子开源基金会的联合发起企业之一。

拥抱开源的技术路线

腾讯云大数据的开源生态发展到今天,并不是一蹴而就的事情。

在 2009 年之前,腾讯与很多其他传统互联网公司一样,内部业务主要U | x i使用传统的关系型数据库。2009 年开6 B E ( o ~ o始,随着互联网流量的爆发,传统的单机数据库所提供的服务在系统可扩展性、性价比方面已不再适用腾讯业务爆发式的增长。面对这种变化,腾讯云大数据转向基于开源的分布式 Hadoopp G – _ ; 体系,构\ + B ~ x建了腾讯第一代大数据平台。

2011 年末,坚信P a ! l开源就是未来的大数据技术专家,现任腾讯云副总裁{ e Y n F 8 X、腾讯数据平台部总经理蒋杰来到腾讯,据蒋杰回忆,他刚刚来到腾讯时,腾讯数据中心的 Hadoop 集群刚刚起步,规模只有 200 台

由于开源社区具备支持力强,会不断引进创新,始终处于技术发展的前沿,在生态( V 1 0 D 1 B z \以及人才方面具有不可比拟的优势,所以腾讯云大数据团队坚定选择了拥抱开源路线。

蒋杰和腾讯云大数据团队基于开源软件不断建设各种组件,从 Hadoop 基础存储 HDFS 开x \ D始,到改造 NameNode,m 3 6 _ a 1改造 MR 的整个调度。之后又进入移动互联网时代,团队又从 Hadoop 转向 ST z A . –park 和 Storm 体系,建立消息中间件,构建企业级的实s l f @ @ %时数据分析体系。

2015 年左右开始,随着人工智能、数据挖掘、数据应用等前E ` k c _ 3 a S g沿技术的深入,腾讯云大数据再次迭代。蒋杰带领技术团队与北京大学崔斌老师团队合作,于 2016( f e ; d \ l U \ 年推出了自研机器学习平台 Angel,并在 2017 年将其开源。Angel 项目专攻复杂计算场景,可进行大规模的数据训练,支撑内容推荐、广告推荐等 AI 应用场景。该项目不仅支撑了腾讯自身业务需求G p E b v % O ),在行业上也具有里程碑意义。

在这些崇尚开e $ Q z u ] ;源的技术人的努力下,腾讯多年来以开源软件为基础,对内部大数据相关的底层技术栈不B 0 | ` # C – D断进行大规模地改造,= – d J ~顺利顶住了不同时期数据流量爆H N r r o L发式增长带来的挑战。

没有 KPJ N U bI,兴趣就是最大的驱动力

几乎与腾讯云大数据确立基于开源的技X ` D { K _术路u N 1 v 4 M v 6线同一个时期,腾讯内部的开源文化也正在悄然兴起

负责腾讯对外开源办公室的管理工作,以及腾讯内部研发工具和技术社区建设的许勇告诉我们,在开源A e 0 i V l M !成为公司层面Q J q的战略之前,腾讯内部的开源文化最早是从内部的代码复用开始,由基层的开E T b k q发者们自发组织起来\ p f的。

2013 年,腾讯内部以提高开发效率为目的,开始倡导用公共组件的形式来共享和复; 4 a p用代码,涌现出了非常多的内部优质组件。为鼓励更多人参与l s R ? X ; ` j r进来,腾讯特别设置了代码a z I 5 z 7 [ 4文化奖,每两个月组织一次内部开源项目评选活动。评选完全由程序员们自己说了算,一票一票真实选举产生。获奖的员工和团队通过直播的形式被更多开发人员了解,让开源成为腾讯内部热P g . \议的话题。

许勇回忆,, 9 Y ~ 6 [ g W有时在直播过程中会发现一些平时不善言辞的程序员,当他们提到自己的开源项目时5 ` W ` i A E w却滔滔不绝,眼中闪烁着光芒,“没有 KPI,兴趣就是最大的驱动力。” 腾讯代码文化奖作为腾讯代码文化的经典项目也一直延续到了现在。

把代码贡0 0 f献出去,把口碑做出来

据许勇回忆,在公司层面,尝试过很多有意思的“小手段”用于激励开源,他还给我们v p S \ `讲了一个腾讯程序员热$ F c p d | V C衷于抢开源红包的故事。

大家知道每逢节日发微信红包抢微信红包已成为一种深入人心的? w = Q ` O h &习惯,在腾讯内部,还有一种“企业微信开源定制红包”,是用于提醒和鼓励开源项目的开发者和贡献者,用这种极具广东地方特色的方式(广东抢利是)来激励开源项目团队、提升项目社区活跃度。

“比如新开源项目一个月积累到 500 个 star,我们就给负责人发放一个开源新秀红包,恭喜他达到了一个小小里程碑;每个月社区活跃度 TOP 10 的项目我们会发开源活跃红包;荣登 GitHub 日榜周榜或者有其他突出表现会发开源突出红包等等。来自不同业务线的开发者和贡献者们开心抢着红包,在线上一起分享项目达成一个又一个小小里程碑,是一件非常有腾讯特色、有意义的事情。”

在腾讯云大数据团队基于开源软件一路进行技术变革的过程中,团队成员们也意识到,开源不是一味地从中索取,只有积极回馈开源社区,才能促使整个开源生态良性发展。

腾讯大数据团队开始时是把一W : q R c s些改进后的优质代码回馈开源社区。再后来,腾讯内部的开源氛围也逐步成熟,腾讯& P } ] 8大数据团队就索性直接将改进后的分支项目整个对外开源,主导建立开源社区。比如 Angel 平台在立项之初就已经决定要做成开源的项目。

= I B f C q _ +杰坦言,由于 Angel 团队成员都是技术出身,初心非常单纯只想着把自己的代码贡献K 9 / a d 6 B出去,让大家一起来把东西做好。

在将 Angel 项目开源以后,包括华为、新浪、OPPO、VIVO、拼多多在内的国内大厂都慢慢开始在内部采用该系统,项目社区也不断地得到来自这些大? @ 5厂开发人员的贡献,这个过程u B # X T ; m .给腾讯大数据团队带来了很多信心与成就感。

谈到做开源给公司带来的利益,蒋杰认为,仅从对技术人才的吸引方面,做开源就是有很大价值的。“如果开源的东西多了,对于一个开发者来说,比如他在大学时都听到过 Ange] q + ? 1 n 5 |l,并且他的老师或者他身边的人都在用这个东西,甚至他也亲自去用过T r j ; H,这对他的影响可能是非常大的。S : 5 R v w N 1 ^同时,对于比较成熟的技术人才= R ) i h =来说,如果他对新技术有追求,那么看到我们这样有前瞻性的项目,可能他也会想加入。另外,我们也会吸引到开源社区中跟我们有一样兴趣爱好的人,他们也会愿意来加入我们。”

蒋杰透露,腾讯r L k Y |大数据团队依靠开源口碑,在 Spark、Flink、Hadoop 社区都吸纳了一些优秀的贡献者,到目前为止有接近 10 个 PMC,20 个 Commitu # |ter 加入了他们的团队W 7 = q

耿直的开源态度

2018 年 9 月,腾讯内部进行了o h V P A #名为930变革的组织架构调整,成立了开源i V ` :协同项目组和对外开源管理办公室,正式将开源提升到公司战略层面。

在当时,包括 OSC! 6 6 o % n 0 D 8 社区在S ! L I ]内的很多网友对此并不看好,纷纷留言建议腾讯“先在 Linux 上支持 QQ 和微信再说”。有趣的是,腾讯/ Q *在不久之后就悄悄发布了 Linux QQ 2.0 Beta。尽管距离U X $ t k 5 A 4 j Linux QQ 上一次更新已经过去了十年,让很多社区的朋友直呼“活久见”,但还是有不少人认可了腾讯对待开源的耿f \ 5 ^ \ ] / h K直态度。

这一时期,腾= | = : f e d P u讯的开源不再局限于自发参与的开源爱好者。2019 年 1 月,腾N \ ! b p u ) R讯技术委员会成立,腾讯内部的开源协同工作进一步覆盖到o s U 1 } &所有的技术部门,从而减少代码的重复开发,提u f E ^ u g升项目推进效率。

技术交流的氛围也更加活跃了。

在公司内n ^ R (部,腾讯整体开发推进工具平台由 SVN 向更适合开源协同属性的工蜂 Git 迁移。同时上线码客社区,每个月有超过 98% 的技术人员访问码客社区进行技术讨论。数据显示,腾讯码客社区已经产生 1.9 万个技术问题,平均收获 6.6 个回答,所有技术问题在提出后 24 小时内 100% 得到回答。开源协同的工作在码客社区中生根发芽,开源协同Oteam在码客通过圈子运营自己的开发者社区,与协同开发者以及用: B C z Q D户共同讨论项目进展开头提到的 OpenJDK 的代码贡献正是源自 Oteam 协作的成果。

写在最后

从各大开源基金会公开的数据来看,如今的腾# \ 3 d S a a {讯已经成为对开源社区贡献最大的中国互联网公司之一。

在腾讯的社z ) * q 8交、游戏等现象级产品业务成功的背后,离不开像大数据团队这样的腾讯底层基础技术团队的支撑,更离不开团队多年来使用开源、贡献开& . O v y g I m源的技术成果。通过与他们的2 Y [ (沟通,我们了解到在腾讯内部,确实有那么一群热爱技术的人在认真地做着开源,并且为开源社区贡献了实实在在的、有价值的代码,获得了社区的认可

很多时候,人们常因不了解,对于国内大厂的开源持质疑态度,“O 5 0大厂开源是为了 KPI ” 也是一个社区中老生常谈的话题。最后,我们想引用蒋M ] 6 A A此前在腾讯云一年一度的技术大会Techo对于这个话题的回应作l 3 G } S为结尾:

腾讯开源没有具体的 KPI,更多是通过代码文化和工程师* y ] 6 y \文化的建设,来鼓励和吸引大家主动– 1 j 1 v A参与到开源8 0 Y S社区的建设中来,同时提供专业的技术指b A l – L导,为开源项m g r C L s O q s目与团队的成功助力。”

我们也愿意相信,在这些认真做开源的技术人的努力下,国内的开源生态一定会变得越来越好。

回答

上一篇 2021年5月15日 下午4:19
下一篇 2021年5月15日 下午4:19