看懂韧性技术系统:为什么它是企业数字化的下一个护城河
韧性技术系统到底是什么?不是抗打,是挨打后还能跑
很多人会把它和传统的高可用、灾备混为一谈。说实话,差的真不是一点半点。 传统高可用追求的是「尽量不出问题」,靠冗余备份堆可用性,真出了大问题,该崩还是崩。灾备更是,就是把数据存到另一个地方,真出事了,拉数据恢复,少则几小时多则几天,业务早停摆了。 韧性技术系统的核心逻辑完全不一样。它从一开始就接受一个设定:系统一定会出问题,不管你准备多充分,总有你想不到的故障。它要做的,是出问题之后不影响核心业务运行,能快速自我修复,甚至带着故障继续提供服务。
传统高可用系统vs韧性技术系统对比图
举个最直观的例子,去年AWS美国区某可用区大面积故障,很多采用了韧性架构的Netflix、Spotify,用户完全没感觉到服务异常,系统自动把流量切到了其他可用区,整个过程不到一分钟。而不少还在靠传统灾备的企业,直接全站挂了十几个小时,用户投诉炸了锅。 放到线下场景更好理解:传统高可用就是给桥多修几个桥墩,说桥肯定不会塌。韧性技术系统就是,就算塌了一个桥墩,桥还能走车,你还能在通车的时候把坏桥墩修好,不用封桥。 是不是一下子就懂了?
现在为什么突然火了?三个行业趋势推着走
放在十年前,没几个企业聊这个。为什么现在突然成了香饽饽?三个变化推着所有人不得不重视。 第一,企业的数字化绑的越来越紧了。现在哪还有企业不靠系统运行?电商靠系统卖货,零售靠系统收银管库存,工厂靠系统控生产线,金融靠系统做交易,系统停一小时,就是真金白银的损失,按分钟算钱都不夸张。 第二,架构越来越复杂了。现在谁还做巨石应用?全都是微服务、云原生,一个业务拆成几百上千个小服务,分布式部署,一个小服务出问题,调用链路上游下游全卡死,稍微处理不好就是全系统雪崩。原来的高可用设计,根本扛不住这种级别的连锁故障。 第三,不确定性越来越多了。勒索病毒不说了,这两年攻击越来越频繁,还有硬件故障、自然灾难、甚至员工误操作,你永远不知道下一个故障从哪来。去年河南暴雨,不少企业的本地机房直接淹了,没有韧性架构的,直接数据全没,业务停了半个多月,不少小企业直接关门了。
企业韧性技术系统全链路防护架构图
我去年跟一个连锁餐饮的CIO吃饭,他说前年他们被勒索病毒加密了所有门店的点餐系统,整个集团将近一千家店,全结不了账,整整三天,光营业额损失就一千两百万,还赔了不少会员的投诉。今年他们直接拨了八百万预算改韧性架构,说这点钱,再出一次事就赚回来了,太值。 不过话说回来,不少中小企业觉得,这都是大公司玩的东西,我们小本生意哪玩得起?其实真不是,现在很多云厂商都出了轻量的韧性方案,按用量付费,几千块钱就能把核心业务的韧性做起来,没你想的那么贵。
落地韧性技术系统,我见过最多的三个坑
落地韧性技术系统,我见过最多的三个坑
最近这两年接触了不少做韧性建设的企业,踩坑的真不少,说三个最常见的,给大家提个醒。 第一个坑,把备份等同于韧性。我见过太多企业老板说,我天天备份数据,这不就是韧性了?大不了恢复就完了。你想啊,等你恢复的时候,业务已经停了,损失已经产生了啊。韧性要的是运行中容错,你的一个节点挂了,自动切走流量,核心业务不停车,用户根本不知道你出问题了,这才叫韧性。备份是最后兜底的,不是韧性的全部,更不是韧性的核心。 第二个坑,堆冗余堆韧性,把成本直接堆炸了。之前有家做跨境电商的创业公司,刚拿了融资,听了咨询公司的忽悠,说韧性就是要多备机器,搞了三倍跨区冗余,结果每个月的云成本从原来的二十万涨到了八十万,业务流水还不到一百万,直接把现金流拖垮了,最后没熬到盈利就卖了。韧性真不是堆机器堆出来的,是靠架构设计出来的,合理的容错机制、流量调度,比盲目堆机器有用多了,还省钱。 第三个坑,只搞技术不碰流程,觉得韧性就是技术部门的事。我听过一个真事,某头部互联网公司做大促,技术部门把韧性架构做的滴水不漏,结果运营新人误删了核心商品库的配置,整个流程没有快速回滚的机制,技术就算架构没问题,还是停了三个小时,损失好几千万。韧性从来不是技术一个部门的事,它是技术+业务+流程整个体系的事,就算系统真全崩了,你业务部门有没有备用方案?比如零售能不能先手工收银,工厂能不能先切手动模式,把损失降到最低,这都是韧性的一部分。 现在国内做的好的企业,基本都是靠三个核心思路落地:第一,靠混沌工程定期主动造故障,把潜在的脆弱点提前找出来,自己炸总比用户帮你炸好;第二,靠分布式架构做细粒度容错,哪坏了换哪,不影响全局;第三,靠全链路观测快速定位问题,出了问题不用到处查,几分钟就能找到问题修复。 说白了,韧性技术系统本质上就是给你的业务买了一份故障保险,你平时可能感觉不到它的用处,真出事了,它能救你一命。 未来数字化越往深走,对韧性的要求就越高。自动驾驶的系统要韧性,工业互联网的生产线要韧性,金融的核心系统要韧性,就连我们普通人用的外卖、打车软件,也需要韧性。你总不想点个外卖,高峰期系统崩了,饿肚子等一两个小时吧? 与其等火烧到眉毛了才忙着救火,不如提前给自己的系统搭好韧性的安全垫。真摔下来的时候,才知道这层垫子有多重要。