腾讯的一场自我革命

腾讯的一场自我革命
2022年07月19日 10:05 叁里河

2019年年初,在930变革3个月后,腾讯宣布了两大技术战略:开源协同和自研上云。

如果说开源协同意在推倒公司内的技术烟囱,让曾经封闭在烟囱中的技术人员建立连接,互相看得见,实现“车同轨,书同文”的技术中台梦,那么自研上云则是为“同”指明方向,是一次对公司技术价值观和研发文化的全面审视。

不同在于,自研上云是一次自上而下的变革,这种变革方式冲击着腾讯这家公司过去更习惯的文化基因:依赖和重视自下而上的创新力量。这个过程考验一家公司底层基因的强韧度,也验证那股底层创新力量的自我进化能力。

把大象放进冰箱,从来不是一个笑话。所有获得过巨大成功,也因此成为庞然大物的公司,在新的技术条件下想要保持年轻,保持公司的使命,保持组织的活力,都是一个把大象放进冰箱的过程。

而且要大象自己走进去。

一个灵魂拷问

930变革前夜,汤道生在香港总办会议上被委任以To B业务重任的同时,也向马化腾、刘炽平提了一个条件:公司要全力支持CSIG推进腾讯内部自研上云的技术战略。

“既然公司已经明确CSIG要牵头去做To B的业务,把云业务作为这个BG业务体系最核心的事儿去干,那我必须要解答客户其中的疑问:腾讯的业务有没有用腾讯云”。

“如果微信、QQ都不上云,我们出去怎么跟客户谈?”

这个问题真正值得焦虑的地方,不是客户会因为微信、QQ没有上云而拒绝腾讯云,而是关于腾讯云究竟是腾讯的“云”,还是仅仅是腾讯云。

为了解释这一点,腾讯云高级副总裁、CTO王慧星复述了一位客户曾经对他说的原话:

“我看你们微信一直还是很稳定的,为什么腾讯云提供给我们的KV存储会有毛刺?你们内部微信是用这个东西吗?”

“毛刺”简单理解就是计算资源利用不均匀、不充分,属于一种常见而恼人的计算机“异常”,需要技术人员后台解决。

王慧星认为,客户真正想问的其实是:微信、QQ、游戏等自研业务上的技术积累和技术优势,能不能通过云,复用到自己的业务上?

但答案无奈而残酷:不能。

腾讯成立于1998年。这个时间和之后几年属于2G时代,国内的基础网络设施建设和互联网技术都处于原始起步阶段。

QQ,当时还叫OICQ,上线的时候,是创始人之一的曾李青靠刷脸从老东家深圳电信那里租来了一台服务器。几个创始人同时还忙乎另一个产品:网络寻呼业务,QQ并非唯一押注的产品。

这大概是腾讯最早的“赛马”,在当时看来,后者似乎还更有成功气质,幸运的是他们也没有放弃QQ。

为了应付网络不稳定和租不起更多服务器的问题,腾讯没有用当时即时通信软件常用的TCP协议,而是选择了UDP协议。两者的差异是,TCP协议传输稳定性好,但是需要一直维护连接状态,费服务器;UDP不稳定,会丢消息,但传输快,能连多台服务器,省钱。

本着修修补补能用就先不花钱的原则,技术小组靠在上层不断优化和重写慢慢解决传输不稳定的问题。据《腾讯传》记录:QQ推出第一周就连续完成三个迭代版本,极大地“激发了用户的使用热情”。

创始团队本来预估,3年后QQ能达到1万用户。腾讯初代CTO张志东还根据这个规划算了笔账,“如果用户数量在一万人以内,每年的人员开支、带宽租金和服务器费用不会超过10万元,应该是养得起的。”

然而上线两个月后,用户增长开始几倍几倍往上翻,服务器一次次濒临崩溃,张志东不得不经常跑到深圳电信的机房调机器。

服务器太贵了,一台配置稍微好点的服务器要五六万,公司花不起这个钱,技术团队于是围绕服务器性能做了大量优化,“包括算法的精巧、降低CPU的消耗、把一些运行放到更底层的数据库等”。

这种因陋就简、用技术能力柔性解决和支撑业务发展的技术文化,是腾讯“海量之道”的雏形。它支撑了腾讯在PC时代以及移动互联网时代的海量并发,也让腾讯在底层存储、网络异常甚至遭遇数据中心断电时,逐渐积累起强大的容灾和调度能力。

自此腾讯在科技行业的坐标系里,形成了自己的技术哲学:找到一门业务,通过技术加持和技术优化,把这门业务延伸出更宽广的科技意义。

这种技术哲学的特点是与业务深度绑定,技术研发人员有广阔的发挥智慧的天地,技术的根稳稳扎在业务上,它的好处是业务可以借此更快的繁茂生长——腾讯几乎所有的成功的产品都离不开这一点。短板是,“技术专用”,“人才专有”,导致很难在其他业务快速灵活复用。

在依赖产品能力打天下的消费互联网时代,这一技术哲学的短板几乎可以忽略,但是到了以云计算为先锋的产业互联网时代,情况不同了。

云计算最开始是作为一种更灵活、更方便的计算资源诞生的,被称为互联网新时代的水和电,但是互联网语境下的“水”和“电”,只代表重要,不代表稀缺。

对客户来说,用哪一家的云,只是采购方式不同,技术体验差别不大。这注定了云计算从一开始就要面临价格战的血雨腥风,也注定经历价格战洗礼后,各家云厂商的基础服务能力会趋于同质化。

“过去大家理解的云主要是IaaS,有一定规模的客户会逼着你亏损地提供服务,CDN就是一个很好的例子,如果很在意收入规模,亏损也要给他们。在这样一个竞争激烈的市场,毛利率很低,作为云厂商,说实话很痛苦。”

5月下旬的一次采访中,腾讯公司高级执行副总裁、云与智慧产业事业群CEO汤道生没有避讳行业竞争的惨烈。

在国内公有云市场整体规模和腾讯云营收连续增长的背后,他看到的是:“资源型的公有云业务,天然就很难做成高利润”,而腾讯其实并不适合做集成商的角色。因为腾讯的基因里面,需要向最优秀的技术人员提供市场上最好的待遇,一旦进入同质化竞争的红海里,这个承诺就失去基础了。

中国云计算市场与美国不同,移动互联网之前,美国已经培育了成熟的面向B端的软、硬件市场,养活了包括甲骨文,IBM,SAP在内的一大波企业服务商。

而国内企业级IT消费处于初级阶段,大量中小企业每年的信息化投入其实是买电脑。据国家统计局、Gartner、美国国家软件与服务公司协会的数据,2019年中国IT支出只占GDP的1.4%,其中设备和通信服务占了大头,企业软件和IT服务支出在全球市场的占比分别只有3.1%和4.2%。

当云计算市场的客户主体从互联网行业,切换到传统行业之后,云厂商必须面对客户技术基础和技术能力不足的问题。如汤道生所说:“传统行业对云的需求不仅仅是资源”,那么,“卖资源的同时,如何体现我的价值?”

腾讯云的价值就藏在客户的拷问中,所有人都心知肚明:腾讯在各种海量业务上积累的技术优势,既是竞争激烈的云计算市场敬畏的,也是云计算市场需要的。

然而就像“奢侈品手工制作大师的经验,无法直接用于指导工厂流水线生产”一样,在腾讯层层遮蔽的技术堡垒中,那些看起来非常厉害的技术,却如同无法产品化、工程化的屠龙刀,只能骄傲而孤独的被传颂。

旧制度与大趋势

更大的危机在于,2018年的一篇文章,让腾讯在技术上一贯的骄傲被打翻在地,2万多名研发人员的困惑和焦虑,最终演变成一场内部舆论风暴。

这一年是腾讯历史上可以跟3Q大战那年做对比的年份。不同在于,这一次的痛苦在内部触手可摸。首先是高管们从后台看到公司整体的基础流量指标在下降——骨干网上的带宽占了多少,是衡量一家互联网公司业务活跃度的最好指标——流量下降,意味着有对手兵临城下。

压力映射到员工层的表现,是业务团队开始悄悄讨论公司在短视频赛道“丢球”的传言,而技术团队则在“腾讯没有梦想”的外部质疑中,陷入深深怀疑,“腾讯是不是也没有技术?”

腾讯有一半以上员工是研发人员,技术氛围浓厚,技术讨论的氛围更浓厚,930之前公司内网上每天高浏览量、高回帖量的热门帖子,至少一半是技术问题。

“一开始觉得咱们那些自研的组件能做到海量高并发,觉得很牛,但是看到很多业内开源的组件后,慢慢觉得别人的组件做得比我们更好。如果我们一直用现在的后台技术栈,整个团队也好,个人也好,都会跟行业的技术脱轨,并且越来越落后。”

“行业内已经基本上做容器化跟做弹性伸缩了,自动扩缩容是不用耗人力的,但是QQ还是要申请机器资源再去扩容,虽然从业务上来说,业务也能顶得住,但是研发效率跟研发技术是有点偏落后的。”

“value就只支持一种数据结构,所以只能写很多业务逻辑代码,把这一堆业务逻辑代码序列化再塞到CKV的数据结构里面去。如果用redis,完全可以写很少的代码实现相同的业务需求。”

刚开始,总办成员们会盯着内网上的热榜,看到提意见的帖子,就发到技术委员会的群里,“该谁的,赶紧上去认领,赶紧回”。之前的要求是看到问题必须第一时间回贴“收到,请等待我们解决”,然后一天或者半天之后,问题解决完了再回去回贴解释清楚,如果短时间解决不了的,就回贴承诺在什么时间内去解决。

后来发现,很多帖子没法回了,大量的吐槽帖子后面跟着的总结和回贴,已经是完全的负能量输出,失去了解决问题的导向。

私下里,技术人员的担忧和焦虑更现实:

“如果还是按照腾讯内部很多自研组件的那些轮子,你就算掌握了那些组件的一些能力,出去之后个人也不会找到特别好的工作。”

“一个封闭的循环,不与外部接轨的情况下,技术演进的唯一动力就是你的业务需求,最终你这个技术的发展,基本上都是会陷入停滞,自研—优化—推翻形成这样一个循环了。”

所有不满最终指向了腾讯的技术路线,曾经将技术人员绑在业务线上,造就技术人员“专”与“精”的同时,也因为技术的根长在业务上,压抑着技术和技术人员跳出业务圈子、向外眺望的冲动。

舆情汹涌,一浪又一浪。

“如果吐槽的声音上到总办这个层面,那肯定是我们有没做对的地方”,腾讯总办成员逛内网是一个例行工作。内网是初代CTO张志东退休前力主建立的,为的是公司大了之后,留有一个员工跟管理干部直接沟通的渠道。内网的发帖规则是,发帖可以匿名,评论必须实名。所以吐槽总是最狠的,回贴解决问题的则往往要谦逊一点。

汤道生跟内部的员工做了大量访谈,结果发现,“任何一个技术人员,不管是在腾讯内部还是腾讯外部,如果他们要出去创业、要打造一个互联网服务,他们一定会在云上开始。”

“他们也不希望在老的架构里去做只有在腾讯特定团队才有意义的支持,还是希望能够面向未来。云那个时候已经很清楚,就是未来。”

既然大趋势已经这样,大家都希望公司内部的工作“不再是基于只有在腾讯内部有用的技术技能”,还希望能够更面向未来。汤道生觉得自研业务、自研产品的转型——基于云的架构来设计——可能是时候了。

2018年底,正在参加部门年会的邹辉,接到一个电话,电话内容是让他们研究一下腾讯内部业务如果要上云,该以什么样的方式上云,“到底是上到虚拟机,还是上到K8S这一层,让我们说明一下技术趋势和优势。”

作为腾讯云容器产品中心总经理,邹辉对这个电话记得特别清晰。

多年来他的团队一直为割裂的研发环境痛苦,“一方面要给用户提供一个非常先进的、能够提升效能的容器产品,另一方面我们自己还需要用传统的物理机、虚拟机打包,非DevOps的研发模式。”

而这个电话让整个团队兴奋起来了:腾讯总办领导正在着手解决这种“割裂”。

他们不知道的是,就在他们研究汇报完后不久,关于自研上云的“云”究竟是什么,在总办会议上闹僵了。

争议“真假”上云

2019年初,CSIG代表整个公司做云基础设施的团队去汇报,汇报做了一半,被TEG负责人卢山叫停:

“是不是只要用上运管放出来的腾讯云的虚拟机,你们就算上云了?”

“是。”

“不好意思,这不是我理解的上云。”

会开了半截,开始停下来讨论。

卢山很坚持:必须通过容器上云,根本性建立起面向未来的底层技术架构。

但卢山也理解CSIG的苦衷:“他们肯定之前讨论过无数次,各个BG都有自己的考虑。因为公司要求自研上云要有一个结论,他们就说算了,反正你好我好大家好,糊弄过去。”

虚拟机和容器是云计算里两种不同层级的技术应用。

虚拟机是通过在物理机上加一层应用,把一台物理机虚拟切割成多台云服务器,然后实现对底层资源的灵活调度,是最基础的云计算代表。

容器是在物理机的操作系统层面之上,把应用和依赖的环境打包成集装箱,因为搬迁转移的时候不需要运营操作系统,比虚拟机更轻,对各种部署环境也更适应,是一种更灵活的弹性调度技术。尤其自2016年,Google开源了容器集群管理技术K8S后,以K8S为基础的容器云已经成为业界最主流的弹性调度技术。

CSIG汇报自研上云方案时,有一个特别打动总办的故事:

以前各BG有各自的资源池,为了预备不确定什么时候会到来的流量高峰,每个团队都会在资源池留一部分空闲资源,相当于每个业务都有一个buffer,一个业务一个,六个业务就是六个buffer。

自研上云后,各BG聚到一个资源池子,就可以只留一个buffer。

大江大海里腾挪空间大了,还能利用上各个业务不同的流量高峰,以前各顾各的,过了高峰期,后台算力就闲置了,聚到一个池子后,可以通过错峰利用,把一些离线训练放到那些暂时闲置的服务器上,省下原来需要部署离线业务的服务器。

总之,自研上云能做到成本优化。

但这个故事在各BG那里没什么吸引力了。

2018年和2019年初,互联网行业还没有经历之后的政策飓风,腾讯的股价虽然跌了,不过公司赚钱的产品还是很赚钱,降本增效还不是一件十分紧迫的任务。

一般来说,体量大、消耗资源多的业务上云更容易实现成本优化,然而矛盾在于,各BG里最大的业务往往也是最赚钱的那个业务,因为“大”,资源成本在总成本里本身就是很小一块,因为盈利能力强,对成本也没有那么敏感。

腾讯当时的情况是,腾讯云做虚拟机的时候,各BG其实也已经有一部分业务用了虚拟机,只是都放在各自的资源池。池子虽然小,好处是可控,底层用市面上性能最好的物理机,一买都是同一批号,好调度,好管理。

而那些仍然用物理机的,则一般都是因为物理机在满足业务特性上有一些不能替代的优势。在虚拟机技术上折腾投入,不如直接用物理机省心省事儿。

所以如果自研上云是上到虚拟机这一层,CSIG需要证明自己在虚拟机技术上有独特优势,不仅比各BG好,而且可以达到各业务以前依赖物理机的技术要求。

这当然也挺不容易,但是作为一家重视技术的公司,技高一筹,多数时候还是有说服力的。上到虚拟机这一层,对各业务来说,只是改变了底层资源的供给方式,相当于连接上了云社区,不再需要自己“挖井吃水”、“挖煤发电”。虽然不同业务对水压水质、电压高低或者电压稳定性有要求,不过终归是技术范畴的难度。

用统一的容器,却是另一回事。

打个类似的比喻:用统一的容器,相当于让“业务”搬到一栋共享办公楼,不仅共用水电,还要共用空调、安保、电梯、通风——按照卢山的要求,真正的云原生是以后前台、打印机、保洁等服务,也要共用的。

问题是,腾讯云在2016年推出基于K8S的容器平台TKE之前,自研业务基于各自的业务特点,也搭建有各自的弹性调度技术,这些技术有些是基于K8S,有些是自研自建,但是它们运行多年,与业务结合地亲密无间。

就技术能力来说,自研业务反而更自信一点。

一个直观的数据是,当时每个业务的弹性调度平台,直接服务的内部业务都有几百万核,而腾讯容器云在2019年,整体规模只有几十万核,是每个BG的1/3—1/4。

“人家少的几十个人,多的上百个人的团队在做这个事情,已经做了那么多年,现在让统一到一起做,这个过程中阻力一定很大”,卢山理解其中的难度。

但他和汤道生都认为,上云上到虚拟机这一层,意义不大,就好像是只是把机房从深圳搬到清远一样。

“在PC互联网时代,技术私有化是没有问题的,只要能支撑好这个生意,不管是用开源的组件,还是自己闭源的私有化解决方案都是没有问题的”,但是今天,“只要在云原生上掌握那些函数,找几个能写逻辑的程序员就能搞定”。

只有让业务在云上生长,完成云原生改造,才能让2万多技术员工随时看得到外面,才能保持腾讯在技术上的先进性。而在底层使用统一的容器,是云原生改造的第一步。

当时参加CSIG汇报的还有刘炽平,卢山跟刘炽平解释了之后,后者也很快听懂了。

腾讯的总办会议不是表决制,没有少数服从多数那一套,有异议的决策,一般会先搁置。但自研上云是一个大家都能看明白的事,“云原生作为技术开发已经成为一个共识,那些有知识的管理干部很难说不做这个事情。”

最终在这次会议上,大家同意,把K8S定为开源协同的三大项目之一,同时也把自研上云的调子定到了“必须上到腾讯云的TKE”。

没有尚方宝剑

卢山大概是腾讯总办最喜欢自黑和自嘲的老板。他负责的TEG是腾讯内部的核心技术支持平台。930之后汤道生负责CSIG,在前方直面B端市场,TEG则以类似武器研究部门和弹药库的角色,提供技术和服务支持。

卢山曾放话:对CSIG,要往死里帮。

这背后其实有卢山和汤道生多年背靠背作战结下的深厚情感。TEG在2012年成立,定位是做基础设施,比如数据中心、服务器、安全、存储、计费等。其中,TEG第一个真正意义上具有核心业务价值的研发团队是存储团队。而存储团队成立在2007年,隶属于当时的O线,成立这个团队的时候,腾讯内部存储需求最大的团队就是汤道生掌管的QQ空间业务。

换句话说,存储团队今天出色的技术基础,是由QQ空间的业务“磨练”出来的。在可以自己造轮子的情况下,汤道生却选择了支持和信任TEG的团队。

对卢山来说,支持汤道生和腾讯云,除了大局为重的理性选择,也还有一份“报恩”的温情。

2019年初,腾讯宣布成立技术委员会,推动开源协同和自研上云两大技术战略。其中自研上云的技术底座由TEG和CSIG共同承担。

战略定了,不一定能跑起来。

TEG运营管理部的郑亚峰经常感到无奈,“每次开会的时候,大家没有反对的,都是很好很好,一出会场,没人记得这件事。”

他们自嘲这叫“令不出技术委员会”。

“大老板坐在一起说要上要上,然后我们去执行去沟通的时候,却苦大仇深、挑战重重。”一位腾讯云的员工回忆最开始上云既无奈又委屈。

2019年初,关于容器上云的会议开了七八次,还是推动不下去。后来各个BG勉强同意,其实是又在CSIG做的TKE基础上包上外壳,在壳上再去做管理工具、调度,公司于是出现了一堆XXTKE。

“等于对TKE又做了大量的魔改”,卢山跑过去问,“到底有什么是CSIG不能做的,非得上去插一刀?”

TKE团队封闭开发

大家各有各的理由,而且并非全无道理。

比如腾讯游戏,不同的游戏,对应着各不相同的架构,要做云原生改造工作量特别大。另外,游戏本身属于内容性质的服务,以往更多的精力也放在内容开发上,架构上面的技术投入本来就相对偏少,想立刻马上搞定云原生是很不现实的事情。

另一方面,当时腾讯云的容器化也没有做得特别稳定,经常会有成功率降低或者两个pod容器之间网络不稳定的问题。这些会直接导致前端业务出问题,各业务线里支持容器统一、云原生的运维人员,需要承担业务老板抛过来的巨大压力。

对业务来说,多加一层容器,系统的复杂程度更高了。以前调度系统可能不够“自动化”,但稳定可控。切换到云原生后,既不可控,又影响到稳定性的话,在“重视用户体验”的大前提下,几乎可以一票否决。

更重要的是,技术人员也会有“安土重迁”的情结。很多业务线在多年前搭建了自己的资源调度平台,这些平台运行多年,见证了业务的发展壮大,有些还做得不错。

比如微信的Yard平台,是在微信增长最快的时候,拉出来一支很强的技术团队去做的。那时候K8S还没有开源,等K8S成熟的时候,Yard也用顺手了,前几年微信利用这个系统在闲时错峰做了一些离线训练,还拿过一个围棋AI的比赛冠军。

像这样的情况,技术团队不仅要做技术上的准备,也需要心理上的缓冲。

而腾讯不是一家追逐“铁血文化”的强执行力公司,马化腾看重自下而上的力量,相信“很多创新往往是自下而上”,公司文化一向鼓励试错,也容忍失败。

卢山虽然在总办会议上很坚持、很笃定,但推进开源协同中,看到技术团队不配合的朋友圈内容:“我凭本事打下的江山,凭什么要让出去”,也只是气得把电话打给团队负责人赌气说,“要不我们别做了”,而不是以职位压过去一个“必须怎样”的命令。

汤道生更是直白的承认,自己“没有杀手锏”,“强迫不了业务团队的技术决策,只能从(提供)价值去做”。

所以在腾讯,一直以来都是自下而上的行动会很迅速,而自上而下的时候,却总是必须得“先把道理讲通”。

“我上云了,会有什么好处?没有好处,为什么要上云呢?要不成本降低,要不性能变好,要不然稳定性提升一大块,肯定是有一些诉求的。”

腾讯云副总裁高向冉2008年大学毕业进了腾讯公司,讲起话来有东北人的爽朗和幽默,他形容自研上云最开始几个月的状态是:“随意”。

“开始是很自发性的,’大家来上云吧’,是这种感觉。”

一说上云,都来了。有的是BG来申请,有的是产品组来申请,有的说我们是某某部门申请,还有的说我个人也想申请。

涌过来之后发现,云的官网上没有符合自研业务诉求的产品,所有产品都是都是面向外部的。

这下炸锅了,大家又涌到内网上吐槽,“自研上云就是自己研究上云吧”。

腾讯云也很头疼,一堆申请,有的连是谁申请的都弄不明白,到底给什么权限呢,肯定不能一样,但是怎么定?

“它没有一个统筹的概念,说公司让上云,就是必须上云、强制上云。相当于自研上云刚开始不是一个军令状,是一种文化建设。”

然而,不管是文化建设还是看起来过于“随意”的状态,自研上云最终还是摇摇晃晃开始了。

虽然这个自上而下的技术战略,跟这家公司的技术路线和文化基因处处相悖,但汤道生、卢山,包括马化腾和刘炽平还是愿意相信,这家从诞生之日起就充满危机感的公司,其底层蕴藏一股强烈的自我变革的力量。

这股力量现在要经受一次考验,它有可能在一次事关它自身根基的战略中受到损伤,或者让那个豪情万丈的战略半路夭折。但是,仍然有一种更有希望的可能:它最终会与自上而下的战略在碰撞中汇合,然后为这家公司沉淀出新的进化能量。

最难搞的客户

2019年2月初,自研上云出师不利,首个自研上云可用区的交付时间比原计划延迟了3天。云团队一枪没开,先哑火了。

延迟的原因其实很无厘头,不是卡在技术能力上,是卡在流程上。原定在周五交付,因为账号、计费上的流程细节没梳理好,腾讯云搞到当天凌晨一两点钟,不幸后面跟着周六周日,最后成了延迟3天。

这个事件几乎是整个自研上云的一个缩影。它是腾讯内部在经历十几年的技术封闭开发后,身处不同技术堡垒的团队初次尝试连接对方的必然结果:尴尬、琐碎、曲折,以及远不及想象中美好。

自从公司宣布自研上云,经历了最初的兴奋后,云计算产品策划经理刘洁欣意识到,服务内部客户远比想象的更有挑战。

她只是没想到,第一个被挑战的是云服务器的性能。服务外部多年,云团队以为自己的虚拟机性能至少是行业前列。

然而自研业务第一轮压测后给出一个崩溃的反馈:“云服务器的性能跟物理机性能相似度只能达到85%,差了15%,差异太大了,性能差异至少要降到8%,否则上不了。”

自研业务不是故意这么苛刻,那些超大体量的巨无霸业务,只能是逐步切到虚拟机上,如果性能差异太多,会影响业务前端体验。

以前外部客户做虚拟机测试,都是测单台云服务器的计算性能,但是自研业务做压测,是把所有云服务器放到一台物理机上,同时压测它们,看看互相之间会不会有影响。

云团队后来发现,自研业务不仅在单个指标上测试严格,不同的自研业务内部,还会根据不同的业务场景再提炼模型,做多种测试。比如QQ业务下,QQ群有一个套测试指标,QQ红包又有一套测试指标,而每一套都复杂细碎。

“我记得当时好像是QQ红包,它分两块,分场景测试和性能压测,我不记得是不是还有个稳定性测试。然后其中场景测试又区分了三种场景,然后每一个场景里面都涉及到近十个的指标项,比如延时、丢包率等等。”

差不多整个2019年,刘洁欣参加自研上云周例会的心情都像是去参加考试,每次周例会云计算产品团队都能接回一堆问题。刘洁欣听过最多的话是,“你这个问题解决不了我就用不了。”

腾讯云CVM团队

服务外部客户的时候,腾讯云也会遇到苛刻的要求,但内部客户的要求往往更直接精确,他们在技术上积累深厚,衡量技术实现的标准又多又复杂,而且往往有理有据。

有一段时间,腾讯云音视频团队发现全民K歌海外版“WeSing”的量突然不动了,就找过去问原因。结果对方直接丢过来一个很大的文档,“你们自己看看比得过人家竞品吗?”

文档上面列满了腾讯云音视频和竞品的各种质量对比,“进房耗时没有人家好”,“清晰度没有人家高”,“秒开率没有人家高”。

原来“WeSing”同时用了腾讯云和竞品的音视频产品,两边对比后,发过来这么一个质量报告。

这个报告逼着音视频团队做了好几个版本的迭代,每天跟着做对比、优化,一点点赶齐并且最终各项指标都明显超过了竞品,才慢慢重新完全赢回“WeSing”。

这些还都属于技术上有比对、有参考的。对云团队来说,更难的那部分是那些闻所未闻的要求。

2020年初,腾讯云高级副总裁、CTO王慧星带着腾讯容器云团队,从深圳跑到广州跟微信开会,商量微信的整体上云。

刚见上面,微信架构部门就提了一个尖锐要求:云原生改造后所有架构都要做多地三园区容灾,容器团队最好能出个报告,看看到底哪些模块能做好,哪些做不好。

跟着一起去开会的于广游惊呆了。

他在2014年加入腾讯,经历了腾讯最好的年份,然后又在2018年与所有技术人员一起,经历了“非常痛苦的过程”,他对内部业务能用上TKE盼了很久,谁知道第一个坎儿就这么可怕。

多地三园区的意思是,要在不同的地方搭建完全相同的系统,某一个地区出现重大故障后,比如地震,可以无缝切到另一个地区。然后同一个城市下面,要有三个机房,三个机房的网络和电力必须是独立的。这样三个机房中有一个出了故障,就不会对业务造成任何影响。

这个要求其实是微信真实踩过的坑。2013年,因为光缆被挖断,微信曾断线几个小时。自此之后,多地三园区容灾成了微信最基本的架构要求。

但于广游没见过这种要求,他的第一反应是,“有一种不被信任的感觉”,然后一种强烈的自卑升腾起来,“我们技术做得很差”。

后来于广游遇到了更多类似“崩溃”的时刻。

PCG好不容易同意用TKE了,却指定了特别多的参数,多到让于广游怀疑,他们根本就是不准备用这个容器,而是要在上面搭建自己的运营平台;

IEG说有他们有很多老旧业务,如果要迁到容器上,需要容器云这边能帮他们做到固定IP。但云原生的特点就是不让容器关心IP,这是容器技术之所以轻便的原因。

最初的一段时间里,于广游经常痛苦地思考,他们是不是根本就不想上云?

但是跟云计算产品中心的刘洁欣一样,他们很快发现,这些看似苛刻的要求,最终帮腾讯云长出了更强壮的肌肉,成为服务外部客户时的新能力。

“我们的客户越来越专业了,近年来提的需求的标准也越来越高了”,刘洁欣举了一个例子,“2019年那个时候,只有自研业务会去关注稳定性怎么样,从2020年底到2021年,渐渐地很多客户也会问,’你这个服务器是不是饱和的’,就像这些比较基本的去确保稳定性的问题。”

音视频团队的技术专家一边咬牙切齿:“私下说,我们挺‘烦’他们的,因为他们要求太高了,稍微有一个网络波动或者稍微有一台机器死机了,他们都会发现。”

一边又十分傲娇:“但是从另外一个角度来说,我们也挺感谢他们的。因为如果不是内部的客户这么细致,他们的系统做得这么健全,他们对用户这么负责任,我们的产品也不会提升这么快。”

于广游现在心满意足。他觉得自己像上帝选中的人,“我既有内部客户去背书,也能够打磨我的产品去做技术创新”,自研上云提升了他对腾讯云以及腾讯的信心,“反正就特别有信心”。

打开部门墙

2020年10月底,在腾讯云觉得主机上云差不多终于算是闯关成功、甚至已经开始收到业务团队送过来的感谢小蛋糕的时候,内网上突然爆出一个高热匿名帖子:

“作为腾讯自研排面的《天涯明月刀手游》最近游戏体验太差了吧,天天活动时间卡、掉线、排队?”

一位天刀手游运营人员在次日回应这一匿名提问的时候,将问题核心指向服务器硬件的性能问题。

公司的游戏业务用云用出了事儿,全公司上下震动,都开始追问“到底怎么回事?”

腾讯云在服务自研业务上云的过程中,虽然遇到很多性能挑战,但是基本上都是在前期测试的时候,就把一些性能标准对齐,同时也优化到业务所需的数值了。实际业务部署上去之后,在真实业务运行的过程中,基本上都是没有遇到过问题的。

这是第一次用云跑实际业务的时候出现这么严重的问题。

由于承担了游戏用户在前端的一些很负面的反馈和压力,天刀手游业务团队的情绪已经处于极度焦躁,跟腾讯云的合作意愿也有所降低。

“我的数据在这,你们自己去看吧。”

腾讯云和相关团队的研发、运维定位了两天一夜,终于搞明白,这并不是一个复杂的技术故障。除受游戏火爆程度超过预期、以及MMORPG游戏多玩家聚集特点影响之外,双方因为前期需求沟通不够充分,最初在服务器的选型上没有选到最优方案,应该部署计算型的云服务器,但是选了标准型,导致性能跟业务要求不匹配。

这件事再次证明,内部业务线之间不仅需要技术上的互通互补,也需要更全面更充分的交流沟通。

自研上云开始后,卢山和汤道生发现,上云过程中,公司的业务是强势方,是甲方,作为承载上云任务的CSIG是乙方,双方是一种不对等的沟通。

2019年末,自研上云推动将将一年的时候,TEG下属的运营管理部被拉到自研上云项目小组,充当起沟通仲裁的角色。

运营管理部的成立有一个插曲。

2013年,腾讯的搜搜合并给王小川的搜狗。谈完合并,刘炽平跟王小川聊天的时候,无意中问了一句:你们后台用了多少服务器?

王小川说2000台。回来之后刘炽平又问搜搜用了多少台。

得到答案说4000台。刘炽平回了一句很重的话:富二代。

当时腾讯每年运营成本增长飞快,每个业务都在飞奔向前,后台资源浪费严重。因为搜狗搜搜合并的事情,刘炽平开始抓着各BG做成本优化,后来专门找了一批懂后台技术的人,深入到各业务“从生产环节就盯着看”资源利用率是不是达标,技术实现的方案是不是合理。

这批人员后来就成了运营管理部,专门负责各业务线降本增效的目标和考核,而降本增效事实上也跟技术人员的晋级加薪直接挂钩。

参与自研上云后,运营管理部给每个业务线定了每年上云的目标,但它更重要的角色,还是仲裁和沟通桥梁:一边是它为各业务指定了唯一云服务商腾讯云,另一方面,它也需要把乙方的要求,压给腾讯云,确保云团队不怠慢业务方。

事实上,自研上云的大部分时间里,建立信任都是第一重要的事情。

技术骨干们像保险推销员一样,几乎每周都要到各个BG跑一下,当作拜访客户,“最近怎么样,有没有问题,要不要测试一下”。如果业务团队对云或者上云有任何的疑问,他们就帮业务搞一个培训。也会偶尔问问,发布了新功能,要不要体验一下,或者有什么技术问题需要解决。

“内部大家本身是有一个政策前提的,其次大家也是有一些信任的,等你多跑几次,大家一块解决几次问题,然后做几次技术交流、一块吃几顿饭,大家觉得腾讯云这帮人还不错,真的是可以搞搞的。”

一个腾讯内部的技术专家总结上云经验时说:“把内部的客户也当外部的客户来服务,怎么蹂躏我都行,我的目的就是帮你做好。”

在最难推进的容器统一上,腾讯云和TEG一起牵头成立了K8S Oteam,TKE团队和其他业务团队的技术人员都属于Oteam的一方。

“你可以把老的东西贡献进来,我也可以把我的东西贡献进来。”

云团队希望能够在跟技术小组的协作中表明心迹:TKE这个平台的技术代码是由大家共同贡献的,统一容器化技术,绝对不是把业务原来的平台全部废掉,全部迁到TKE上,而是集大家之力,共建一个更好的容器。

自研上云期间,腾讯内部几乎所有培训平台和学习平台都被云团队用上了,他们在内部找了很多讲师,不仅有来自腾讯云的,也有来自各业务对上云有独特理解的。这些内容有的做成了录播课,有些是直播,还有一些直接以技术研讨会的形式现场“selling”。

技术人员聚集的内网也成了最好的上云宣传渠道。容器团队定下内部任务:每天一篇容器相关的技术文章。为了醒目,团队在每篇文章的“前面都加个小括号,写上TKE团队,后面才是标题”。

“逢山过山,逢海架桥,没有什么捷径”,作为看得见的最大受益者,2019年初做自研上云规划时,腾讯云的管理层就定下这样的策略,“性能不行就要把性能提升上来,成本不行就要把成本降下来,服务没跟上就把服务细化到位”。

腾讯云不是孤军作战,各业务内,积极拥抱云原生的技术人员,是另一股冲破部门墙的强大力量。

“云原生的好处再清晰不过了,从软件开发,到业务交付周期,到业务运营运维的难度,再到每个同学的职业发展、开发者的职业幸福感,云原生都是可以带来好处的,这是大势所趋。”

这股力量来自技术人员对技术本身的敏感,也来自腾讯基因中对危机的敏感。

“我们也反复跟业务团队、产品团队沟通,不优秀的架构、大量的生产环境缺陷,这些都是债务,你可以背负债务前行,就像企业可以贷款一样的。但是债务过多,每一次前行、每一次迭代需要偿还的利息都过重的时候,你就必须停下来偿还债务了,不然它就拖垮你的业务往前奔跑。”

一些业务团队在内部对云原生的布道甚至早于公司宣布自研上云。腾讯文档后台开发中心一位员工说,“我对现代工业化的软件研发模式是非常拥抱的,在上云原生之前,就一直给团队讲工程化的理念、做研发文化上的建设,所以这一块我是冲在前面的。”

时至今日,几乎每一个参与自研上云的人,都可以轻松总结出诸多上云的好处,它让腾讯云更强大了,业务线调度资源更从容了,技术人员的视野更宽广了,公司内的交流前所未有频繁了。

看不见的云

腾讯是一家从诞生之日起就有强烈危机感的公司。马化腾很早就在一次采访中说,“腾讯从来没有哪一天可以高枕无忧,每一个时刻都可能是最危险的时刻。”

他认为这种心态不是“焦虑”,而是一种始终处在“昨天取得了多少成果”、“今天怎样能点滴优化进步”、“明天如何应对挑战危机”三者之间,这是一个反省复盘、重整上行的过程。

这种基因种在几万腾讯员工身上,在消费互联网时代,这是腾讯的制胜秘诀。

腾讯大部分产品是先在内部反复测试,用好了、觉得爽了才放出去。这是腾讯在To C时代屡试屡验的法宝,微信、王者荣耀,腾讯几乎所有今天广受欢迎的产品,都曾在内部被这么虐过、磨过。

腾讯云不是。腾讯云生于“外需”,长于“危机”。

2011年,腾讯走向全面开放之后,接进来的合作伙伴一进来就被QQ巨大的流量冲垮了。

QQ的技术架构经历过多年高并发考验,技术人员积累了丰富的经验,但当时大部分合作伙伴没有这个能力,甚至双方当时眼中的高并发都相差着好几个数量级。

“要把半条命交给合伙伙伴”,马化腾曾经这么向外承诺,那么合作伙伴需要帮助的时候,腾讯也必须下场拉一把,于是就有了腾讯云。

然而过去大获成功的赛马和烟囱,今天已经把腾讯内部分割成若干条毫不相关的领地——这种封闭和私有,与云的开放和共享格格不入,换句话说,自研上云是腾讯迎接云时代的必经之路。

谁都知道大象要装进冰箱了。问题是,大象装进冰箱的这个过程,究竟是重复那些疾风骤雨,孤臣孽子的故事(这些故事无论在中国历史上,还是在中国的商业竞争领域都不乏先例,而且至今被人津津乐道),还是用符合腾讯过去一贯价值观的方式进行——由顶层发起设计,基层大讨论,中层实施,部门合作,整个过程折冲妥协,但是步履不停。

腾讯自研业务上云的这场变革,证明了后一种方式是行得通的。腾讯的基因和价值观,让这场变革依然符合帕累托改进的定义,在没有人变得更坏的情况下,事情整体变得更好了:公司完成了既定战略,管理者降低了成本,拆掉了部门墙,新的技术平台让基层程序员也跟得上技术变革的潮流。

上云本身是一场纯粹的技术革命,只有帕累托改进,能让一家技术公司聚焦于技术变革本身,而不是在变革带来的阵痛中迷失方向。

2011年,贝佐斯在股东大会上向人们介绍AWS的时候说,“最激进、最具变革性的发明通常是那些让其他人得以发挥他们的创造力——追寻其梦想——的技术。”

差不多同一时间,马化腾在分享对中国互联网的8点看法中,把“云是未来社会的形态”作为第8点的内容。他说的云是指社会资源的聚合方式:平时以水分子形态存在,条件成熟、需要整合的时候,就聚合成云,任务完成又消散而去。

去年五一前后,核心服务差不多已经完成上云的时候,一个BG的项目小组在江西武功山组织了一次徒步爬山,当所有人爬到山顶后,云出现在他们脚下50米、100米的地方。那些后台技术人员激动了,纷纷发朋友圈:“我们是真上云团队”。

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部