拼多多技术事故复盘,程序员应该学到什么?
每一次事故都是在倒逼技术团队成长,没有谁能保证不写 Bug 不出错,我们要做的,是在事故发生以后,找到问题的根源,及时填坑止损。
2019 年 1 月 20 日凌晨,有网友称拼多多出现重大 Bug,100 元无门槛券用户可以随便领取并进行消费。大家争相传播,大半夜的都起来领券,有的用户甚至领取了上千张。机灵的用户,以最快的速度花掉了优惠券,比如给中国移动充值。
相关文章推荐:程序员导致拼多多出现重大Bug,被薅上千万
拼多多凌晨回应,“有黑灰产团伙通过一个过期的优惠券漏洞盗取数千万元平台优惠券,进行不正当牟利。针对此行为,平台已第一时间修复漏洞,并正对涉事订单进行溯源追踪。同时我们已向公安机关报案,并将积极配合相关部门对涉事黑灰产团伙予以打击。”
随后,拼多多发言人表示,实际最终资产损失或低于千万人民币。
这个事情发生后,在技术圈炸开了锅,可能是源于传言的“一个 bug 可能给公司带来 200 亿的损失”。
作为程序员,我更关心的是,这个 bug 到底是怎么来的呢?根据市场传言,我们大致可以得到如下的一些线索。这些线索的真实性还有待考证,或许并不是这次事件的真实情况,但是这也不妨碍我们通过这些线索,来探讨一下这起事故给我们带来的启示。
● 好多人羊毛弄了几十万;
● 这张券是测试券;
● 系统在凌晨自动上线测试券;
● 运维发现系统爆了,超过了阈值;
● 当事人手动下线了测试券;
● 手动下线的测试券,早上八点又上线了。
这些端倪看起来可以合理地解释一个重大 bug 的部署和运维。从这些端倪中,除了优惠券本身的设计问题,我们也可以看到运维的混乱。测试券怎么能够上线呢?系统爆表了,为什么没有跟进风险防范措施?手动下线了的测试券,怎么又能够重新上线了?为什么上线、下线优惠券操作这么草率?如果一个软件系统是这样的运维水平,出问题是迟早的事情。如果还没出问题,只能说运气太好。
优惠券的设计问题
第一个吸引我们的问题是,“好多人羊毛弄了几十万”。这就意味着,一个人可以领用上千张优惠券。好多人这么操作,说明无门槛券的领用,技术门槛极低。
一般的优惠券,类似于折扣券,都有使用门槛,比如买 100 优惠 20 元。无门槛券,顾名思义,就是没有使用门槛的优惠券,100 元的优惠券可以买 100 元的商品,几乎等同于现金。由于无门槛券类似于现金,它和一般的优惠券就有重大区别。
先不去管羊毛党,拼多多号称有 3 亿用户,如果每个用户都合法合理地领用 100 元无门槛券,这就需要 300 亿人民币。账户注册,几乎是零门槛,如果微信 10 亿用户合法合理地注册、领用无门槛券,给手机充个值,这就需要 1000 亿人民币。
截至昨日,拼多多市值接近 230 亿美元,折合人民币也就 1600 亿的样子。100 元无门槛券随便领,这看起来像是要拆了公司给大家发奖金的姿态。这肯定不是无门槛券的预期。
随便领的无门槛券,怎么看都不是一个合格的商业设计。最起码,定个数量上限吧,大家抢完就没了,几百万送就送了。送几百个亿,不符合正常的商业逻辑。
一般而言,即便是普通优惠券的领取都有很多附加的条件。比如说,一个账户只能领取一次,或者只有新账户可以领取。而账户的认证,也要有很多的安全措施,比如绑定手机号,绑定设备,使用安全连接等措施。账户的认证和管理,是一个服务网站最最基本的功夫。如果一个人可以领用上千张优惠券,那么账户管理的这个基本功,不能算及格。账户的管理水平如果不及格,这个网站的风险比我们想象得还要糟糕。
这么糟糕的账户管理,这么糟糕的商业设计,太出乎人的意料,不符合正常的逻辑。所以,我比较认同这只是一个测试券,不应该出现在正常运营的系统中。而如果真是测试券的问题,暴露的就是软件研发和运维的混乱。
混乱的研发和运维
一个测试券,居然自动上线;手动下线后,又自动上线。这样的产品发布流程匪夷所思。一项功能的出炉,要经过设计、实现、评审、测试、审批,才能够走到正式的系统中。这些环节,只要有一个环节发挥了作用,测试券都不可能上线,更不可能自动上线。
上线后,还要有持续的风险监控。如果系统超过了阈值爆掉,运维能够第一时间获得爆表的信息,比如大半夜的,账户异常活跃或者优惠券业务火爆,也能够及时地截断这个风险。
由此可见,对运维人员的合理约束机制,是一个商业公司必须谨慎对待的问题。哪能随便一个测试券就可以直接跑到正式的系统中呢?软件的运维,是一个需要特别关注风险管控的环节,尤其是软件的质量没有跟上的时候。软件的运维事故,有时候甚至会颠覆一个行业。
2011 年,一个数字证书签发机构,给谷歌签发了多张数字证书。而谷歌从来没有向这个机构申请过数字证书。也就是说,数字证书的持有者并不是谷歌。这个持有者可以冒充谷歌的网站,盗取用户登录信息,包括用户名和密码。这意味着要么这个公司技术水准有问题(黑客攻击),要么这个公司的运维能力有问题(乱发证书)。这个安全问题在 2011 年 8 月份被曝光,几乎所有的软件巨头立即宣布封杀这家机构的数字证书。9 月份,这家有着很大市场影响力的机构就宣布破产了。
然而,这不是最终结局,数字证书签发行业的厄运才刚刚开始。人们好像忽然认识到,信息安全不能依赖数字证书机构,一个 4000 亿美元市值公司的安全,不能依赖一个 40 亿美元市值公司的运营能力。于是,各种各样的新技术在随后几年争相出现。这些新技术如果广泛使用,将彻底抹掉整个数字证书签发行业。这样的日子,离我们已经不远了。现在,数字证书签发机构的日子过得都比较惨淡,卖的卖,散的散。
频频发生安全事故的顺风车,从长期看,也具有类似的性质。相比之下,如果一次事故损失的只有钱,影响可能还算是可以勉强承受的。希望损失的只有钱,但是我对这个期望并不乐观。
追本溯源,运维如此混乱,一般和软件的质量脱不了干系。 一个正经的软件系统,该怎么出品、该怎么部署、该怎么运转、该怎么授权、危机该怎么处理,这些问题都要有设计、有实现、有预案。当事人设计了一个无门槛测试券,就可以在运营系统里跑,而且还可以无限领,这暴露的是背后烂透的软件质量,以及松散、无序的软件研发流程。我们常说,优秀的软件出自优秀的流程。混乱的研发流程,很难出品高质量的产品。
我们该怎么做?
无知者无畏,安全问题之所以特殊,就在于它如果不发生,我们也许永远不知道问题的存在,当然也不知道问题有多严重。每一次安全危机,都不应该被浪费。如果我们是当事人,有哪些办法可以避免类似的事故呢?
最紧急的事情,就是赶快把账户安全的债给还了。要不然,经过这一次的传播,一大堆的眼睛看好了这块肥肉。黑客攻击的下一波,也许已经在路上了。
接下来,要尽快考虑下面的几件事情。
第一件要做的事情,就是规范研发流程。一流的软件研发流程下出品的产品,再差也不会差到哪儿去。在这个研发流程里,程序员不能单枪匹马地蛮干。需求要讨论,设计要预览,功能要审核,代码要评审,软件要测试,系统要试运营。人人都会犯错误,每一个环节,多几双眼睛盯着,就大幅度减少了犯错误的几率。程序员也能通过研发的流程快速成长,进一步降低错误发生的几率。一个好的制度,可以成就人;一个坏的制度,可以糟蹋人。
第二件要做的事情,代码的安全要重视起来。代码的安全,不都是指黑客入侵。这个无门槛券的领用,就是一个严重的安全事故。反映到代码层面,可能就是账户管理不安全,商业逻辑没有校验,运维授权管理散漫,异常风险没有及时预警。
第三件要做的事情,商业设计要预先推演。即使没有黑客黑产,1000 亿人民币无门槛优惠券,也不是任何一家商业机构愿意支付的成本。这是一个幼稚园水平的错误。 如果商业逻辑不成立,也就意味着有缺陷的软件需求。建立在漏洞百出的需求上的软件,也会是漏洞百出的。
第四件要做的事情,改进产品上线的机制。设置产品上线的检查点和流水线,任何一个检查点失效,流水线都要中断,产品都不能上线。这些检查点包括产品的试运营、功能的审批、配套的监控措施等等。
第五件要做的事情,提高运维的风险防范能力。一个有着 3 亿用户,230 亿美元市值,经营电子商务的公司,是黑客眼里的肥肉。尤其是用户隐私信息和现金流,关系到企业的生死存亡。这种体量的公司,具有优秀的风险防范能力是最基本的要求,而不是锦上添花的东西。风险的主动检测、及时预警、快速应对,这些措施都要跟得上。
如果无门槛券的商业设计经过推演,软件功能经过讨论,实现代码经过评审,上线经过预演,事故能够及时预警,只要其中的任何一个环节发挥了作用,这次事故都不会这么惨烈!
我理解一个公司不顾一切全速前进,以质量换速度的竞争压力和动力。只是,当我们追求眼下速度的时候,也要考虑三尺以外的未来。要不然,这屁股后面累积的债,真会成为怎么甩都甩不掉的大尾巴。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

拼多多软件内提供的商品好物非常多,随时随地想买就买,而且每一件商品质量都是严格把关的,件件商品都是正品,不同还有非常多优惠的购物折扣,让大家网购根本停不下来。输入手机号在线登录,在线添加多个收货地址和联系方式,可以随时查看最新的物流动态,不同品类的商品板块都是开放的,搜索上下滑动选购下单,足不出户轻松体验便捷的网购服务,还能查看所有的购买记录,包括自己买过的商品,数十个购物红包、优惠券免费领取使用,现在小编在线详细为拼多多用户们带来查看买过的商品记录的方法。 1.打开手机,点击拼多多图标,

在拼多多中,黑标指的是黑色的“品牌”标志,是一种认证,只有店铺超过一定销量,且通过实质授权的品牌才可以开通;换句话说,黑标代表有质量、有信誉、值得信任且销量高的品牌,拥有黑标品牌在拼多多推广和销售都会占据一定的优势。

拼多多app官方下载免费最新版是一款非常不错的手机购物软件,平台内提供的商品种类非常丰富,随时随地想买就买,购物方式非常简单,打开搜索栏输入商品名称就能精准找到,上下滑动即可挑选下单一键支付,每天都有非常多超值折扣天天享,不同金额的红包优惠券免费领,还能邀请好友、家人一起拼单购物,营造舒适清爽的购物方式,想买的全都有,接下来小编在线详细为拼多多伙伴们带来同一家两件商品一起买的方法。 1、手机进入【拼多多】首页选择自己想要购买的商品。 2、进入商品首页后点击下方的【收藏】按钮。 3、收藏

拼多多推出了“一次选多款”功能,可以同一商品选择不同型号,一次性下单。小编整理了一些相关内容分享给大家,有需要的朋友可以来看看哦。拼多多如何购买同一商品不同型号1、首先将你想要购买的商品页面打开,点击左下角的【收藏】2、然后返回个人中心,通过【收藏】来查看自己刚刚收藏的商品。3、在商品规格的下方点击【一次选多款】然后就可以增加不同规格的商品了。4、选购完成后,选中订单点击右下角付款,就可以了。

一、拼多多怎么加人为好友?拼多多添加好友的操作方法!1.打开拼多多app,进入首页,点击页面上方位置的拼小圈图标。2.进入后,选择右上角位置的人像图标。3.可以看到有添加通讯录好友、扫一扫加好友、好友推荐这三种方式。4.选择自己想要添加的途径,发送申请即可添加自己的拼多多好友。

游戏bug是什么意思在玩游戏的过程中,我们常常会遇到一些意想不到的错误或者问题,比如角色卡住、任务无法继续、画面闪烁等等。这些不正常的现象就被称为游戏bug,即游戏中的故障或错误。在本文中,我们将探讨游戏bug是什么意思以及对玩家和开发者的影响。游戏bug是指在游戏的开发或运行过程中出现的错误,导致游戏无法正常进行或者出现不符合预期的情况。这些错误可能是由于

投诉拼多多最狠的方法是什么?拼多多这款软件给我们带来便来的时候,同时也会让我们为此感到纠结以及闹心,当我们购买的商品不合适或者想要退货的时候,我们可以去找里面的商家进行理论一番,但是碰到一些野蛮的商家我们应该怎么办呢?其实我们可以进行投诉,为了维护我们消费者的利益。下面就是小编所带的投诉方法,希望可以帮助到你。12315投诉拼多多最狠的方法拼多多客服电话为4008822528,建议在工作时间内拨打。拼多多的客服工作时间为9:00至20:00。 方法二:在拼多多App上投诉; 1、打开拼多

拼多多怎么关闭先用后付的功能?拼多多是一款非常智能的可以让用户在线上购买东西并且送货上门的软件,这个软件上面的商品的种类有非常多,用户可以在这上面选择自己需要的商品来购买,pdd为了能让用户更加方便的使用这个软件,就推出了一个先用后付的功能,很多用户想要取消掉这个功能,下面小编整理了取消先用后付功能的方法供大家参考。拼多多关闭先用后付功能的方法 在拼多多上面关闭 1、拼多多进入个人主页后,点击“设置”。 2、在设置中,点击“先用后付设置”。 3、