Categories
程式開發

為節省8億做系統遷移,13億記錄出錯,最終賠了29億


早前,英國TSB銀行籌劃了良久的遷移方案失敗,13億客戶記錄出錯,事後各類賠償總計花費約29億元人民幣。時隔一年,這家銀行終於想明白原因是缺乏嚴格的測試。

每年8億元多高額“贍養費”

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銀行。

為節省8億做系統遷移,13億記錄出錯,最終賠了29億 1

西班牙薩巴德爾銀行董事長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個月完成,但由於超出預算而一拖再拖。畢竟,將整個公司的記錄從一個系統轉移到另一個系統絕非一件容易事。

為節省8億做系統遷移,13億記錄出錯,最終賠了29億 2

一時間,草木皆兵。

忙中出錯“捅了大婁子”

20分鐘後,TSB重新開放賬戶訪問權限,就在他們以為遷移已經順利完成時,隨後就收到了第一批問題報告。

有人攢了一輩子的錢憑空消失了
有人花了點小錢賬戶裡卻少了數千元
還有些人登陸賬戶一看發現並不是自己的賬戶,而是別人的賬戶

當晚9點,TSB官員們告知英國金融監管機構——金融市場監管局(FCA),出大事了!但FCA早就意識到:TSB已經捅了大簍子,消費者們都憤恨不已。當晚11點30分左右,FCA和另一家英國金融監管機構審慎監管局(PRA)也打來電話。當他們深夜與TSB官員們召開電話會議時——實際上已經是4月23日凌晨了,他們還是沒弄清楚到底發生了什麼?

雖然當時他們並不清楚到底發生了什麼,但是還是進行了系統修復。此後,銀行花了數週來修復IT系統,在此期間數百萬人無法取款。雖然這件事還需要一些時間來消化,但是我們現在知道13億個客戶記錄在遷移過程中出錯了。距離TSB經歷的“黑色週末”已經過去一年多的時間,專家們認為他們找到了數據出錯的根本原因:缺乏嚴格的測試

為節省8億做系統遷移,13億記錄出錯,最終賠了29億 3

銀行系統很複雜

很少客戶能了解到,當他們登陸網上銀行賬戶僅為了下載和刷新信息時產生的數據變動到底有多複雜。登陸時將通過一組服務器數據傳輸;當發生交易時,系統在後台端基礎設施上複製這些數據,隨後會進行複雜的操作——將現金從一個賬戶轉移到另一個賬戶,以支付賬單、還款和訂閱各種服務。

如今,這個複雜的過程還要乘以幾十億倍。在Bill & Melinda Gates基金會的協助下,世界銀行彙編出了一組數據:目前全世界69%的成年人擁有銀行賬戶。每個賬戶都要支付賬單;有些人在償還貸款;更多人訂閱Netflix或Youkou Toudou。更重要的是,他們的賬戶是跨行甚至跨國的。

一家銀行的多個內部IT系統——手機銀行、自動取款機等需要的不僅僅是交互。也需要與玻利維亞、危地馬拉或巴西的銀行相互合作。在中國的取款機中要能取出美國簽發的信用卡中的現金。畢竟金錢無國界,但是這個過程所要求的計算是極為複雜的。

“接觸銀行IT系統的方式越來越多,”ITRS集團高管Warren表示。這些系統一般不會過時,但新病毒卻層出不窮。

為節省8億做系統遷移,13億記錄出錯,最終賠了29億 4

事實上,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工作過,現任Cyber​​ian Defence總經理)說道。 “正如我們所見,這種複雜性會導致宕機或產生更嚴重的問題。”

為節省8億做系統遷移,13億記錄出錯,最終賠了29億 5

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億美元)。

為節省8億做系統遷移,13億記錄出錯,最終賠了29億 6

也許避免宕機最簡單的方法就是盡量不對系統做任何更改。然而,正如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/