大家晓得,我这人吧,虽然是个写代码的,但其实骨子里头懒得很,最怕的就是麻烦。早些年刚接触微服务的时候,啥都觉得新鲜,恨不得把所有服务都拆成土豆丝儿那么细,结果嘞?运维的时候直接就瓜起了。服务之间的调用链乱得像屋头的耳机线,想找个故障点比在春熙路捞人还难。更恼火的是,一到双十一这种大促,系统就跟老年机开了十个微信一样,卡得亲妈都不认识。
后来实在是遭不住了,硬起头皮去研究咋个做服务治理。那会儿也晓得Istio这些东西,但是一看到要自己搭控制平面,要维护那些复杂的组件,头都大了一圈。就在这个时候,我开始接触到阿里云的那个服务网格产品,也就是我们今天要摆的ASM技术。这一哈才晓得,原来还有这种“全托管”的玩法。

最开始吸引我的,其实就是ASM技术里头那个“托管”的概念。你想嘛,对于我们这种小团队,人本来就少,你让我自己去搭一套Istio,再去跟K8s集群做生命周期管理,那不是相当于请了个祖宗回来供起?但ASM这玩意儿它不一样,控制面是阿里云在那边给你管斗起的,我们只需要关心数据面,关心我们的业务代码。这感觉就像是,以前你自己要洗衣服、晾衣服、收衣服,现在你只管把脏衣服丢进去,拿出来就是干干净净还能穿的。这对于我们这种想把精力集中在业务逻辑上的人来说,简直就是瞌睡遇到枕头。我那段时间最大的痛点就是“不想当保姆”,ASM技术至少帮我解决了基础设施谁来守夜的问题 -1。
当然,光是不用动手还不足以让我彻底服气。真正让我觉得这娃要得,是后面我们折腾那个配置推送的时候。你们晓得不,我们早期用开源的东西,最烦的就是每次改个路由规则或者加个服务,整个网格的Sidecar都要被“犁庭扫穴”一遍。那配置量,大的时候能给你整到40多M!每次推送CPU都飙得老高,就像在早高峰的成都地铁里头硬生生挤进去一个人,整个车厢的人都得抖一哈。

结果在用ASM技术进行深度优化的时候,我才发现它里头有个“配置推送优化”的功能,不晓得大家听说过没得。它会去分析数据平面的访问日志,自动给你推荐那个Sidecar的资源。说白了,就是它变聪明了,晓得你这个Pod只跟哪几个服务打交道,其他的关我铲铲事。这么一搞下来,Sidecar配置直接从40多M瘦身成了5M -1。啥子概念?就是你不用再拖着整个商场的导购员去给你买瓶水,只需要喊门口那个小哥跑一趟就行了。这个效率的提升,对系统资源的节省,真的是肉眼可见。
还有一点我必须得提一嘴,就是关于安全性的事儿。早两年我们内部的调用基本都是明文,总觉得防火墙拉好就莫得问题了。结果有一次搞安全演练,直接被攻击者从内网一台机器当跳板,差点把老巢都给端了。那哈才晓得,只在边界上防守,就跟只关大门不关窗户一样,悬吊吊的。
后来我们全面切到ASM技术,它默认就支持mTLS(双向TLS)。这个听起来高大上,说白了就是给服务之间的通话搞了个对讲机,而且是对讲机里头还带加密的那种。最安逸的是,以前搞这种全链路加密,CPU遭不住啊,非对称加解密太吃性能了。但ASM这边因为跑在英特尔至强处理器上头,支持啥子AVX-512和多缓冲区处理技术 -4。具体技术我掰扯不清楚,但体感太明显了:以前加密要损耗10%的性能,现在感觉就是一脚油门的事情,没啥子额外负担。这对于我们这种既要安全又不想牺牲性能的“贪心”用户来说,确实是巴适得板。
反正从我个人的感受来看,从被分布式搞得欲仙欲死,到现在虽然不敢说高枕无忧,但起码晚上睡觉不得惊抓抓地醒过来问“系统挂了没”。不管是托管模式省下的心思,还是配置优化带来的流畅,甚至是安全增强给的底气,asm 技术这一路梳理下来,确实是把我们这些开发者的痛点捏得死死的。如果你也在微服务的坑里头挣扎,不妨也去qio一哈,说不定有意外收获。




