技术风险识别:别等系统崩了才想起补窟窿
前阵子帮创业圈的一个朋友做事故复盘,他做自动驾驶数据标注平台,上线前闷头测了三个月,所有指标全过,所有人都拍胸脯说没问题。结果上线才半个月,被一波恶意标注把整个GPU集群拖崩了,停服两天,丢了三个头部客户,亏了小两百万。 哦,你问为啥测的时候没发现?因为没人想到会有人干这事。更别说把这个风险写到识别清单里了。
大部分公司的技术风险识别,都是在走形式
很多公司干这个事,就是季度末拉个一小时的会,各部门技术负责人对着统一发的模板勾勾选选,填完“服务器负载冗余不足”“核心功能存在单点故障”这种套话,存到共享文档里,之后就再也没人打开过。
说实话,我见过估值数十亿的准上市企业,风险清单列了三页纸,连核心业务依赖的第三方开源包藏着未修复的高危漏洞都没发现。
去年Log4j爆雷那阵,多少公司大半夜全公司爬起来翻资产清单,找哪个项目用了这个组件?这不就是典型的无效识别吗?
企业技术风险识别走形式签到表
很多人对技术风险的认知,还停留在“代码有bug”“服务器性能不够”这个层面。
错了。
你依赖的第三方SaaS会不会突然停服?去年有个做社区团购的小平台,核心的供应商对账服务提供商突然跑路,换接口花了整整十天,多少供应商直接停了供货,这算不算技术风险?
核心开发带着所有文档离职,没人看得懂他写的祖传代码,线上出问题连改都找不到地方,这算不算技术风险?
甚至,你现在用的云服务商,会不会突然涨价涨三倍,你预算扛不住被迫迁移,迁移过程中出问题丢数据,这算不算技术风险?
绝大多数公司做识别,只盯着自己写的那点代码,犄角旮旯的衍生风险全漏掉了。不出事还好,出事就是大的。
好的技术风险识别,要抓“看不见的灰色地带”
之前看过MIT CSAIL去年发的一份行业研究,超过68%的线上大型系统宕机事故,根源都来自事前没有被识别到的跨模块依赖风险。
什么意思?A模块出问题,所有人都能监控到,但是A模块挂了之后,会把B模块的堆内存直接拖爆,B模块崩了又把整个接入网关搞死,最后整个全站瘫痪。这种一环扣一环的连锁风险,90%的团队做识别的时候,根本不会往这想。
软件系统跨模块依赖风险链路图
说点能直接用的干货吧,怎么抓这些灰色地带的风险?
第一,把所有隐形依赖拉出来晒太阳。什么是隐形依赖?就是不在你官方资产清单里,又实际在你系统里跑的东西。比如前端开发图省事,直接引了一个公网免费CDN上的JS工具包,后端开发为了调接口方便,生产环境直接连了测试环境的数据库,甚至测试环境用了生产的真实用户数据做测试。这些全是隐形风险。之前有个电商平台大促,就是引的那个免费CDN突然挂了,首页直接打不开,眼睁睁看着流量走掉,这个风险事前从来没人提过。对吧?
第二,一定要做极端场景推演。别整天抱着“正常运行不会出问题”的想法,你就往最坏了想:核心机房全断网了怎么办?云服务商整个区域宕机八个小时你怎么办?黑产把你所有接口全刷一遍你扛不扛得住?核心数据被拖库了你能不能找回来赔给用户?很多人说这种概率太低,浪费时间。但是风险识别本来就是防这种小概率的灭顶之灾啊。前几年疫情封城那阵,多少公司唯一能进机房的运维被封在家里,硬件出了问题没人能现场处理,停服好几天,这种事之前谁主动识别过?
第三,别只让技术团队自己做识别。技术天天摸自己的系统,很多问题早就习以为常,反而看不见。产品知道这个新功能的用户增长比预期快三倍,技术会不会收到这个信息?运营知道最近黑产批量刷优惠券,一天薅走十几万,技术会不会提前知道风控接口需要扩容?上个月帮一家垂类电商做风险梳理,就是运营提了一句最近有大量模拟器批量注册,技术才反应过来,自己根本没识别到“模拟器薅羊毛拖垮注册服务”这个风险,赶紧加了限流,避免了十几万的损失。这就是跨团队补漏的用处。
技术风险识别,本质是给未来买保险
技术风险识别,本质是给未来买保险
我碰过太多老板,张嘴就是“我现在系统跑的好好的,花人力做风险识别,纯纯浪费钱”,先跑业务抢市场再说,风险以后再说。结果呢?多半是哪天踩了一颗之前没发现的雷,把之前抢来的市场全赔进去,甚至把公司搭进去。
不过话说回来,也不是让你把所有风险都全堵住,没必要,也不可能。技术本身就是和风险共生的。你做识别的目的,是把风险分好级:会要命的风险,你哪怕停掉两周新功能开发也要先处理;小打小闹的不影响核心的,你放一放也没关系。
现在大环境不好,很多公司都喊着降本增效,砍技术预算,风险识别这种不直接产生产出的活,第一个被砍。但是说实话,这个钱真的不能省。你省了几万块的人力成本,将来出问题,赔的可能是几百万几千万,甚至整个公司。
哦对了,最近大模型这么火,一堆公司往自己产品里嵌大模型,你们做风险识别了吗?大模型训练数据有没有版权侵权风险?用户输入的隐私数据会不会被大模型泄露?大模型万一输出违规内容,这个锅你背不背?这些风险现在多少公司压根没提过,等监管找上来,用户起诉你,才想起后悔,晚了。
说白了,做技术做产品,跑的越快,越要停下来低头看看,脚下有没有没埋的雷。技术风险识别从来不是走给老板看的流程,是帮你活下去的护身符。