欢迎来到彩壳资讯
彩壳资讯
当前位置:网站首页 > 数码 > 腾讯云大数据团队:认真开源的人眼睛都是亮的

腾讯云大数据团队:认真开源的人眼睛都是亮的

日期:2023-10-07 11:30

前段时间,Oracle正式发布了JDK 15,同时按照惯例公布了OpenJDK全球贡献者名单,表达了其对这些公司的支持并感谢个人开发者。其中,Oracle仍然是JDK开发的主力,完成了79.68%的工作量。

但是让很多人惊讶的是,腾讯已经成为全球第五大企业贡献者中国对OpenJDK贡献最大的公司,,也是历史上第一家进入“Notable”贡献者范围的国内厂商,获得了Oracle的感谢提及。

谈到国内各大厂商的开源,社区中还是存在很多偏见。各大厂商的开源工作只是为了KPI吗?除了商业价值之外,各大厂商的开源工作是否真的给开源社区带来了有意义的贡献?

为了探究腾讯内部真实的开源情况以及多年来腾讯对开源社区的实质性贡献,我们邀请了腾讯云副总裁、腾讯数据平台部总经理姜杰,高级腾讯云大数据团队技术专家、OpenJDK committer杨晓峰与腾讯技术委员会外部开源管理管理办公室主任徐勇深入探讨了腾讯内部开源的变迁史文化,了解以腾讯云大数据团队为代表的变化。腾讯技术人,一些鲜为人知的开源故事。

OpenJDK杰出贡献者

杨晓峰告诉我们,腾讯云大数据团队自2019年以来一直积极参与OpenJDK开源生态贡献。

去年11月,腾讯将内部使用的JDK开源,并命名为Tencent Kona JDK。它定位为免费、开箱即用、经过验证的 JDK 发行版,为每个人提供数据科学和云原生领域的最佳产品体验。

据报道,Kona JDK基于 OpenJDK 主分支定制针对大数据以及云计算等场景需求, 介绍借助JDK 11的特性,可以帮助用户无意识地使用共享核心类信息来提高启动速度。在云场景下,JVM的启动速度最多可提升40%左右。为了增强在线诊断能力,腾讯Kona JDK还引入了JFR等功能,可以帮助Java用户获取从系统到应用的profiling信息,增强运行时诊断和热点分析,指导优化,并将在后续版本中实现。此次更新,开源了 GC等模块的多项自研功能。

Kona JDK 主要由来自腾讯云大数据团队的OpenJDK社区资深参与者开发和维护,一直积极回馈OpenJDK社区。今年3月JDK 14发布时,腾讯进入了OpenJDK全球杰出贡献者名单。

公开数据显示,不到一年的时间,腾讯云大数据团队已向OpenJDK社区贡献了50+次commit,其中很多都与腾讯自身在海量大数据生产负载技术方面的经验有关相关, 矢量 API 矢量计算、Loom 协程、ZGC 等改进在行业内实属罕见边缘生产级实践,为 OpenJDK 社区做出了非常有价值的贡献。

令人眼花缭乱的开源答题纸

长期以来,由于其在社交、游戏等领域鲜明的业务特点,很多人忽视了腾讯的技术价值,尤其是其在开源领域的贡献。 以腾讯云大数据团队为例。 除了积极参与OpenJDK社区之外,腾讯近年来在开源领域也做出了不少贡献。

从2014年开始,腾讯开始开源第一代大数据平台的核心——腾讯版Hive。 2017年,腾讯开源基于AI技术的第三代大数据平台核心Angel,并将该项目捐赠给Linux基金会旗下专注于人工智能的LF AI基金会,支持推广该项目成功成为基金会的毕业项目。

去年11月,除了Kona JDK之外,腾讯还同时宣布了另外三个开源项目,分别是分布式消息中间件TubeMQ、分布式HTAP数据库TBase和Enterprise级 K8s 分布TKEStack

其中TubeMQ项目是腾讯云大数据从7年前开始开发的分布式消息中间件。支持腾讯QQ、微信等应用的海量数据业务,目前每天支持的数据量超过30万亿。 TubeMQ可以支持数据的高性能存储和传输,具有高吞吐量和低至5ms的延迟。目前,TubeMQ已捐赠给Apache基金会,并被ASF正式接纳为孵化级项目。

TBase是腾讯公司基于PostgreSQL开发的分布式HTAP数据库。数据库具备高性能、可扩展的分布式事务能力,支持RC、RR两种隔离级别,通过安全、管理、审计三权分离体系,提供全面的数据安全保障机制。性能方面,支持高性能分区表,可以成倍提高数据检索效率。在兼容SQL 2003标准PostgreSQL语法及常见Oracle函数&数据类型、窗口函数等的基础上,还提供大小商户数据分离、冷热数据分离等。 高效的数据治理能力。

TKEStack是腾讯基于其内部容器编排平台推出的K8s发行版。该平台面向线下业务和线上业务混合的业务场景。可稳定管理万级Kubernetes集群,并提供全面的资源管控,解决网络带宽控制、磁盘IO等问题。同时,TKEStack还拥有腾讯创新的GPU虚拟化技术,包括对GPU调度的改进。

除了技术开源之外,腾讯云大数据团队还投资开源通过贡献代码社区建设 。今年9月,Apache Hadoop社区发布了新一代分布式存储系统Ozone 1.0.0。该项目解决了Hadoop分布式文件系统的可扩展性缺点,可以满足千亿级小文件的需求。存储要求。 随着1.0.0的发布,腾讯也参与并见证了Apache Hadoop的Ozone社区孵化,来体验 ASF 董事会批准直至正式成为 Apache 顶级开源项目的过程。腾讯云大数据 Ozone 项目技术负责人,被社区选举为 Apache Ozone首届项目主席(Chair),项目团队诞生了多名 PMC 成员和 提交者,带领社区带来 Ozone 构建下一代大数据存储系统。

值得一提的是,在大数据开源领域的出色表现并非孤例。 根据腾讯开源主页统计,目前由腾讯主导的开源项目有112仓库,有1801 代码贡献者。项目分叉总数超过67万个,星星总数超过33万个。腾讯还成为Apache基金会、Linux基金会和Openstack基金会的白金赞助商。同时也是国内第一个开源基金会Open Atomic开源基金会的共同发起者之一。

拥抱开源技术路线

腾讯云大数据的开源生态发展到今天,绝非一朝一夕之事。

2009年之前,腾讯和很多传统互联网公司一样,内部业务主要使用传统的关系型数据库。 2009年以来,随着互联网流量的爆炸式增长,传统单机数据库提供的服务在系统扩展性和性价比方面已经不再适合腾讯业务的爆发式增长。面对这种变化,腾讯云大数据转向基于开源的分布式Hadoop系统,打造了腾讯第一代大数据平台。

2011年底,坚信开源是未来的大数据技术专家姜杰,现任腾讯云副总裁、腾讯数据平台部总经理姜杰来了到腾讯。据江杰回忆,他刚到腾讯的时候,腾讯云数据中心的Hadoop集群刚刚启动,规模只有200

因为开源社区有强大的支持,会不断推出创新,始终走在技术发展的最前沿,在生态和人才方面具有无可比拟的优势,所以腾讯云大数据团队决心选择了拥抱开源的路线。

姜杰和腾讯云大数据团队基于开源软件不断构建各种组件,从Hadoop基础存储HDFS开始,到改造NameNode、改造MR 整个时间表。进入移动互联网时代后,团队从Hadoop转向Spark和Storm系统,建立消息中间件,构建企业级实时数据分析系统。

2015年左右开始,随着人工智能、数据挖掘、数据应用等前沿技术的深入,腾讯云大数据再次迭代。蒋杰带领技术团队与北京大学崔斌教授团队合作,于2016年推出自主研发的机器学习平台Angel,并于2017年开源。Angel项目专门针对复杂计算场景,可以进行大型规模数据训练,支持内容推荐、广告推荐等AI应用场景。该项目不仅支撑了腾讯自身的业务需求,更是行业的里程碑。

在这些崇尚开源的技术人的努力下,腾讯多年来一直以开源软件为基础,不断对底层技术栈进行大规模改造内部大数据相关,成功抵御不同时期数据流量爆发式增长带来的挑战。

没有KPI,兴趣才是最大动力

几乎在腾讯云大数据确立了基于开源的技术路线的同时,腾讯内部的开源文化也悄然兴起

负责腾讯外部开源办公室管理以及腾讯内部研发工具和技术社区建设的徐勇告诉我们,在开源成为公司层面的战略之前,腾讯内部的开源文化首先就开始了从开始内部代码复用,由草根开发者自愿组织。

2013年,腾讯以提高开发效率为目的,开始提倡使用公共组件来共享和复用代码,涌现出许多优质的内部组件。为了鼓励更多人参与,腾讯专门设立了代码文化奖,每两个月组织一次内部开源项目评选活动。评选完全由程序员自己决定,真正做到一票一票选出。获奖员工和团队通过直播被更多开发者认识,让开源成为腾讯内部的热门话题。

徐勇回忆,有时候在直播的时候,一些平时不善言辞的程序员一提到自己的开源项目就会滔滔不绝,眼中闪烁着“没有KPI,只有兴趣”。最大的推动力。” 作为腾讯代码文化的经典项目,腾讯代码文化奖一直延续至今。

贡献代码并建立声誉

据徐勇回忆,在公司层面,尝试了很多有趣的“小手段”来鼓励开源。他还给我们讲了一个腾讯程序员热衷抢开源红包的故事。

大家都知道,过节发微信红包、抢微信红包已经成为一种根深蒂固的习惯。腾讯内部还有一个“企业微信开源定制红包”,用于提醒和鼓励开源项目的开发者和开发者。贡献者利用这种具有广东本土特色(广东抢利)的方式来激励开源项目团队,增强项目社区活跃度。

“比如,如果一个新的开源项目一个月内积累了500颗星,我们就会给负责人发一个开源菜鸟红包,祝贺他达到了一个小里程碑;每个月,我们都会发布前 10 个最活跃社区项目的开源项目。活跃红包;如果你上GitHub日周榜或者有其他突出表现,你将获得开源优秀红包等。来自不同业务线的开发者和贡献者高兴地抢红包,在线分享项目,完成一项小成就其他。里程碑是一件非常腾讯特有且有意义的事情。”

随着腾讯云大数据团队基于开源软件进行技术变革,团队成员也意识到开源不仅仅是为了从中拿钱。只有积极回馈开源社区,整个开源生态才能良性发展。

腾讯大数据团队始于向开源社区回馈一些改进的高质量代码。后来,腾讯内部的开源氛围也逐渐成熟。腾讯大数据团队干脆将改进后的分支项目对外开源,并牵头建立了开源社区。例如,Angel平台在成立之初就已经决定成为一个开源项目。

蒋杰坦言,因为天使团队成员都是技术背景,初衷非常简单只是想贡献自己的力量代码给大家让我们一起把事情做好。

Angel项目开源后,包括华为、新浪、OPPO、VIVO、拼多多在内的国内各大厂商慢慢开始在内部采用该系统,项目社区也不断收到来自With的投入这些大厂开发者的贡献,这个过程给腾讯云大数据团队带来了很大的信心和成就感。

谈及开源给公司带来的好处,姜杰认为,仅在吸引技术人才方面,开源具有巨大的价值。 “如果还有更多开源的东西,对于一个开发者来说,比如他在大学的时候就听说过Angel,他的老师或者身边的人都在用这个东西,甚至他自己也用过,对他的影响可能会很伟大,同时,对于相对成熟的技术人才来说,如果他对新技术有追求,那么看到我们这么有前瞻性的项目,也许他也会想加入。此外,我们也会吸引开源社区中与我们有相同兴趣爱好的人,他们也会愿意加入我们。”

姜杰透露,腾讯大数据团队依靠开源声誉,吸引了Spark、Flink、Hadoop社区的一些优秀贡献者,目前已有近 10 个 PMC 和 20 个 Committer 加入了他们的团队。

率直的开源态度

2018年9月,腾讯内部进行组织架构调整,命名为930改革,成立开源协作项目组和 外部开路source 管理 办公室,并正式将开源 提升到 公司战略级别。

当时,包括OSC社区在内的不少网友对此并不看好,并留言建议腾讯“首先在Linux上支持QQ和微信”。有趣的是,不久之后,腾讯悄然发布了 Linux QQ 2.0 Beta。尽管Linux QQ上次更新已经过去了十年,让社区不少朋友表示“再见”,但很多人仍然认可腾讯对于开源的耿直态度。

在此期间,腾讯的开源不再局限于自发参与的开源爱好者。 2019年1月,腾讯技术委员会成立,腾讯内部开源协同工作进一步覆盖各技术部门,从而减少代码重复开发,提高项目推进效率。

技术交流的气氛也变得更加活跃。

在公司内部,腾讯整体开发推广工具平台已经从SVN迁移到工蜂Git,更适合开源协作属性。与此同时,代码社区上线。每月有98%以上的技术人员访问代码社区进行技术讨论。数据显示,腾讯代码社区已产生1.9万条技术问题,平均收到6.6条答案。所有技术问题在提出后24小时内得到100%答复。开源协作的工作也已在编码器社区扎根。开源协作Oteam通过编码员圈子运营自己的开发者社区,与协作开发者和用户讨论项目进展开头提到的OpenJDK代码贡献正是Oteam协作的成果。

写在最后

从各大开源基金会披露的数据来看,腾讯已经成为对开源社区贡献最大的中国互联网公司之一。

腾讯社交、游戏等现象级产品业务的成功背后,离不开腾讯底层基础技术团队如大数据团队的支持,以及团队对开源的运用很多年。 ,贡献开源技术成果。通过与他们的交流,我们了解到,在腾讯内部,确实有一群热爱技术的人在认真做开源,为开源社区贡献真实有价值的代码,获得了社区的认可

很多时候,人们常常对国内各大厂商的开源产生的不理解和的怀疑。 “大厂开源KPI”也是社区里的一个常见话题。最后引用江姐之前在腾讯云年度技术大会上对这个话题的回应Techo

腾讯开源没有具体的KPI。更多的是通过代码文化和工程师文化的建设,鼓励和吸引大家积极参与开源社区的建设,同时提供专业的技术指导,帮助开源项目和团队的成功。”

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

关灯