推倒「烟囱」这两年:腾讯正进行一场自我革命

砍柴网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

担任腾讯技术运营副总监好几年,徐海丽的风格一向稳健,可今年十月底申报预算时却特别紧张,因为她打算为一项工作第三次 " 狮子大开口 ",向公司申请一大笔钱," 公司还会批吗?"

何况批预算的总裁刘炽平是出了名的 " 火眼金睛 ",在预算会上审项目,要么一言不发直接过,要么随时打断提问题。轮到自己,徐海丽惴惴不安地看着老板,只见刘炽平点点头,竟自言自语地说 " 这个钱花得值 " ——预算通过了。

短短几个月中,这样的意料之外已是第二次发生在她身上了。

另一次发生徐海丽休假时的大半夜,家人的 手机 响了,竟然是团队同事找来,声音紧张又兴奋。徐海丽一惊:出了什么事?原来,CEO 马化腾刚刚回复了团队的一封邮件,要求修改邮件的内容格式,让手机上看起来更方便。而这封邮件,不过是徐海丽团队发给全员的例行工作进展邮件。

让刘炽平如此大方、让马化腾如此仔细的工作,究竟是什么?

151 秒识别 128 万张图,底层技术收入写进财报

答案是四个字:开源协同。

简单说,开源协同就是腾讯内部源代码全部开放,不同团队协同开发,共建腾讯基础技术平台。

外部人可能了解的少,实际上,开源协同已在腾讯推进两年。目前,腾讯内部代码开源率已超过 80%,组建和孵化了 151 个 Oteam(开源协同小组的简称),涵盖了计算、存储、数据等所有 互联网 技术基石,涉及了 微信 、QQ、腾讯云等所有腾讯核心业务板块。

推倒「烟囱」这两年:腾讯正进行一场自我革命

腾讯 tRPC Oteam 开源协同生态日活动,主题是:" 来吧,留下代码 "

开源协同不仅为腾讯省下了数亿元的成本,更通过研发效能的提升,技术辅助腾讯自己的产品、腾讯云上的广大产业客户乃至全球技术共同体。

以云帆 Oteam 为例,这个小组已有 70 多位程序员参与贡献代码,主攻深度学习框架,集结了腾讯所有事业群的相关技术高手,成立半年后,小组成功刷新图像处理领域著名的 ImageNet 训练速度世界记录,只需 2 分 31 秒就能识别出 ImageNet 内 128 万张图片内容,Top5 精度达到 93%。

在编程语言 java 的 openJDK 国际开源社区里,腾讯是迄今为止唯一一家因显著贡献被点名致谢的中国公司,在社区最近发布的 JDK15 版本中,JDK Oteam 向主分支贡献的代码名列中国公司第一。

在全球最大的代码托管平台—— Github 上,腾讯也已经悄悄贡献了超过 100 个开源项目,累计获得超过 30 万个星标,开源贡献度居全球 科技 企业头部。

底层技术收入甚至写进了刚刚出炉的腾讯 2020 年第三季度财报。企业级技术优势被认为是腾讯发力产业互联网的新亮点,今年前九个月,基础架构安全产品收入同比增长 178%,云原生安全产品客户规模超过一万家。

这还是那个被坊间笑称只会做产品没有技术标签的腾讯么?

推倒「烟囱」这两年:腾讯正进行一场自我革命

12 月 2-3 日,国际内源基金会 ISC 首次举行亚太区峰会, 对腾讯的开源协同大加赞赏

开源协同正在悄悄地重构着腾讯的肌理。腾讯向来以赛马文化知名,但开放协同恰恰是封闭赛马的反面。两年来,腾讯究竟经历了什么,不惜在技术上告别 " 赛马 " 转向 " 协同 "?

但可以肯定的是,无论是取得共识,还是推行实践,只要对自己 " 动刀 ",就注定了开源协同会历经艰辛。

哪个能代表腾讯,哪个看上去都不够强

作为推动开源协同落地的项目经理,徐海丽目睹了这个艰辛的过程,也看到了她在腾讯十三年所不曾看过的景象,比如两个程序员互吹整瓶红酒。

张青林酒量平平,但在 2018 年底一个晚上,却主动干掉了一整瓶红酒,对于低调平实的程序员来说堪称罕见。

更稀奇的是,他竟然是向一直以来的 " 对头 " ——另一个程序员雷海林敬酒。俩人的团队同在腾讯技术工程事业群(简称 TEG)做数据库技术,关系却很僵。用雷海林的话说,曾认为彼此 " 老死不相往来 "。

" 互撕 " 在腾讯内部并不稀奇。

多年来赛马机制催生出许多业务相似的团队,产品侧在赛马,技术侧也在赛马。优点是产品的需求能在自己的技术团队里闭环,得到最快速的支持;而缺点是,重复技术自然造成资源浪费,尤其是研发效能低下,劲儿没法往一处使。

能推出微信、QQ 这种十几亿用户级别的产品,腾讯存储、计算、数据等支撑产品的技术家底一定不薄。但伴随产品取胜,留下一根根技术大烟囱,好比强大的水和电被分散在一个个独立运转的工厂里。

" 我们梳理过公司内部重复的技术团队,有 150 个之多,向 Martin(刘炽平的英文名)汇报时,他都惊呆了。"TEG 运营管理部总经理郑亚峰回忆。

2018 年 9 月 30 日,腾讯宣布战略调整(简称 930 变革),树起产业互联网大旗,专门成立了云与智慧产业事业群(简称 CSIG)。而要向其他产业提供互联网的水和电,腾讯云需要输出的,恰恰是公司级的技术能力。

但分散的技术能力显然既缺少说服力,也缺少竞争力。这些烟囱在内部谁也不服谁,单拿出来又都没法跟外面整体比较,简言之,就是 " 不强 "。

" 拿数据库来说,光是关系型数据库就有三个技术产品放在腾讯云上,客户一看都懵了,究竟哪个能代表腾讯?哪个看上去都不够强。" 郑亚峰说。

数据库只是腾讯几百个技术烟囱之一。不破不立,腾讯高级执行副总裁兼 TEG 总裁卢山给出的答案十分直接:敲掉烟囱,拉通技术。

930 变革后,腾讯在各事业群之上专门成立技术委员会,卢山牵头。数据库是技术委员会点名 " 必须拉通 " 的首批技术之一。

在 2018 年底双方宣布合作的晚宴上,看着张青林一瓶红酒喝完,雷海林没示弱,也干了一瓶。酒精的刺激下,也许是回顾过往的感触,也许是多年心防的释放,放下成见的两人抱头痛哭。

两瓶酒和男人的眼泪,成了团队合作前夜最好的 " 破冰 " 仪式。

在技术拉通的大势之下,还有多少个醉倒的 " 雷张 " 无从知晓。接下来的问题是:该怎么把散落在公司各处的技术拧成一股绳?

走出条新路,就得先革自己的命

压力漩涡中心的卢山陷入焦虑:拉通技术意味着打破封闭,可封闭正是过去腾讯胜利的法宝。

革自己的命,谈何容易?

郑亚峰能理解这种复杂心情,他见证过腾讯技术打过的大大小小无数硬仗。在中国互联网公司里,腾讯服务面最广、场景最多、用户时常最长," 海量 " 是腾讯技术最重要的标签之一。

海量时代讲究技术专有、敏捷开发,一个功能的实现要经过从需求到开发、测试、运营上线等各环节的串联路线,每个环节把自己的能力做到极致,专有的同时也是封闭。

但随着开源和云化成为最大的两个技术趋势,持续开发持续集成,大量开源组件可以直接用,测试运营等则交给研发效能工具,一行代码可以很快让用户看到效果。

曾经的先进变成如今的落后,封闭是病根,那开放就是解药。

卢山想明白了。他说服腾讯最高决策层 " 总办 ",借势 930 变革,用 " 开源协同 " 的方式拉通技术。

但期待中的 " 大干一场 ",并未立刻出现:从 2018 年底提出到 2019 年 5 月,腾讯的 " 开源协同 " 在半年里,几乎毫无进展。

" 原因特别简单,大家都觉得开源协同是好事,但不是我的事。" 在腾讯技术委员会负责开源协同项目的郑亚峰说。甚至有技术团队不理解地问:" 我们靠本事打下的阵地,凭什么别人来抢地盘?"

2019 年 6 月,腾讯技术委员会的会议上,卢山下决心拍板 " 全面开源 "。不光是底层的共同代码开源,所有专门为产品服务的业务代码也要内部开放,否则总有人说是业务代码藏起来。

说到感慨处,卢山在会上红了眼眶,对着各事业群的技术副总裁们说:" 等多年后我们都离开了腾讯,回头看留下的东西都是一堆烟囱这种残垣断壁,心里会不会痛?"

技术委员会开启自上而下的强推,决定从最重要的底层技术 " 山头 " 开始动刀," 不同意开源协同的就上总办 "。

推倒「烟囱」这两年:腾讯正进行一场自我革命

六大事业群技术负责人齐聚腾讯技术委员会 linktime 活动,卢山(左四)与一线程序员交流开源协同

基础的名字服务(一种对 IP 地址进行名字编码以方便后台调用的技术)被点到。TEG 基础架构部组长王洪智受命做名字服务 Oteam,才发现公司里竟然有 cl5、织云 l5 等眼花缭乱的九个名字服务系统。

怎么把九个砍成一个?王洪智懵了," 当时我们团队在维护其中最大的一个,另外八个里我只认识两个,还不太熟。"

平台与内容事业群(简称 PCG)的内部合并让 Oteam 找到一个契机。930 变革时,PCG 由原先三个事业部合并而成,大量类似的技术服务亟待整合,九个名字服务里有三个都在 PCG。

" 我们首先找到 PCG 的团队,提出了统一全公司名字服务的方案,经过四轮讨论和修改,统一方案得到了双方的认可。" 王洪智先把 PCG 的 " 三合一 " 团队拉了进来。

这让王洪智信心倍增,他带着统一方案又成功说服 CSIG 的第五个团队,接着剩下四个团队也顺理成章地都加入了。Oteam 给公司级的名字服务取了一个响亮的名字——北极星。

截至 2020 年 9 月底,北极星已更新至第 12 个版本,整合了腾讯全公司 90% 以上的服务,有 110 个部门、140 万节点接入了北极星,接口的日调用量超过 2.5 万亿,调用成功率超过 99.999%,曾经的 cl5 和织云 l5 在 10 月 20 日正式下线。

从大学毕业进入腾讯,王洪智做 " 码农 " 五年,从没想过有机会做一个公司级的技术产品。

" 我们九个团队第一次见面时还畅想过,将来提到腾讯的名字服务就是北极星了,我们再完善些也会贡献到开源社区。" 王洪智嘿嘿笑说。

从海量到云,新时代提出新的技术要求,敲烟囱的人终于跑通了一条自己的新路。

" 全行业只有腾讯选择了开源协同这条路,这是腾讯的创新。" 郑亚峰认为,这条路以开放和协同为抓手,提供了一种新技术中台的虚拟组织形式,提升研发效能,促进技术进步。

趟进深水区,反而不焦虑了

" 新鹅 " 杨晓峰,虽然在 JDK(编程语言 java 的开发工具技术)领域很资深,却一直觉得:" 谁会关注我们这些做基础技术的?"

刚入职三个月,他就代表 JDK Oteam 在腾讯深圳总部滨海大厦领了个大奖—— 2019 年度开源协同优秀奖。

" 腾讯招我来牵头 JDK 开发的时候就说了,要用开源协同的方式做,我其实就是冲着‘协同’两个字来的。" 杨晓峰认为,把基础软件开发和全公司的产品需求融合在了一起,Oteam 的方式很难得。

10 月,JDK Oteam 在滨海大厦举办生态开放日。杨晓峰没想到,业务总经理都亲自来参加活动;更没想到,当看到 Oteam 成员沉醉于讨论技术细节、以致于超时了都没发现,他忽然被感动了。

杨晓峰不再认为自己的工作在腾讯是 " 无人关注 " 的:" 开源协同这事,给了对基础技术有兴趣的人一个舞台。"

这正是徐海丽期望看到的。生态开放日活动是她今年推动开源协同的一个重要抓手,帮助 Oteam 在公司内外打造技术影响力,鼓励程序员们找到更多存在感和荣誉感。

" 我们叫培育新代码文化,让开放和协同的文化深入人心。" 徐海丽说。从当初旁观雷海林和张青林的 " 红酒泯恩仇 ",她就隐隐感觉到某种精神被激发,只要有合适的技术土壤和技术氛围,腾讯的技术还能 " 干出更大的事 "。

腾讯开源治理文化宣导视角之一:代码规范大于写代码的自由

程序员的热情被点燃。仅 2019 年,腾讯新增的代码行数就高达 12.9 亿,新增研发项目超过 3500 个。

今年 6 月,集合了腾讯各事业群数据库内核开发精英力量,数据库 Oteam 正式发布首个开源协同版本的数据库内核 TXSQL-8.0,这是腾讯历史上第一个公司级 MySQL 内核统一版本,可为腾讯自研业务以及广大云客户提供更强大的支持。

码客(腾讯内部的技术社区)中 " 数据库技术 " 圈子的成员已超过 2800 人,一个置顶帖子问:腾讯云和友商的数据库产品有何差距?获赞最多的回答来自一位数据库产品总监。他写道,腾讯云和所有兄弟团队 " 已经不止是开源协同,而是全面合作开发 ",腾讯云数据库的未来 " 砥砺前行,大有可为 "。

腾讯 CI Oteam 第一个举办了生态开放日,数千名员工观看了内部直播,并在满分 5 分的内部直播评价中打出了 4.9 分;天穹大数据 Oteam 在内网分享技术心得,获赞上百个,员工留言 " 大厂表率 "" 非常支持这种有意义的事情 ";数据库 Oteam 的内部分享也被员工表白 " 强大,慕名而来点赞 "……

所有这一切被卢山归纳为开源协同的 " 深水区 "。尽管腾讯在短时间内内部开源的比率让行业内惊讶,但开源率和 Oteam 数量都已不是腾讯的重点。

10 月 30 日,腾讯技术委员会面向全员的活动上,卢山说:"2020 年我们的重点是 Oteam 质量、是开源治理,往深水区走了。"

腾讯技术委员会与各事业群程序员合影

当然还是会有不一致的声音。

比如开源治理所发布的代码规范,为了代码缩进两格还是四格,腾讯内网里程序员们吵个不停,卢山笑说这是好事," 大家互相争吵,代码越写越好 "。比如经过激烈 PK 后,依然有类似的团队协同不了,特别是涉及到一些业务核心利益时,郑亚峰仍旧耐心地密切观察,保持沟通。

但无论是卢山,还是郑亚峰,都不再焦虑。

" 开源协同,没有里程碑也没有终点,最终开放和协同会化为无形,成为腾讯的一部分。" 郑亚峰说," 我们一直在路上。"

卢山更看重的,是开源协同背后的信任。当时代对腾讯提出新的要求,只有敏锐地自我革新,用开放协同的文化打破烟囱林立,找回信任,才能勇立潮头,静观风雨。

" 技术的开放协同培养了信任,信任才能产生更长远的创新和影响。" 卢山说。

来源:36氪 陈其亮

随意打赏

提交建议
微信扫一扫,分享给好友吧。