把腾讯搬到云上,治愈了他们的技术焦虑( 二 )


好在腾讯技术和业务领导团队也深谙其中道理 , 经过一次又一次充分且扎实的沟通讨论 , 腾讯关于自研上云的计划终于在2019年初达成统一:不仅要上虚拟机 , 还要推进云原生 。
在后来的腾讯运营管理大会上 , 于广游所在团队向腾讯各BG汇报了基于TKE的云原生上云方案 , 建议各BG将自研的PaaS平台切到基于K8s的TKE上 。
于广游在兴奋之余尚没有意识到的是 , 他即将进入一种“冰火两重天”的境地 , 一方面数百个业务浩浩荡荡地进行云原生改造 , 另一方面“乱七八糟”的需求接连挑战他的K8s认知 , 压得他几乎崩溃:“是不是故意在搞我?”
比如 , 微信自研的调度平台叫YARD , 它和TKE一个显著区别就是每个容器对应的IP是固定的 , 从而可以充分保证服务稳定 。 那么切换到TKE上 , 能不能继续做到这一点?这让于广游一个头两个大:“固定IP是不云原生的 , 这违背了K8s中Pod应当是Cattle而非Pet的基本原则 。 ”
所谓“Pod应当是Cattle而非Pet” , 是指业务在出现问题时 , 容器应该像牲口一样可以被随时抛弃(删除重建) , 而不是像物理机、虚拟机那样被当作宠物精心呵护(更改配置) 。 当然 , 在跟业务团队开过几十场会以后 , 理性的他自然知道业务侧并非有意为难 。 在物理机时代 , IP本身就是设备的固有属性之一 , 部分业务系统依赖固定IP也是自然而然的 。
于广游们当时“捏着鼻子”把这些固定IP、服务原地变更等“不云原生的”特性都做完了 。 此外 , TKE团队还和游戏团队一起 , 做了适合Windows的容器;和微信团队做了多地三园区的高可用容器调度架构等等 , 解决了一系列繁杂的问题 。
度过“痛苦”的2019年之后 , 回头再看 , “原来之前虐我的那些东西 , 竟然都变成我们TKE最领先的技术点 。 ”于广游说 , 他对云原生、对“业务定制化”需求有了全新的认识 , 一方面 , 所谓定制化需求其实都是业务切切实实存在的需求 , 不满足这些需求业务就无法便捷地迁移上来;另一方面 , 定制化需求很多时候是首次被提出的需求 , 其背后也具备普适性 。
尤其是当酷狗音乐、微众银行等外部客户 , 也提出固定IP等需求的时候 , 更让于广游如梦初醒 。 内部海量业务的“定制化”需求 , 实际上成为TKE产品创新的原动力 , 由此也实现了内部自研业务上云反哺腾讯云的功能 。
当然 , 在结合业务需求进行功能创新的过程中 , 于广游团队始终坚持不破坏K8s的核心本质 , 例如可以扩展K8s支持原地变更 , 但不能违背“不可变基础设施”原则 。 “就如同凳子 , 可以有三条腿、四条腿 , 也可以有靠背、有扶手 , 外形千变万化 , 但它的核心本质是凳子 , 是用来坐的 。 ”
于广游牢不可破的技术哲学观在海量实践中获得刷新:“原本我认为技术应该义无反顾地向前瞻的方向迈进 。 但事实上我们发现 , 任何一个技术被创造出来 , 首先会在最适合它的细分场景落地 , 并不断发展 , 相对成熟之后开始同时朝着普适化 , 也就是兼容旧架构、支持更多场景的方向去持续演进 。 ”
于广游拿云计算演进技术举例 , 比如云计算已然提出虚拟机 , 可是行业也纷纷产出裸金属 , 看起来像是在开技术演进的倒车 。 “其实不是 , 任何技术都不是径直往前走的 , 而是同一个象限中的每项技术既要向前推进又要往后兼容 。 云原生技术也是如此 , 这才能焕发出更强的生命力 。 ”
正如于广游自己的豁然开朗一样 , 腾讯的自研上云进程也扬帆远航 。 2020年 , 腾讯各大业务基本都上到TKE , 2021年后开始进一步解决业务使用质量的问题 , 为了帮助大家把云原生用得更好 , 腾讯云团队、运营管理团队以及TKE团队推出了云原生成熟度评估平台 。