「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

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

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

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

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

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

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

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

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

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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果然不能立太早 , 打脸的结果很快就来了 。

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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

有的客户发现自己的钱不见了;

有的客户花了一点小钱 , 账户里却记录成了花费数千美元;

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

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

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

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

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

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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

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

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

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

而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系统之间的距离 , 而这样的系统 , 也越来越成为银行赖以运营的关键所在 。

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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

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

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

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

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

迁移问题很麻烦

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

IBM在为TSB编写的报告中指出:新应用程序的组合 , 对先进微服务的应用和双活数据中心的使用 , 导致了TSB生产中的复合风险 。

如何正确地处理银行IT系统迁移中出现的问题 , 对于任何一个银行来说 , 都是不小的挑战 。

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

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

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

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

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

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

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

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

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

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

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

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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

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

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

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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

「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿

----「量子位」这个系统让银行瘫痪、13亿人账户出错、损失超过28亿 //----[ http://www.caoding.cn]

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

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

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

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

你怎么看呢?


    推荐阅读