一次遷移引發(fā)的“血案”,最終賠償29億!
早前,英國 TSB 銀行籌劃了良久的遷移方案失敗,13 億客戶記錄出錯,事后各類賠償總計(jì)花費(fèi)約 29 億元人民幣。時(shí)隔一年,這家銀行終于想明白原因是缺乏嚴(yán)格的測試。
圖片來自 Pexels
2018 年,英國的 TSB 銀行陷入了困境。雖然這家金融機(jī)構(gòu)與勞埃德銀行集團(tuán)(Lloyds Banking Group,兩者最初于 1995 年合并)拆分已有兩年時(shí)間。
但 TSB 仍然與前伙伴勞埃德銀行集團(tuán)有著關(guān)密不可分的關(guān)系,因?yàn)樗?IT 系統(tǒng)是非常匆忙地從勞埃德銀行集團(tuán)復(fù)制而來的。
更糟糕的是,TSB 每年還要支付 1 億英鎊的許可費(fèi)給對方(撰寫本文時(shí)按匯率計(jì)算相當(dāng)于 1.27 億美元,約 8.9 億人民幣)。
沒人會愿意為“前任”付費(fèi)。
為了改變這種局面,2018 年 4 月 22 日晚上 6 點(diǎn)鐘,TSB 啟動了一個已經(jīng)蓄謀數(shù)月的計(jì)劃,要把他們 540 萬用戶的數(shù)十億條數(shù)據(jù)遷移到西班牙公司 Banco Sabadell 的 IT 系統(tǒng)上來,后者在 2015 年 3 月以 17 億歐元(22 億美元)的價(jià)格收購了 TSB。
01.前所未有的遷移,前所未有的糟糕
Banco Sabadell 的主席 Josep Oliu 于 2017 年圣誕前兩周的一次超過 1800 人的公司集會上宣布了這項(xiàng)計(jì)劃。
這次大規(guī)模集會是在巴塞羅那商業(yè)街上的一個又大又現(xiàn)代的會議大廳中舉行的。這次遷移工作的重中之重是 Banco Sabadell 公司在 2000 年開發(fā)的 Proteo 系統(tǒng)的新版本,并為這次 TSB 遷移項(xiàng)目而專門命名為 Proteo4UK。
Banco Sabadell 的首席執(zhí)行官 Jaime Guardiola Romojaro 曾對巴塞羅那的公眾宣稱,Proteo4UK 項(xiàng)目投入的人力超過 2500 人年。
“在歐洲,像 Proteo4UK 這么大型的整合項(xiàng)目絕對是史無前例的,我們投入的技術(shù)專家已經(jīng)超過了 1000 人”,他繼續(xù)說,“這個項(xiàng)目會為我們在英國的業(yè)務(wù)帶來極大助力”。
4 月 22 日,一個平常的星期天晚上,TSB 的遷移項(xiàng)目 Proteo4UK 接近完工了。
幾乎整個周末 TSB 舊的 IT 系統(tǒng)都處于停服狀態(tài),客戶數(shù)據(jù)不斷地從舊系統(tǒng)向新系統(tǒng)遷移。
到了周日晚上,新系統(tǒng)慢慢啟用了,并對外開放入口,平滑地恢復(fù)了對外服務(wù)。
雖然在圣誕之前的公司會議上,Oliu 和 Guardiola Romojaro 都對這個項(xiàng)目表現(xiàn)得信心滿滿,可是 TSB 參與具體遷移工作的工程師們卻非常緊張。
這個項(xiàng)目原計(jì)劃是要進(jìn)行 18 個月的,但它已經(jīng)延期了,而且超出了預(yù)算。畢竟,把一個公司的全部數(shù)據(jù)從一個系統(tǒng)遷移到另一個系統(tǒng),這絕非易事。
他們所擔(dān)心的事情真的發(fā)生了。
在確認(rèn)數(shù)據(jù)遷移很順利,TSB 重新對外開放了對賬戶的訪問之后,不到 20 分鐘,第一個故障投訴電話就打了進(jìn)來。
人們發(fā)現(xiàn)自己一生的積蓄忽然不翼而飛了。有些非常小額的交易卻被誤記成了幾千元的支出。
有些客戶登錄之后卻發(fā)現(xiàn),他們查看的并不是自己的銀行賬號,里面的信息壓根就屬于不相干的人。
晚上 9 點(diǎn),TSB 的領(lǐng)導(dǎo)層向英國的金融監(jiān)管機(jī)構(gòu)英國金融行為監(jiān)管局(Financial Conduct Authority,F(xiàn)CA)匯報(bào),自己這邊出了問題。
而事實(shí)上在 TSB 自己匯報(bào)之前,F(xiàn)CA 就已經(jīng)注意到了這個事件,因?yàn)楹檬虏怀鲩T,壞事傳千里,尤其是在這個有互聯(lián)網(wǎng)有 Twitter 的時(shí)代,出了問題時(shí)人們首先想到的就是去 Twitter 上吐槽。
到了晚上 11:30,F(xiàn)CA 終于和另一個金融監(jiān)管機(jī)構(gòu) PRA(Prudential Regulation Authority)碰了頭,并在零點(diǎn)之后成功地與 TSB 的管理者們開起了電話會議。
這時(shí)候已經(jīng)是 4 月 23 日,星期一的凌晨了。他們只想問一個問題:到底發(fā)生了什么?
盡管當(dāng)時(shí)的局面很混亂,但現(xiàn)在我們對事件已經(jīng)有了一個比較清晰的結(jié)論:13 億的用戶數(shù)據(jù)在遷移中被損壞了。
事后銀行的 IT 系統(tǒng)用了幾個星期才恢復(fù)服務(wù),在此期間有幾百萬人的日常存取錢行為受到了影響。
而直到這個事件發(fā)生一年多之后,專家們才自認(rèn)為找到了問題的根本原因:缺乏嚴(yán)格的測試。
02.遷移并不是想象中的那么簡單
隨著用戶的需求和期望不斷增加,銀行的 IT 系統(tǒng)也變得越來越復(fù)雜。
60 年前,我們需要自己在營業(yè)時(shí)間去到銀行的某個分行或營業(yè)部,在營業(yè)員的幫助下在柜臺上把錢存入銀行,或者把錢從銀行取出來。
我們銀行賬戶里的數(shù)字變動與我們拿在手上的真實(shí)的錢是完全對應(yīng)的。銀行工作人員會用筆和紙記下我們賬戶的變動,普通顧客是接觸不到任何計(jì)算機(jī)系統(tǒng)的。
然后當(dāng)一天或一周結(jié)束時(shí),銀行工作人員再把傳統(tǒng)的記錄在卡片或紙帶上的數(shù)據(jù)輸入巨型計(jì)算機(jī),做最終匯總。
到了 1967 年,世界上第一臺自動提款機(jī)(Automated Teller Machine,ATM)在倫敦北部的一家銀行門前正式投入使用。
它徹底地改變了銀行為顧客提供服務(wù)的方式,也改變了銀行的方方面面。方便成了銀行服務(wù)的基本標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)也讓用戶與屏幕后面運(yùn)行的銀行系統(tǒng)之間的距離大大地拉近了。
“在很久以前,IT 系統(tǒng)只是給銀行內(nèi)部工作人員使用的,只需要在柜臺上做些紙質(zhì)工作,銀行就完全可以正常運(yùn)轉(zhuǎn)”,ITRS 集團(tuán)的首席執(zhí)行官 Guy Warren 說。
ITRS 集團(tuán)是全世界 190 多家銀行的技術(shù)供應(yīng)商。“后來 ATM 出現(xiàn)了,再后來又有了網(wǎng)上銀行系統(tǒng),普通顧客才真的直接與銀行的 IT 系統(tǒng)打交道了。”
ATM 還只是個開始。很快人們就可以通過電話進(jìn)行轉(zhuǎn)賬,再也不必去現(xiàn)場排隊(duì)了。
這個功能需要把特制的卡片插入可以解密雙音多頻(Dual-Tone Multi-Frequency,DTMF)信號的硬件中,這樣當(dāng)客戶按下“1”時(shí),它就可以把這個命令翻譯成“取錢”,而把“2”翻譯成“存錢”。
網(wǎng)上銀行和手機(jī)銀行把客戶與銀行核心系統(tǒng)之間的距離拉得更近了。盡管不同的功能會由不同的子系統(tǒng)來實(shí)現(xiàn),但所有子系統(tǒng)之間都要進(jìn)行交互,并且向最核心的系統(tǒng)發(fā)出請求,比如更新余額、記錄轉(zhuǎn)賬等等。
據(jù) BLMS 咨詢公司的 Brian Lancaste 所說,典型的零售銀行核心系統(tǒng)都會運(yùn)行在一臺大型機(jī)上。
他曾經(jīng)在 IBM 工作過 13 年,而在 HSBC 負(fù)責(zé)管理 IT 技術(shù)部門的時(shí)間則更長。他現(xiàn)在為銀行提供咨詢服務(wù),并在全英國范圍內(nèi)推動社區(qū)(對客戶服務(wù)的社區(qū)銀行)的構(gòu)建。
他說,“那可能是你能夠運(yùn)行核心系統(tǒng)的最可靠的平臺了,也是最具備可擴(kuò)展性的”。
把核心的用戶數(shù)據(jù)庫放在大型機(jī)上,再加上運(yùn)行在許多服務(wù)器之上的其他不同的 IT 基礎(chǔ)設(shè)施,就可以構(gòu)建對大型機(jī)進(jìn)行訪問的應(yīng)用接口,從而提供互聯(lián)網(wǎng)接入了。
當(dāng)用戶在網(wǎng)上登錄進(jìn)自己的銀行賬號,看到了自己的最新信息時(shí),很少有人會想到發(fā)生在后臺的數(shù)據(jù)處理過程有多么復(fù)雜。登錄信息會在多臺服務(wù)器之間傳遞。
當(dāng)你做一筆交易時(shí),系統(tǒng)會從后端的基礎(chǔ)設(shè)施拷貝一份數(shù)據(jù)過來,然后就是復(fù)雜的部分了:把錢從一個賬戶搬到另一個賬戶,完成交水電費(fèi)、還款等實(shí)際業(yè)務(wù),然后再繼續(xù)處理其他請求。
再設(shè)想一下,如果上面描述的過程每秒鐘同時(shí)發(fā)生幾十億次,又會是怎樣呢?
世界銀行組織在比爾和梅琳達(dá)·蓋茨基金會(The Bill & Melinda Gates Foundation)的幫助下,推算出現(xiàn)在全世界有 69% 的成年人都有銀行賬戶。
這些成年人每個人都要還賬單,有些還要還貸款,而有 Netflix 或優(yōu)酷土豆賬號的人就更多了。另外他們的銀行賬號也不屬于同一家銀行。
手機(jī)銀行、ATM 等數(shù)不清的銀行內(nèi)部 IT 系統(tǒng)不僅要在彼此之間進(jìn)行交互,它們還要與不同地域的不同銀行進(jìn)行交互,比如玻利維亞、危地馬拉甚至巴西等。
如果你把一張美國發(fā)行的信用卡插進(jìn)了一臺中國的 ATM 機(jī),它仍然要能夠取出錢來。錢一直是全球化的,但與錢相關(guān)的操作從來沒有這么復(fù)雜過。
“使用銀行 IT 系統(tǒng)的方式不斷在增加”,ITRS 集團(tuán)高管 Warren 說。而且舊的系統(tǒng)幾乎永遠(yuǎn)都不會下線,新的系統(tǒng)還會不斷涌現(xiàn)出來。
“如果你考慮的問題是用各種各樣的平臺來滿足各種不同的用戶群體,以及它們能夠提供多少在線服務(wù)的時(shí)間,那么很明顯,你會有大問題”,Warren 說。
事實(shí)上,衡量一個好的 IT 系統(tǒng)的標(biāo)準(zhǔn)是“你的系統(tǒng)有多大能力做自我修復(fù),在出現(xiàn)嚴(yán)重故障甚至停服時(shí),它能夠處理得怎么樣”。
“雙活數(shù)據(jù)中心”這個詞講的是至少要有兩個數(shù)據(jù)中心來一起提供服務(wù),保證在任何時(shí)刻都可以正常處理業(yè)務(wù),它通過冗余來提高了可靠性。
03.問題復(fù)盤
TSB 的 IT 系統(tǒng)就不擅長自我修復(fù),銀行的技術(shù)團(tuán)隊(duì)在處理嚴(yán)重故障時(shí)也很痛苦。但導(dǎo)致 TSB 的 IT 系統(tǒng)故障的根本原因在于它的復(fù)雜性。
根據(jù)事故早期 IBM 為 TSB 出具的一份報(bào)告,“新應(yīng)用與微服務(wù)的高級用法相結(jié)合,再加上使用了雙活數(shù)據(jù)中心,導(dǎo)致了生產(chǎn)環(huán)境的多重風(fēng)險(xiǎn)”。
對于像 HSBC 一樣的全球性銀行,IT 系統(tǒng)都是高度復(fù)雜并且內(nèi)部互聯(lián)的,因此會有規(guī)律地進(jìn)行測試、遷移和升級等活動。
“對于像 HSBC 這樣的公司,這些事情是時(shí)時(shí)刻刻在發(fā)生的”,前 HSBC 的 IT 技術(shù)負(fù)責(zé)人 Lancaster 說。
他覺得 HSBC 可以做為其他銀行如何運(yùn)營 IT 系統(tǒng)的典范:要有專職的員工,付出專門的時(shí)間。
“就算你標(biāo)記好所有的 I,劃上所有的 T,最后總會發(fā)現(xiàn) IT 系統(tǒng)還是需要相當(dāng)大量的計(jì)劃和測試工作”,Lancaster 說。
對于小型銀行,尤其是那些沒有豐富的數(shù)據(jù)遷移經(jīng)驗(yàn)的小型銀行來說,要把這事做好就更有挑戰(zhàn)性了。
“TSB 的遷移工作就很復(fù)雜”,Lancaster 說,“我不確定他們是不是真的明白這事有多復(fù)雜,我印象很深的是他們并沒有制訂出非常明確的測試計(jì)劃”。
故障發(fā)生幾個星期之后,F(xiàn)CA 的首席執(zhí)行官 Andrew Bailey 在回應(yīng)英國議會就這個問題的問詢時(shí)確認(rèn)了這一點(diǎn)。
有問題的代碼當(dāng)然是 TSB 問題的根源,但全球金融網(wǎng)絡(luò)相互關(guān)聯(lián)的各個系統(tǒng)讓它的錯誤層出不窮并且無法逆轉(zhuǎn)。
各種意想不到的錯誤不斷地從這個 IT 架構(gòu)各個地方冒出來。用戶不斷地收到各種冒名其妙的消息,而且壓根與自己的問題無關(guān)。
“對我來說,這表明他們?nèi)狈训幕貧w測試,因?yàn)殂y行系統(tǒng)是與支付系統(tǒng)、短信系統(tǒng)等許多外部系統(tǒng)相關(guān)聯(lián)的”,Bailey 告訴議員們,“當(dāng)你提交了修復(fù)代碼,又引發(fā)了各種意想不到的問題時(shí),那我們就又回到了測試的問題上”。
回歸測試可能可以有助于避免這樣的災(zāi)難,它可以幫你在把有問題的代碼部署到生產(chǎn)環(huán)境之前,在有問題的代碼與外部依賴相互作用造成不可逆轉(zhuǎn)的錯誤、造成嚴(yán)重破壞之前,就把問題定位出來。
其他人也表示了同意。被邀請來幫忙定位問題的 IBM 專家一點(diǎn)也沒有掩飾對 TSB 的批評之意。
他們說本應(yīng)該看到“國際標(biāo)準(zhǔn)級的嚴(yán)格設(shè)計(jì)、測試方法、全面的運(yùn)營論證、預(yù)上線試運(yùn)行和就緒的運(yùn)維支撐等”。
而實(shí)際上他們看到的完全不一樣:“IBM 并沒有看到有任何證據(jù)表明這些系統(tǒng)經(jīng)過了哪些可以達(dá)到上線標(biāo)準(zhǔn)的嚴(yán)格測試,以證明它們可以投入生產(chǎn)了”。
TSB 已經(jīng)踏入了雷區(qū),而看起來她還毫不知情。
“他們所使用的技術(shù)是有相當(dāng)大復(fù)雜度的,而且這些復(fù)雜度又有著不同的表現(xiàn)形式”,Ryan Rubin 說。
他是一個 IT 專家,之前曾在 EY 工作,現(xiàn)在是 Cyberian Defence 的管理總監(jiān),這是一家專門幫助大型公司管理網(wǎng)絡(luò)風(fēng)險(xiǎn)的咨詢公司。“這可能會導(dǎo)致宕機(jī)和各種復(fù)雜事件,正如我們所看到的那樣”。
Warren 說,英國的銀行一般的行業(yè)標(biāo)準(zhǔn)是要達(dá)到“四個九”的可用性,即在 99.99% 的時(shí)間里他們的服務(wù)要對用戶可用。
在現(xiàn)實(shí)中,這意味著和網(wǎng)上銀行一樣,銀行的 IT 系統(tǒng)在一天中的每個小時(shí)都要正常對外提供服務(wù),在一年中也最多只能有 52 分鐘的離線時(shí)間。
“三個九”,即 99.9% 的可能性,聽起來與四個九好像沒有太大區(qū)別,但那就意味著一年超過 8 小時(shí)的停服時(shí)間。
“對于一家英國銀行來說,四個九的標(biāo)準(zhǔn)是可以的,三個九的標(biāo)準(zhǔn)不可接受”,Warren 說,他回想起來他提供咨詢服務(wù)的第一個軟件項(xiàng)目就要求達(dá)到六個九的標(biāo)準(zhǔn)——那是一家核電站的控制系統(tǒng)。
每當(dāng)一家公司對她的 IT 基礎(chǔ)設(shè)施做出變更時(shí),就會有引入故障的風(fēng)險(xiǎn)。減少變化當(dāng)然有助于避免問題,但對于必要的改變來說,就要經(jīng)過嚴(yán)格的測試,這正是 IBM 所強(qiáng)調(diào)的在 TSB 的故障中所缺乏的。
Shujun Li 在肯特大學(xué)教授網(wǎng)絡(luò)安全課程,也為包括一家大型銀行和許多保險(xiǎn)公司在內(nèi)的大型公司提供咨詢服務(wù)。
他說,每次升級和打補(bǔ)丁操作最后都會歸結(jié)到風(fēng)險(xiǎn)管理的問題,對那些客戶投資幾億的大型項(xiàng)目來說尤其如此。
“要有流程來保證風(fēng)險(xiǎn)都得到了有效的控制”,他說,“另外你還要心里有數(shù),萬一出了問題的話,可能會付出多少金錢和名譽(yù)上的代價(jià)”。
詳細(xì)的計(jì)劃可以降低 TSB 所經(jīng)歷的這種重大事故的風(fēng)險(xiǎn)。“故障還是會發(fā)生的,但進(jìn)行快速恢復(fù)和保持冗余所要付出的代價(jià)卻會減少”,Rubin 說。
隨著網(wǎng)絡(luò)供應(yīng)商和云解決方案的發(fā)展,存儲費(fèi)用已經(jīng)大大降低了。“所有東西都是現(xiàn)成的,當(dāng)災(zāi)難發(fā)生時(shí),它們可以幫助銀行管理風(fēng)險(xiǎn),并將故障影響控制到最小”。
不過,對于一些機(jī)構(gòu)來說,為應(yīng)對災(zāi)難的發(fā)生而要實(shí)施備份計(jì)劃的成本可能太高。Warren 認(rèn)為,一些銀行在如何實(shí)現(xiàn) IT 彈性方面做得過于保守。
他解釋說:“你不能靠預(yù)算來做這件事。這是一項(xiàng)金融服務(wù):要么有,要么沒有。他們本來就應(yīng)該再多投入一些錢。”
吝嗇的 IT 投入最終讓人付出了慘痛的代價(jià)。
TSB 聲稱他們在 2018 年因?yàn)槭鹿试斐傻膿p失是 1.05 億歐元(1.34 億美元),與之形成對比的是 2017 年他們的利潤是 1.63 億歐元(2.06 億美元)。
遷移事故后續(xù)的總支出達(dá)到了 3.3 億歐元(4.19 億美元),包括補(bǔ)償用戶、更正虛假交易(在事故發(fā)生后的混亂情況下,虛假交易的數(shù)量急劇上升)、以及為臨時(shí)聘請技術(shù)專家而要支出的費(fèi)用等。
對應(yīng)在這次事故中所要承擔(dān)的責(zé)任,TSB 的 IT 服務(wù)供應(yīng)商 Sabis 也收到了一張 1.53 億歐元(1.94 億美元)的賬單。
要降低風(fēng)險(xiǎn),也許最簡單的辦法就是盡量不要做改動。
但是正如 Lancaster 所說,“每間銀行,每個發(fā)展中的社區(qū),每家公司都無時(shí)無刻不被業(yè)務(wù)驅(qū)動著,要構(gòu)建出越來越多的好東西來服務(wù)客戶,支撐業(yè)務(wù)”。
他觀察到,“為了變得更有競爭力,你就會有動力引入更多的新系統(tǒng)和新功能”。同時(shí),對于各家公司,尤其是金融服務(wù)類的公司來說,他們對客戶承擔(dān)著責(zé)任,要保證他們的財(cái)產(chǎn)安全,并且在使用現(xiàn)有服務(wù)時(shí)要保持良好的體驗(yàn)。
“當(dāng)你承受著巨大的業(yè)務(wù)壓力要引入新東西時(shí),兩難之處在于你該投入多少成本來讓所有系統(tǒng)保持正常運(yùn)行”。
根據(jù) FCA 公布的數(shù)據(jù),從 2017 年到 2018 年,英國金融服務(wù)業(yè)上報(bào)的技術(shù)故障發(fā)生次數(shù)增長了 187%。
究其原因,最常見的故障根本原因都在于變更管理做得很失敗。尤其對于銀行系統(tǒng)來說,需要保持時(shí)刻在線,而且需要近乎實(shí)時(shí)的交易報(bào)告。
客戶可能擔(dān)心他們的錢會不會不翼而飛,如果感受不到自己的錢的存在,他們肯定會抓狂。
在 TSB 的事故發(fā)生幾個月之后,英國金融監(jiān)管機(jī)構(gòu)和英格蘭銀行一起發(fā)布了一份關(guān)于運(yùn)營彈性的討論文件。
“文件的目的是提醒各家金融公司:你會不會把天平向引入新功能的一側(cè)傾斜了太多,從而忽略了現(xiàn)有系統(tǒng)的平穩(wěn)運(yùn)行?”Lancaster 解釋到。
文件也對監(jiān)管規(guī)則提出了修改建議:
公司里相關(guān)員工也應(yīng)該為公司的 IT 系統(tǒng)所出的故障負(fù)責(zé)。“如果你對此負(fù)有責(zé)任,你可能會因此而破產(chǎn),甚至可能被送進(jìn)監(jiān)獄。這會讓許多東西都隨之發(fā)生改變,包括大家對事情的重視程度,”Warren 說。“你會非常慎重地對待它,因?yàn)樗玛P(guān)你的家庭財(cái)產(chǎn)和你的人身自由。”
Rubin 說:
“從 TSB 的事件之后,大家做事情時(shí)肯定會更加認(rèn)真地審查。高級管理者再也不會忽視 IT 系統(tǒng)的建設(shè),也不會對技術(shù)資產(chǎn)投入不足了。由于有著處罰和合規(guī)性要求,現(xiàn)在的形勢已經(jīng)發(fā)生了很大變化。”
不管大家從 TSB 身上學(xué)到了什么經(jīng)驗(yàn)和教訓(xùn),嚴(yán)重的停服事件肯定還是會發(fā)生的,這無可避免。
“我不認(rèn)為故障會消失”,Warren 說,相反,人們必須接受:“你能接受多大程度的可用性?換句話說,就是多少停服時(shí)間?”
作者:Chris Stokel-Walker,足下編譯
簡介:本文翻譯自“ What broke the bank ”翻譯已取得原網(wǎng)站授權(quán)。