2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億

IT職業頻道發表於2022-12-05

作者 | 魚羊 郭一璞    轉自量子位  | 公眾號 QbitAI

2000多個bug,這樣一個千瘡百孔的系統,被用在了一家有13億使用者的銀行裡。
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
這是去年TSB銀行系統遷移大事故的報告結果,出自Slaughter and May律所。
Bug連篇、測試沒做好、IT服務商無能,這一切的一切,導致了災難級後果。
當系統啟用的時候,使用者們紛紛發現自己的錢不見了、花一兩塊扣掉幾千、賬戶被別人登入……
銀行為了啟用這個系統,投入了2500人年的成本;而事後為了補鍋,也花費了高達28億的資金。

系統遷移捅了13億使用者的婁子

故事,是從一樁“離婚再嫁”的案子開始的。
離婚再嫁的主角,是英國銀行TSB
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
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果然不能立太早,打臉的結果很快就來了。
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
遷移結束,客戶的訪問許可權,他們以為萬無一失,但就在20分鐘後,收到了問題報告:
有的客戶發現自己的錢不見了;
有的客戶花了一點小錢,賬戶裡卻記錄成了花費數千美元;
有的客戶登入上去之後,發現不是自己的賬戶,而是看到了別人的銀行賬戶。
13億客戶的賬戶記錄都出了問題,於是,他們把TSB銀行罵成狗,金融監管機構們則連夜找銀行喝茶。
而此後的幾個星期,銀行都在拼命的恢復系統,但數以百萬計的客戶們已經人心惶惶,拼命的把自己存在TSB銀行的錢取出來。
TSB銀行,被自己捅的簍子扔進了地獄模式。
而問題的根源,在於測試。
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億


英國金融監管機構金融行為監管局(FCA)執行長Andrew Bailey在事故幾周後對外公開表示,造成系統混亂的很大原因在於缺少測試,而TSB銀行請來救急的IBM專家也發現,TSB銀行沒有采用嚴格的上線標準。
而且由於地球上的金融體系都是相連的,事故所造成的錯誤被永久的保留在了金融體系裡,不可逆轉。
這起彌天大禍,也讓TSB銀行賠了很多錢。為了賠償客戶、解決系統出問題後渾水摸魚的交易、找第三方幫忙總共花了3.302億英鎊,按當時匯率算大約28.4億人民幣。
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
而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系統之間的距離,而這樣的系統,也越來越成為銀行賴以運營的關鍵所在。
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
或許你會覺得,登個支付寶/微信,亮出付款碼,讓小錢錢在銀行跟銀行之間發生小小的流動,並沒有什麼難度。但事實上,每一次資訊的載入和重新整理背後,都發生了複雜的資料移動——
每一次動作可能關聯到許多個單獨的系統,所有這些系統都必須彼此互動,並與核心大型計算機連通。系統要現在後端複製資料,將現金從一個賬戶轉移到另一個賬戶,保持同步更新。
而這樣的運算量,還要乘以數十億倍
根據世界銀行的資料,現在,全球至少有69%的成年人都擁有銀行賬戶。人們每一天都在透過銀行賬戶支付賬單、貸款還款、訂閱各種服務……並且,這些活動常常是跨行,甚至跨國進行的。
一家銀行內部的多個IT系統(移動銀行、ATM等),不僅需要彼此互動,甚至還必須跟其他國家的銀行建立聯絡。比如我在國內辦了一張visa信用卡,在美國也要能消費才行。

遷移問題很麻煩

TSB正是栽在了這樣的高度複雜性上。
IBM在為TSB編寫的報告中指出:新應用程式的組合,對先進微服務的應用和雙活資料中心的使用,導致了TSB生產中的複合風險。
如何正確地處理銀行IT系統遷移中出現的問題,對於任何一個銀行來說,都是不小的挑戰。
其中,大量的事前規劃和測試工作是不可避免的。
像匯豐銀行這樣的跨國銀行,具有高度複雜、相互關聯的系統,這些系統會定期進行測試、遷移和更新。
即使在這方面如此經驗豐富,匯豐銀行的前IT主管蘭開斯特仍坦承:訣竅就是讓員工在這件事上付出更多的時間。
他還指出,TSB的IT系統遷移是一件很複雜的事:

我不確定他們是不是真的意識到了這件事的複雜程度。他們甚至沒有完全想好要怎麼去測試系統。

FCA執行長Andrew Bailey則表示:

TSB的這一事故反映出他們缺少強大的迴歸測試

注:迴歸測試是軟體測試的一種,旨在檢驗軟體原有功能在修改後是否保持完整
而最新的事故報告也引起了hacker news上網友們的熱烈討論。
有網友表示,如果TSB能選擇小規模多次遷移,而不是在某一天進行大爆炸式遷移,那這種嚴重的事故可能就不會發生。

花幾周/幾個月的時間在生產過程中進行檢查,以確保舊資料庫和新資料庫返回的結構相同。最終,將資料都轉移到新資料庫中,並在一段時間之後再關閉舊的資料庫。這樣做效果是比較好的。

2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
而對測試不足導致了銀行系統癱瘓的這一調查結論,有人吐槽說:

作為測試工程師,我一點也不意外。花費更多的時間、投入更多的人員來打造更好的測試架構,對於很多公司來說都是“可以節省的成本”。
經理們總是在設定的上線日期前問:“測試咋能花那麼多時間?!”真要出事了他們又開始甩鍋了。

2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
也有網友嚴厲批評道:TSB的問題不應該說是測試不足,而是在多個層面上都測試不足,並且缺少可恢復的備份。
2000多個Bug!這個系統讓銀行癱瘓、13億人賬戶出錯、最終損失超過28億
也有人指出,避免出錯最簡單的辦法就是減少變化。
問題在於,無論是銀行還是其他領域的公司,業務都是在不斷進化的。
根據FCA釋出的資料,從2017年到2018年,英國金融服務部門報告的技術中斷增加了187%。
蓋伊·沃倫就認為:系統停機不會消失。問題在於,可接受的度在哪裡?
你怎麼看呢?
參考連結:


slaughter-and-may-report.pdf

—  —

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545820/viewspace-2670875/,如需轉載,請註明出處,否則將追究法律責任。

相關文章