2018 年,英国 TSB 银行陷入了一场“离婚丑闻”风波。尽管这家银行 2015 年就与劳埃德银行集团(Lloyds Banking Group)分道扬镳了(两家银行最初于 1995 年合并),但 TSB 银行还一直沿用着从劳埃德银行集团匆忙复刻过来的 IT 系统,并以这种方式和“前任”之间保持着剪不断,理还乱的关系。更悲剧的是,TSB 每年还要向劳埃德银行支付 1 亿英镑的“赡养费”(在撰写本文时相当于 1.27 亿美元,约 8.9 亿人民币)。
没人愿意离了婚还要再给前任“赡养费”。为此,2018 年 4 月 22 日下午 6 点,心有不甘的 TSB 制定了一项筹划了数月的方案:将 540 万客户的数十亿客户记录 迁移 到西班牙萨巴德尔银行(Banco Sabadell)的 IT 系统上。 萨巴德尔银行于 2015 年 3 月斥资 17 亿欧元(合 22 亿美元,154 亿人民币)收购了 TSB 银行。
西班牙萨巴德尔银行董事长 Josep Oliu 在 2017 年圣诞节前两周,在巴塞罗那金融区卡塔隆尼亚宫(Palau de Congressos de Catalunya)举行的 1800 人公司会议上宣布了这一迁移计划。2000 年,萨德瓦尔银行开发了一个新版本的 Proteo 系统,该系统被重新命名为 Proteo4UK,专门用于 TSB 项目的迁移。
萨德瓦尔银行 CEO Jaime Guardiola Romojaro 向巴塞罗那人吹嘘说,“公司对这个项目投入大量人力,Proteo4UK 的一体化整合是欧洲前所未有的大项目,1000 多名专业人员参与其中,”他继续说。“这将极大地促进我们在英国的发展。”
TSB 最终将迁移日期定在了 4 月 22 日(周日晚上),正值仲春时分,万物欣欣向荣。由于 Proteo4UK 项目的实施,以及要将客户记录从一个系统转移到另一个系统,所以银行先是让正在使用中的 IT 系统在周末的大部分时间处于离线状态。想在周日晚上“神不知鬼不觉”地完成迁移后再上线,恢复客户访问自己银行账户的权限。
然而,尽管 Oliu 和 Guardiola Romojaro 已经在圣诞节前的公司大会上摆出了胸有成竹的姿态,但那些奋斗在 TSB 迁移工作前线的员工们仍然惴惴不安。这个项目原计需要耗时 18 个月完成,但由于超出预算而一拖再拖。毕竟,将整个公司的记录从一个系统转移到另一个系统绝非一件容易事。
一时间,草木皆兵。
20 分钟后,TSB 重新开放账户访问权限,就在他们以为迁移已经顺利完成时,随后就收到了第一批问题报告。
有人攒了一辈子的钱凭空消失了有人花了点小钱账户里却少了数千元还有些人登陆账户一看发现并不是自己的账户,而是别人的账户......
当晚 9 点,TSB 官员们告知英国金融监管机构——金融市场监管局(FCA),出大事了!但 FCA 早就意识到:TSB 已经捅了大篓子,消费者们都愤恨不已。当晚 11 点 30 分左右,FCA 和另一家英国金融监管机构审慎监管局(PRA)也打来电话。当他们深夜与 TSB 官员们召开电话会议时——实际上已经是 4 月 23 日凌晨了,他们还是没弄清楚到底发生了什么?
虽然当时他们并不清楚到底发生了什么,但是还是进行了系统修复。此后,银行花了数周来修复 IT系统,在此期间数百万人无法取款。虽然这件事还需要一些时间来消化,但是我们现在知道 13 亿个客户记录在迁移过程中出错了。 距离 TSB 经历的“黑色周末”已经过去一年多的时间, 专家们认为他们找到了数据出错的根本原因:缺乏严格的测试。
很少客户能了解到,当他们登陆网上银行账户仅为了下载和刷新信息时产生的数据变动到底有多复杂。登陆时将通过一组服务器数据传输;当发生交易时,系统在后台端基础设施上复制这些数据,随后会进行复杂的操作——将现金从一个账户转移到另一个账户,以支付账单、还款和订阅各种服务。
如今,这个复杂的过程还要乘以几十亿倍。在 Bill & Melinda Gates 基金会的协助下,世界银行汇编出了一组 数据:目前全世界 69% 的成年人拥有银行账户。每个账户都要支付账单;有些人在偿还贷款;更多人订阅 Netflix 或 Youkou Toudou。更重要的是,他们的账户是跨行甚至跨国的。
一家银行的多个内部 IT 系统——手机银行、自动取款机等需要的不仅仅是交互。也需要与玻利维亚、危地马拉或巴西的银行相互合作。在中国的取款机中要能取出美国签发的信用卡中的现金。毕竟金钱无国界,但是这个过程所要求的计算是极为复杂的。
“接触银行 IT 系统的方式越来越多,”ITRS 集团高管 Warren 表示。这些系统一般不会过时,但新病毒却层出不穷。
事实上,TSB 的系统并不擅长自我修复。银行团队在面对重大宕机时也很难应对。而真正“击溃”TSB IT 系统的也正是系统的复杂性。据 IBM 在危机早期为 TSB 编写的一份报告称,“新应用程序的组合、应用先进的 微服务 以及使用 active-active 数据中心导致了生产中的复合风险。“
像汇丰银行等一些全球性银行的系统都是高复杂、互联的,因此都会进行定期检测、迁移和更新。“汇丰银行一直在定期检测和更新系统,”汇丰前 IT 主管 Lancaster 表示。他认为汇丰银行在运营 IT 系统方面堪称行业典范:敬业奉献、细致耐心,值得其他银行学习。Lancaster 称,“在迁移前,谋定而后动,充足的准备和大量的测试必不可少的。”
这么复杂的银行系统,之于小银行,尤其是没有迁移经验的银行来说,做好迁移并不容易。
“TSB 的迁移非常复杂,”Lancaster 说道。“我不确定他们是否认识到了迁移的复杂程度。我有种强烈的感觉,他们其实并不知道如何进行测试。”
FCA CEO Andrew Bailey 称,网络中断数周后,英国议会咨询委员会就这一问题展开了调查,证实了他的猜测。或许是糟糕的代码导致了 TSB 最初的问题,但由于全球金融网络是相互连通的,因此这种错误将是永久性的、不可逆转的。银行 IT 架构其他地方也不断出现各种意想不到的 bug。客户收到的信息要么驴唇不对马嘴,要么所问非所答。
“在我看来,这意味着缺乏稳健的回归测试,因为这些银行系统与很多外部系统相连,比如支付系统和信息系统,”Bailey 对国会议员说道。
TSB 一时陷入了困局,手足无措。
“我们采用的技术背后的复杂程度难以想象,这种复杂性以多种方呈现出来,”IT 专家 Ryan Rubin(曾在 EY 工作过,现任 Cyberian Defence 总经理)说道。“正如我们所见,这种复杂性会导致宕机或产生更严重的问题。”
Warren 解释说,英国的银行通常会制定“四个 9”可用性目标,这意味着他们的服务在 99.99% 的时间里对公众开放。在实际中,这意味着 IT 系统一天中的所有时段都可用,就像网上银行一样,每年仅可以离线 52 分钟。“三个 9”——99.9% 可用性——听起来并没有什么不同,但细算起来相当于一年宕机时间会超过 8 小时。“对于一家(英国)银行来说,要做到‘四个 9’才行,‘三个 9’可不够,”Warren 说道。
每当公司对其 IT 基础设施进行更改时,都有出错的风险。减少不必要的变更能避免很多问题,如果一定要进行变更,那么则要进行严格的测试。然而,IBM 在处理 TSB 宕机中并没有突出强调这一要点。
肯特大学网络安全授课教授 & 银行和保险公司顾问 Shujun Li 称,每个升级和补丁实际上都是风险管理,尤其在处理数亿美金‘客户价值’资金时更是如此。“你需要制定一个能很好控制风险的程序,”他说道。“你也要知道一旦出了问题,金钱和声望上将付出怎样的代价。”
周密的计划能够降低宕机的风险,这一点显然 TSB 没有考虑到。“故障仍在持续,但是用于解决这些问题剩余的成本逐渐减少,”Rubin 说道。随着网络供应商和云解决方案的崛起,存储备份成本越来越低。“这些拱手奉上的便利可以帮助银行在面对危局时更好地管控风险且‘死’得不那么难看。”
不过,对一些机构来说,灾难发时备份的成本还是过高。Warren 认为一些银行在处理 IT 弹性问题上过于谨慎。“你不能想着把这种突发状况做进预算里,”他解释说,“这就像一种金融投资:要么收益,要么投资打水漂。他们应该在这上面多一些投入。”
吝啬对 IT 系统的支出最终会带来更严重的损失。TSB 公布 2018 年亏损 1.054 亿英镑(合 1.34 亿美元),而 2017 年盈利 1.627 亿英镑(合 2.06 亿美元)。迁移后留下的“祸根”,包括补偿客户支出、纠正欺诈性交易(宕机过程中的一团乱麻)以及聘请外部团队帮助解决问题的支出,总计 3.302 亿英镑(4.19 亿美元)。对于造成的严重后果,银行 IT 供应商 Sabis 需要赔付 1.53 亿英镑(1.94 亿美元)。
也许避免宕机最简单的方法就是尽量不对系统做任何更改。然而,正如 Lancaster 所说,“每家银行、每个建房互助协会、每家公司都希望通过自身改变来为客户和企业打造更优质的产品和服务。”他说:“新系统和新功能总是令人神往,因为只有不断更新才能让产品和服务更具竞争力。”Lancaster 表示:“两难的是,当处于推出新产品的巨大压力下时,还有多少精力来维持公司运转。”
据 FCA 公布的数据显示,从 2017 年到 2018 年,英国金融服务行业报出的技术故障增长了 187%。毫无疑问,变更管理失误是造成宕机的最根本原因。银行尤其需要一刻不停歇地运行,并几乎随时都需要交出即时交易报告。如果客户的钱处于“游走”状态,他们就会焦虑,如果把让他们的钱与他们“天人永隔”,那就会把他们逼疯。
在 TSB 发生宕机几个月后,英国金融监管机构和英国央行发布了一份关于运营弹性的论文。“文中试图告诫金融机构:目前已经造成了如此严重的后果,如果还不反思好好管理自己的系统,这是不是太不应该了?”Lancaster 解释说。
这篇论文还提出了一个未来可能会实施的策略——让个人对公司 IT 系统出现的问题负责。Warren 说:“当个人承担责任时,一旦出现问题,那个人就可能会面临破产或被送进监狱,这就会使问题发生根本性变化,人们对它的关注程度也大不一样。”“你需要非常认真地对待它,因为这关系到你的个人财富和人身自由。”
自 TSB 事件后,Rubin 说,“整个事件已经告一段落,但针对这个事件的反思还应继续。高管们不能继续忽视或吝啬对技术的投资了。”
“我认为系统宕机不会就此终止,”Warren 说道。相反,人们需要思考的是:“对于宕机的接受程度是多少?”
作者简介:
Chris Stokel-Walker,英国 BBC、《Wired UK》、Bloomberg 和《The Economist》特约记者。他于 2019 年出版了《YouTubers》一书。
原文链接:https://increment.com/testing/what-broke-the-bank/
KubeEdge 源码分析之(六)metamanager
点个在看少个 bug 👇