2000多个Bug!这个系统让银行瘫痪、13亿人账户出错、最终损失超过28亿

2000多个bug,这样一个千疮百孔的系统,被用在了一家有13亿用户的银行里。

这是去年TSB银行系统迁移大事故的报告结果,出自Slaughter and May律所。

Bug连篇、测试没做好、IT服务商无能,这一切的一切,导致了灾难级后果。

当系统启用的时候,用户们纷纷发现自己的钱不见了、花一两块扣掉几千、账户被别人登录……

银行为了启用这个系统,投入了2500人年的成本;而事后为了补锅,也花费了高达28亿的资金。

系统迁移捅了13亿用户的娄子

故事,是从一桩“离婚再嫁”的案子开始的。

离婚再嫁的主角,是英国银行TSB

2015年,TSB银行结束了与劳埃德银行(Lloyds Bank)长达20年的“婚姻”,从他们合并的集团中拆分出来,并卖身给了新欢、西班牙公司萨瓦德尔(Sabadell)集团,收购价17亿英镑,按当时的汇率大概是158亿人民币。

然而,过去的20年,世界变了太多,银行业也进步了太多。20年的“婚姻”留给TSB银行的,还有和“前夫”剪不断理还乱的IT系统。TSB银行540万客户的数十亿记录,都还留在“前夫”劳埃德银行的系统里,而且因为缘分已断,不能白嫖人家的系统,每年还要给前夫交1亿英镑(大约9.3亿人民币)的费用。

这就好像肉身虽然已经和“新欢”在一起,但支付宝和微信账号还是跟“前夫”共用一套,而且还要给“前夫”付账号租金,自然令人不爽。

于是,在筹备了许久之后,2018年,他们终于要行动了:把“前夫”IT系统里的客户信息记录,迁移到“新欢”专门为TSB银行准备的新系统里。

他们把迁移的日子,定在了4月22日星期日的晚上,先把银行的IT系统离线,迁移完之后再上线,恢复客户访问自己银行账户的权限。

为了这场迁移,他们已经投入了超过2500人年的人力成本,西班牙“新欢”集团的CEO在前一年的圣诞节就大声放话:这是全欧洲史无前例的大项目,我们投入了1000多名专业人才,将极大地促进我们在英国的增长。

不过,虽然大佬们在台上豪言壮语,实际上负责迁移的员工们心里却慌得一逼。这个迁移项目本来要筹备18个月,结果时间超了,预算也超了,事情难办的很。Flag果然不能立太早,打脸的结果很快就来了。

迁移结束,客户的访问权限,他们以为万无一失,但就在20分钟后,收到了问题报告:

有的客户发现自己的钱不见了;有的客户花了一点小钱,账户里却记录成了花费数千美元;

有的客户登录上去之后,发现不是自己的账户,而是看到了别人的银行账户。

13亿客户的账户记录都出了问题,于是,他们把TSB银行骂成狗,金融监管机构们则连夜找银行喝茶。

而此后的几个星期,银行都在拼命的恢复系统,但数以百万计的客户们已经人心惶惶,拼命的把自己存在TSB银行的钱取出来。

TSB银行,被自己捅的篓子扔进了地狱模式。

而问题的根源,在于测试。

英国金融监管机构金融行为监管局(FCA)首席执行官Andrew Bailey在事故几周后对外公开表示,造成系统混乱的很大原因在于缺少测试,而TSB银行请来救急的IBM专家也发现,TSB银行没有采用严格的上线标准。

而且由于地球上的金融体系都是相连的,事故所造成的错误被永久的保留在了金融体系里,不可逆转。

这起弥天大祸,也让TSB银行赔了很多钱。为了赔偿客户、解决系统出问题后浑水摸鱼的交易、找第三方帮忙总共花了3.302亿英镑,按当时汇率算大约28.4亿人民币。

而TSB的乙方、IT提供商Sabis也因为这起事故收到了1.53亿英镑(超过13亿人民币)的赔偿账单。而受此影响,TSB银行当年亏损了1.054亿英镑(9.2亿人民币),CEO Paul Pester引咎辞职。

业绩这么差,银行的经营也难以为继,今年11月底TSB关闭了英国86个分行,至少400个工作岗位也因此消失。

银行系统很复杂

信息化时代,银行的IT系统也变得越来越复杂。

六十年前,人们只能选择在柜台存取现金,普通客户并没有机会直接接触计算机系统。当时,银行虽然也启用了巨型计算机,但它们只会在一天或一周交易结束的时候对纸质数据进行汇总。

也就是说,银行的IT系统仅由银行员工使用,银行与客户在柜台上的交互用的还是纸质工具。

这种情况在1967年发生了改变。这一年,世界上第一台自动柜员机(ATM)在英国诞生,并被安装到伦敦北部的巴克莱银行Enfield分行。

从此,银行和客户交互的方式发生重大变革。ITRS Group首席执行官盖伊·沃伦(Guy Warren)解释说:

直到真正的ATM和在线银行业务出现,公众才可以直接访问银行的IT系统。

这还仅仅是个开始。

全球互联的时代,互联网和移动银行的发展进一步拉近了客户和银行IT系统之间的距离,而这样的系统,也越来越成为银行赖以运营的关键所在。

或许你会觉得,登个支付宝/微信,亮出付款码,让小钱钱在银行跟银行之间发生小小的流动,并没有什么难度。但事实上,每一次信息的加载和刷新背后,都发生了复杂的数据移动——

每一次动作可能关联到许多个单独的系统,所有这些系统都必须彼此交互,并与核心大型计算机连通。系统要现在后端复制数据,将现金从一个账户转移到另一个账户,保持同步更新。

而这样的运算量,还要乘以数十亿倍

根据世界银行的数据,现在,全球至少有69%的成年人都拥有银行账户。人们每一天都在通过银行账户支付账单、贷款还款、订阅各种服务……并且,这些活动常常是跨行,甚至跨国进行的。

一家银行内部的多个IT系统(移动银行、ATM等),不仅需要彼此交互,甚至还必须跟其他国家的银行建立联系。比如我在国内办了一张visa信用卡,在美国也要能消费才行。

迁移问题很麻烦

TSB正是栽在了这样的高度复杂性上。

IBM在为TSB编写的报告中指出:新应用程序的组合,对先进微服务的应用和双活数据中心的使用,导致了TSB生产中的复合风险。如何正确地处理银行IT系统迁移中出现的问题,对于任何一个银行来说,都是不小的挑战。

其中,大量的事前规划和测试工作是不可避免的。

像汇丰银行这样的跨国银行,具有高度复杂、相互关联的系统,这些系统会定期进行测试、迁移和更新。

即使在这方面如此经验丰富,汇丰银行的前IT主管兰开斯特仍坦承:诀窍就是让员工在这件事上付出更多的时间。

他还指出,TSB的IT系统迁移是一件很复杂的事:

我不确定他们是不是真的意识到了这件事的复杂程度。他们甚至没有完全想好要怎么去测试系统。

FCA首席执行官Andrew Bailey则表示:

TSB的这一事故反映出他们缺少强大的回归测试

注:回归测试是软件测试的一种,旨在检验软件原有功能在修改后是否保持完整

而最新的事故报告也引起了hacker news上网友们的热烈讨论。

有网友表示,如果TSB能选择小规模多次迁移,而不是在某一天进行大爆炸式迁移,那这种严重的事故可能就不会发生。

花几周/几个月的时间在生产过程中进行检查,以确保旧数据库和新数据库返回的结构相同。最终,将数据都转移到新数据库中,并在一段时间之后再关闭旧的数据库。这样做效果是比较好的。

而对测试不足导致了银行系统瘫痪的这一调查结论,有人吐槽说:

作为测试工程师,我一点也不意外。花费更多的时间、投入更多的人员来打造更好的测试架构,对于很多公司来说都是“可以节省的成本”。

经理们总是在设定的上线日期前问:“测试咋能花那么多时间?!”真要出事了他们又开始甩锅了。

也有网友严厉批评道:TSB的问题不应该说是测试不足,而是在多个层面上都测试不足,并且缺少可恢复的备份。

也有人指出,避免出错最简单的办法就是减少变化。

问题在于,无论是银行还是其他领域的公司,业务都是在不断进化的。

根据FCA发布的数据,从2017年到2018年,英国金融服务部门报告的技术中断增加了187%。

盖伊·沃伦就认为:系统停机不会消失。问题在于,可接受的度在哪里?

你怎么看呢?

参考链接:https://news.ycombinator.com/item?id=21870089
https://www.tsb.co.uk/news-releases/slaughter-and-may/
https://www.tsb.co.uk/news-releases/slaughter-and-may/slaughter-and-may-report.pdf
https://increment.com/testing/what-broke-the-bank/
https://www.ft.com/content/d1f37ab2-0eb8-11ea-a225-db2f231cfeae

—  —

作者 | 鱼羊 郭一璞    转自量子位  | 公众号 QbitAI

Image placeholder
IT头条
未设置
  97人点赞

没有讨论,发表一下自己的看法吧

推荐文章
我的天!这是史上最烂的项目:苦撑12年,600多万行代码…

编译:欧剃来源:projectfailures.wordpress.com转载自:Java技术栈你见过最烂的项目,撑了多长时间才完蛋?六个月?一年?今天介绍的这个奇葩项目,不但一开始就烂得透透的,还硬

码龄超过20年,依然对生活和编程充满激情,这是三位70后“老”程序员的故事

大数据文摘出品作者:周素云、张秋玥加班996,生病ICU。这是一句最近搅乱了很多程序员平静生活,也让所有的“社畜”认真反思人生的话题。但是,让程序员们真正感到焦虑的其实并不只是工作的压力,更多的是对未

毕马威报告:钉钉活跃用户数超过2到10名之和

4月17日,毕马威、阿里研究院联合举办的“智能经济主题报告发布会”在北京召开。会上毕马威、阿里研究院联合发布了《百年跃变:浮现中的智能化组织》报告。报告中显示,钉钉在智能移动办公领域的活跃用户数排名第

再见微服务,从100多个问题儿童到一个超级明星

翻译| 马岛本文翻译自AlexandraNoonan的 GoodbyeMicroservices:From100sofproblemchildrento1 superstar。内容是描述 Segmen

中信银行信用卡业务数据库实现国产替换,湖北银行新核心系统项目正式验收,阿里云与MongoDB达成战略合作

中信银行信用卡业务数据库实现国产替换10月31日,由IT168旗下ChinaUnix社区主办的第十一届中国系统架构师大会(SACC2019)在北京召开。会上,中信银行软件开发中心/技术平台开发处副处长

只因写了一段爬虫,公司200多人被抓!

“一个程序员写了个爬虫程序,整个公司200多人被端了。”“不可能吧!”刚从朋友听到这个消息的时候,我有点不太相信,做为一名程序员来讲,谁还没有写过几段爬虫呢?只因写爬虫程序就被端有点夸张了吧。朋友说,

黑客锁定市政系统勒索比特币,政府拒付赎金!全美最危险城市陷入瘫痪的第三周……

大数据文摘出品作者:李雷、狗小白、宋欣仪政府邮箱无法访问、所有水电费停车费无法缴纳、所有房产交易无法进行。在美国东部城市巴尔的摩市,这样的市政系统瘫痪已经持续了三周。5月初,黑客入侵并控制了美国马里兰

史上最快AI计算机发布!谷歌TPU V3的1/5功耗、1/30体积,首台实体机已交付

大数据文摘作品还记得8月份占据各家科技头条的有史以来最大芯片吗?这个名为CerebrasWaferScaleEngine(WSE)的“巨无霸”面积达到42225平方毫米,拥有1.2万亿个晶体管,400

敏捷开发流程之Scrum:3个角色、5个会议、12原则

本文主要从Scrum的定义和目的、敏捷宣言、Scrum中的人员角色、Scrum开发流程、敏捷的12原则等几方面帮助大家理解Scrum敏捷开发的全过程。一、Scrum的定义和目的Scrum是一个用于开发

一通骚操作,我把SQL执行效率提高了10000000倍!

场景我用的数据库是mysql5.6,下面简单的介绍下场景课程表:create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条学生表:

太天真了!这简历一看就是包装过的!

前言上到职场干将下到职场萌新,都会接触到包装简历这个词语。当你简历投到心仪的公司,公司内负责求职的工作人员是如何甄别简历的包装程度的?Coody老师根据自己的经验写下了这篇文章,谁都不是天才,包装无可

我从来不觉得程序员是吃青春饭的!这里有169万份分析数据

阅读本文约需要5分钟程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型。在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多

GoldenDB ,一个已经全面支撑银行核心系统的国产数据库

摘要:沿用、并存还是替代,一直是银行核心系统数据库转型重点思考的问题。四大行目前主要采用的是沿用与并存的数据库产品战略,在确保稳定的大前提下对新兴数据库技术进行探索研究和实践。相对而言,股份制银行在这

亚马逊将公布超过最大会话和知识数据集,超400万字

4月1日,亚马逊宣布:他们计划向公众公开“TopicalChat”数据集,超410万单词21万句子的语料库将于2019年9月17日发布。该数据集是为参加AlexaPrizeSocialbotGrand

1000 行 Python 代码脚本 bug,或影响上百篇学术论文

《Nature》杂志2014年的一篇论文包含了一个Python脚本,其中有一个模块是根据文件的排序返回值,但Python并没有定义查询的文件顺序。这意味着在不同的操作系统上,该脚本返回的值是不同的。

甜过初恋!浙大博士用200个西瓜130页论文,教你用机器学习科学挑瓜

大数据文摘出品作者:易琬玉刚刚送走了最热七月,转眼就迎来了最热八月。2019年是人类有气象纪录以来最热的几个年份之一,虽然这个夏天还没结束,但气象学家们已经有十足把握做出这个判断。为了应付热,人们想出

让20000人心跳加速的表白!华为云究竟说了什么?

当前, 云市场玩家面临业务增长、能力快速迭代、业务转型的压力,华为云全新优化的华为云生态伙伴计划3.0将设置专项激励、创新扶持基金,以及更多的人材养成、严选市场激励,与合作伙伴共享红利、共担风险、共同

css设置div滚动条内容不超过就不显示

css设置div滚动条内容不超过就不显示实现内容不超出就不显示滚动条的效果,可以设置div的css样式为overflow:auto,当overflow取值为auto时,如果内容被修剪,则浏览器会显示滚

耗时6年生成代码1.6亿行,农业银行大数据平台打造攻略!

摘要: 耗时6年,135个项目,8000页需求,累计投入11000多人月,生成的代码行1.6亿行,支持了8大业务领域,33条业务线,120多个应用场景,这就是中国农业银行大数据平台。近日,中国人民银行

【系列】股份制银行在职员工有多少?其中研发又有多少人?

本篇为系列文章第一篇,下一篇, 2018年,股份制银行在IT方面都花了多少钱,做了哪些事?摘要:虽然做过些与银行相关选题,比如《四大行、股份制银行、城商行都在使用什么数据库?》《银行数据库选型之秘》《

开曼国家银行已证实被黑客入侵:2.21 TB数据惨遭泄露

“或许这只是冰山一角,其背后还隐匿着更多的深海冰川。”开曼群岛——一个吸引人的财政天堂。近日,据外媒报道,匿名黑客入侵了开曼国家银行,并泄露了2.21TB数据,此外,他还向其他黑客提供100,000美

杭州银行批量交易平台(HZBAT)技术内幕

1 概述杭州银行批量交易平台(HZBAT)是我基于DC4C自研的面向批量交易的技术平台。DC4C是我在2015年完全独立自研的分布式批量计算框架。目前HZBAT已用于综合积分系统(2015年投产)、E

K8s有多热?传统银行转型拥抱Kubernetes案例

Kubernetes已经成为标准的基础设施API,像RedHat、Mesosphere(现在的D2IQ)和Pivotal等供应商都无法避免。如果您希望使企业能够合理构建应用程序,那么Kubernete

「完整版」农业银行数据库使用实践和发展规划!

摘要:中国农业银行(以下简称:农行)在信息化系统建设过程中,先是把关系型数据库作为联机交易型数据库使用,后来为满足分析型应用需要开始使用分析型数据库,近几年来随着应用场景细分,对基于Hadoop的大数

美国银行Capital One承认被黑客攻击,超1亿个人数据遭窃

大数据文摘出品作者:易琬玉美国最大的银行之一CapitalOne客户信息服务器被黑,导致超过1亿人的个人数据被窃取。根据法庭文件,嫌疑犯是33岁的女工程师PaigeThompson,Thompson曾