本文来自中生代技术微信号公众号:freshmanTechnology

舞动的黑天鹅

纳西姆·尼古拉斯·塔勒布(Nassim Nicholas Taleb)写了两部超级畅销书《随机致富的傻瓜》和《黑天鹅》,并且被誉为[黑天鹅之父]。何为黑天鹅?

在发现澳大利亚之前,17世纪之前的欧洲人认为天鹅都是白色的。但随着第一只黑天鹅的出现,这个不可动摇的信念崩溃了。黑天鹅的存在寓意着不可预测的重大稀有事件,它在意料之外并且后果非常严重。

一个黑天鹅事件,具有这三个特点:

(1)稀缺、通常史无前例(rarity),

(2)影响很极端(extreme impact),

(3)虽然它具有意外性,但人的本性促使我们在事后为它的发生编造理由,并且或多或少认为它是可解释和可预测的。

在IT系统、社会事件尤其是金融市场,[黑天鹅事件]屡见不鲜。列举著名的黑天鹅事件如下:

在1933~1934年,经历过大萧条之后诞生的罗斯福新政,宣布私人持有黄金为非法,规定以每盎司20.67美元将私人黄金上收,然后由国会立法将黄金定价为每盎司35美元,美元很快贬值69%。

2001年9月11日上午,美国人刚准备开始一天的工作,恐怖分子劫持了四架飞机撞向美国纽约世贸中心与华盛顿五角大楼。3000多人在这次黑天鹅事件中丧生,美国的经济此后一度处于瘫痪状态,巨大的经济损失无法用数字来统计。

  • 非预期error

  • 非预期的调用抖动

  • 极少数场景下的规则未被正确处理

  • 错误的优惠处理逻辑

  • 未正确设置的营销活动

  • ……

  • 如果不具备快速、智能的感知能力,那么可能影响的用户变多、影响的商户增加、资金损失增加、业务不可用时间变长…..

    软件质量的六大要素(软件质量稳定性之殇)(1)

    墨菲定律

    “墨菲定律”是一种心理学效应,是由爱德华·墨菲(Edward A. Murphy)提出的。

    主要内容:

    一、任何事都没有表面看起来那么简单;

    二、所有的事都会比你预计的时间长;

    三、会出错的事总会出错;

    四、如果你担心某种情况发生,那么它就更有可能发生。

    墨菲定律的原句是这样的:如果有两种或两种以上的方式去做某件事情,而其中一种选择方式将导致灾难,则必定有人会做出这种选择。

    墨菲定律在生活中屡见不鲜。比如关键时刻掉链子(哪些驾考被教练最看好的精英们,往往会多补考2次),你出去买爆米花的时候,银幕上偏偏就出现了精彩镜头。

    对于IT系统而言,墨菲定律的例子太多了。

    小明在做系统迁移,历时半年。小明是一位经验丰富的架构师,他对系统迁移过程中的自校验、核对、切流策略、灰度能力、回滚机制、容错处理都进行了充分的考虑。但是对于老系统的一种流程处理的缺陷未充分考虑备案或者处理方案。想想,半年很快就过去了,去年才发生1起这样的特殊规则,我在新系统上完全规避了这个问题…但是不凑巧,这个特殊规则不约而至,而老系统还未迁移完…

    再说一个例子,前公司有一个非常古老的系统,一直活得好好的。但是由于RPC调用中有重试机制,在网络异常的情况可能下会被触发。而该系统对于重复请求的机制处理不是很好,导致如果重复了,就需要一个处理机制。而该系统的处理机制在95%的情况下是有效的,而网络重发的概率经过经验测算是一亿分之一。看起来论据很充分了,真心是小概率事件。但是随着业务的发展,以及某些未预期的因素(比如某应用超时的几率)增大,则重发的概率也将增大,导致后来这样的问题连续几周都出现了,我们不得不下决心从根本上解决这个问题。

    第三个例子,是我们团队的一个亲身经历。某一天有客户投诉,按理说对于该问题的处理预案是有的,并且团队有充分的备份机制,好几个人都可以解决。But我们并未按预期的速度处理好这个问题。原因是团队的一位同学大婚,大家都去迎亲去了,TL同学只能临时把车停到路边,处理问题。

    由于人类认识的局限性、骄傲心态、问题域的复杂性、不可把握性等因素,导致软件从业人员在处理软件质量稳定性方面如履薄冰,你今天志得意满,明天就可能伤心欲绝。那么软件质量问题的棘手主要有那些因素导致的呢,且看下一章节。

    作者简介

    于君泽,蚂蚁金服高级技术专家、支付核算技术部负责人、成都研发中心技术团队创建者之一,先后负责或参与过转账类业务、账单类业务、社区支付、开放平台、支付平台、资金核算平台、类营销类支付工具的建设;之前有数年电信业务研发经验,涉及BSS|OSS|针对性营销等平台。

    更多深度技术内容,请关注云栖社区yunqiinsight。

    ,