走進遺留IT系統(tǒng)的陰暗世界
新冠疫情引爆遺留系統(tǒng)問題
新冠疫情的全球性蔓延無疑對經濟產生了毀滅性的影響。僅美國在2020年3月下旬至4月初之間,就有2200萬人申請失業(yè)。為了幫助失業(yè)人士維持基本生活,美國政府于2020年3月底通過了2.2萬億美元救助法案,當中包括每周增加600美元的失業(yè)救濟金。然而,不幸的是,由于需求激增,許多州政府網站崩潰,許多人面臨著嚴重的失業(yè)救濟申請?zhí)幚硌舆t。
根據美國信息技術和創(chuàng)新基金會(ITIF)的調查數據顯示,到2020年4月中旬,超過一半的州失業(yè)網站經歷了嚴重的停機。佛羅里達州的站點甚至一度宕機16個小時。
部分原因在于許多組織機構沒有考慮過這種需求量的激增,另一方面則是由于聯(lián)邦和地方州的失業(yè)IT系統(tǒng)過時且不兼容的問題。據悉,這些系統(tǒng)大多可以追溯到20世紀80年代,有些甚至可以追溯到更早以前。例如,佛羅里達州的失業(yè)網站正在運行舊版本的Internet Information Services(基于Windows的Web服務器),并使用舊版的ASP.net設計其系統(tǒng);還有至少12個州在其系統(tǒng)中運行著一種有60年歷史的被稱為“COBOL”的編程語言。
多年來,COBOL人才短缺的狀況一直在加劇。據市場研究公司Gartner估計,COBOL程序員的平均年齡超過60歲,絕大多數已經退休。
為了解決該問題,各州政府正在與專家們合作更新COBOL代碼來實施政府救助計劃。2020年4月中旬,新澤西州州長Phil Murphy甚至在新聞發(fā)布會上公開呼吁/懇求COBOL程序員來幫助處理該州的計算機問題。
出現(xiàn)問題的不只有州/地方系統(tǒng),聯(lián)邦級別同樣出現(xiàn)了類似的問題。作為聯(lián)邦政府疫情救助計劃的一部分,符合條件的美國納稅人將從美國國稅局(IRS)獲得1200美元的付款。但是,由于國稅局的計算機系統(tǒng)甚至比各州的失業(yè)系統(tǒng)還舊,有些還可以追溯到60年前,所以花了20多周的時間才支付所有款項。
遺留系統(tǒng)現(xiàn)狀
正如傳奇投資者沃倫·巴菲特曾說過的那樣,“只有當浪潮退去,你才能知道誰在裸泳。”新冠疫情就像一股大潮,暴露了政府對老舊IT系統(tǒng)的依賴。
當然,在過時IT系統(tǒng)重壓下苦苦掙扎的并非只有政府部門,還有航空公司、銀行、保險公司以及其他商業(yè)實體,他們的系統(tǒng)同樣在運行著供應商不再支持的軟件或硬件,甚至存在很多無法修復的漏洞。
調查數據顯示,自2010年以來,全世界的企業(yè)和政府在IT產品和服務上的支出估計為35萬億美元。其中,約3/4用于運營和維護現(xiàn)有的IT系統(tǒng)。至少有2.5萬億美元用于嘗試替換舊的IT系統(tǒng),其中約有7,200億美元被浪費在失敗的替換工作上。
但是令人驚訝的是,即便企業(yè)和公共機構每年在其上花費數千億美元,卻很少有人真正注意到這些IT系統(tǒng)。從起床到入睡,短短一天,我們就在不知不覺中與數十個IT系統(tǒng)進行了交互。至于污水處理廠、電網、空中交通管制、電信服務和政府管理等基礎設施就更不用說了,它們的服務甚至取決于成千上萬個看不見的IT系統(tǒng)。
雖然說這些系統(tǒng)存在于我們生活的方方面面,但卻很少引起我們的關注,因為它們在大多數情況下都運行良好。我們甚至忽略了,IT是需要持續(xù)關注才能保持正常運行的東西。
英國歷史學家David Edgerton在其里程碑式的研究《歷史的震撼——1900之后的技術和全球歷史》中聲稱,盡管維護和修復對于我們與技術的關系至關重要,但它們是“我們寧愿不考慮的問題”。結果,技術維護就如同身處混沌世界,在現(xiàn)實世界的賬目中幾乎看不到任何蹤跡。
確實,遺留IT系統(tǒng)的強隱形性也證明了這些系統(tǒng)的成功程度。
遺留系統(tǒng)的成因
事實上,關于“遺留系統(tǒng)”尚未有正式定義,但通常被理解為“在某種程度上已經過時的關鍵系統(tǒng)”。它可能無法支持未來業(yè)務運營;提供應用程序、操作系統(tǒng)或硬件的供應商可能不再經營或支持其產品;系統(tǒng)架構可能因脆弱性或復雜性,不適合升級或修復的;或無從再獲知系統(tǒng)的運行方式等等。
是否推進計算系統(tǒng)現(xiàn)代化是困擾幾乎每個組織的問題??紤]到老舊IT系統(tǒng)造成的種種問題,你可能認為推行現(xiàn)代化是無需思考的問題。但是這個決定并不像看起來那么簡單。有些遺留IT系統(tǒng)最終會以現(xiàn)代化的方式結束,但是有些組織卻并不想或負擔不起與現(xiàn)代化相關的成本和風險。
顯然,對于日常操作至關重要的遺留系統(tǒng),如果沒有發(fā)生重大破壞一般是不會進行更換或強化的。因此,即便它們存在一些小問題,管理層還是傾向于忽略它并推遲現(xiàn)代化進程。在過去很長時間里,這些系統(tǒng)并沒有發(fā)生災難性的錯誤,因此它們仍然頑強的堅挺的存在著。
這種“踢皮球”的做法是可以理解的。大多數IT系統(tǒng)(無論是新的還是現(xiàn)代化的)都是十分昂貴的,如果沒有部分或完全失效,通常不會輕易被淘汰。
而且,管理層真正需要的是任何新的IT系統(tǒng)都能夠提供投資回報,并盡可能長時間地降低成本。這樣的需求往往導致多年來對日常維護的投資不足。當然,那些批準對新系統(tǒng)進行投資的高管十年后可能發(fā)生職位變動,這些系統(tǒng)也逐漸變成了老舊系統(tǒng)。
同樣地,系統(tǒng)的開發(fā)人員很清楚遺留系統(tǒng)的運行方式和局限性,但是他們很可能已經去到其他項目或組織。對于壽命特別長的IT系統(tǒng)來說,大多數開發(fā)人員可能已經退休。隨著時間的推移,這個系統(tǒng)就像辦公電梯一樣,成為用戶日常生活的一部分。只要它起作用,就不會有人特別注意它,最終它縮進組織運營的陰影之中。
遺留系統(tǒng)的后患
每月都有數百萬人經歷著遺留IT系統(tǒng)帶來的不便和折磨。
(1) 業(yè)務中斷危機
對于這種挫敗感,英國銀行客戶深有感觸。據英國金融行業(yè)監(jiān)管局的數據顯示,2017年10月-2018年9月期間,該國的銀行報告了近600起IT運營和安全事件,比去年同期增長了187%。政府監(jiān)管機構指出,銀行依賴已有數十年歷史的IT系統(tǒng)是造成此類事件反復發(fā)生的重要原因。
同樣感到挫敗的還有航空公司的乘客。在過去的幾年中,美國航空乘客平均每月經歷近一次與IT相關的停機事件,其中許多是傳統(tǒng)IT造成的。有些系統(tǒng)持續(xù)宕機數天,造成數千航班的延誤或取消。
(2) 數據泄露危機
維護不佳的遺留系統(tǒng)極易出現(xiàn)網絡安全漏洞。信用報告機構Equifax公司就曾因其遺留系統(tǒng)的復雜性,導致未能及時修補公司“自動消費者訪談系統(tǒng)”(Equifax于20世紀70年代為處理消費者糾紛開發(fā)的系統(tǒng))中的一個嚴重漏洞,最終致使1.46億人的敏感個人信息泄露。
(3) 勒索攻擊危機
老舊的IT系統(tǒng)也為勒索軟件攻擊提供了方便。在這種類型的攻擊中,網絡入侵者會侵入關鍵IT系統(tǒng)后并加密所有系統(tǒng)數據,直到支付贖金為止。在過去兩年中,勒索軟件襲擊了美國亞特蘭大和巴爾的摩的城市以及佛羅里達州的里維埃拉海灘和湖城的兩個城市。后兩個城市同意分別向攻擊者支付60萬美元和50萬美元。此外,還有數十個州和地方政府以及學校系統(tǒng)和醫(yī)院都遭遇了勒索軟件攻擊。
(4) 高昂的運營和維護成本
即便沒有遭遇運營中斷和安全事件,企業(yè)組織仍然需要面對遺留IT系統(tǒng)不斷攀升的運營和維護成本問題。例如,美國政府問責局(GAO)最近的一份報告發(fā)現(xiàn),美國政府在2019財年的900億美元開支中,近80%用于現(xiàn)有信息系統(tǒng)的運營和維護。此外,在GAO詳細審查的7,000筆聯(lián)邦信息技術投資中,有5,233筆資金全部用在了運營和維護,沒有任何資金用于現(xiàn)代化。
從2010財年到2017財年,IT現(xiàn)代化支出減少了73億美元,而運維支出增長了9%。不斷增長的IT遺留成本將繼續(xù)吞噬政府IT現(xiàn)代化的“種子”。
盡管并非所有的運營和維護成本都歸因于遺留IT系統(tǒng),但美國政府問責局指出,支出的增加很可能是由于支持過時的計算硬件所致,例如,美國國稅局2/3的硬件已經超過了其使用壽命,而且因精通較舊語言的程序員越來越少,維護這些較舊編程語言開發(fā)的軟件和系統(tǒng)的成本也越來越高。
以COBOL(一種可以追溯到1959年的編程語言)為例,計算機科學專業(yè)早在幾十年前就停止了COBOL語言的教學。但是據報道,美國社會保障局和國稅局仍在運行大約6000萬條COBOL代碼。而且,美國政府問責局在2016年的一份報告顯示,美國商務部、國防部、財政部、衛(wèi)生和公眾服務部以及退伍軍人事務部仍在“使用上世紀80年代和90年代的微軟操作系統(tǒng),這些操作系統(tǒng)在十多年前就不再得到供應商的支持”。
解決方案
鑒于大量遺留IT系統(tǒng)仍在使用中,解決遺留系統(tǒng)的問題勢在必行。
(1) 承認問題的存在
解決一個大問題的第一步就是承認自己存在這個問題。至少一些政府和企業(yè)已經開始這么做了。例如,2017年12月,特朗普總統(tǒng)簽署了《政府技術現(xiàn)代化法案》。它允許聯(lián)邦機構和部門從1.5億美元的技術現(xiàn)代化基金中申請資金,以加速其IT系統(tǒng)的現(xiàn)代化。國會預算辦公室最初表示,每年的需求接近18億美元,但政客們擔心這筆錢是否會得到合理利用,最終導致資金大幅減少。
(2) 新技術推動現(xiàn)代化進程
在商業(yè)領域,云計算和人工智能等新技術成為推動IT現(xiàn)代化的驅動力。CAI創(chuàng)始人Tony Salvaggio表示,“現(xiàn)在,所有人都知道IT可以推動組織創(chuàng)新。這些新技術在未來幾年內將會摧毀現(xiàn)有商業(yè)模式的30%至40%。背負遺留IT系統(tǒng)的公司在快速交付改進功能或客戶服務方面將毫無競爭能力,只能將自己困在其中,無法脫身。
值得注意的是,這種現(xiàn)象已經在銀行業(yè)中發(fā)生了。傳統(tǒng)銀行在與新興銀行競爭時感到非常吃力,這些新興銀行將大部分IT預算用于創(chuàng)建新產品而不是支持遺留系統(tǒng)。例如,2014年開始運營的英國Starling 銀行只提供手機銀行服務。它使用AWS托管其服務,并且僅花費1800萬英鎊來創(chuàng)建其基礎設施。相比之下,英國的TSB銀行(一家成立于1810年的傳統(tǒng)全方位服務銀行)在2018年花了4.17億英鎊轉移到一個新的銀行平臺。
Starling 會維護自己所有的代碼,平均每天進行一次軟件發(fā)布。之所以能這樣做,是因為它與眾多的老舊IT系統(tǒng)沒有錯綜復雜的連接。根據英國銀行監(jiān)管機構的說法,每個新版IT系統(tǒng)都存在可衡量的操作失敗風險。更簡單的系統(tǒng)意味著與IT相關的中斷越來越少。自從Starling營業(yè)以來,僅發(fā)生了一次重大停機,而同一時間段,英國三大銀行中的每家至少都有十幾次停機事故。
(3) 杜絕數據孤島
現(xiàn)代化進程本身也存在問題——將舊數據遷移到新系統(tǒng)。當TSB銀行在2018年轉移到新的IT平臺時,大約190萬在線和移動客戶的賬戶被封鎖了將近2個星期。對一個遺留系統(tǒng)進行現(xiàn)代化改造通常意味著必須升級其他互連系統(tǒng),而其他互連系統(tǒng)也可能是遺留系統(tǒng)。例如,在美國國稅局,最初安裝于20世紀60年代的主稅務主文件系統(tǒng)已被埋藏在更現(xiàn)代化,更相互關聯(lián)的系統(tǒng)之下,每個系統(tǒng)都使得更換之前的系統(tǒng)變得更加困難。自1968年以來,該機構一直在嘗試對其相互關聯(lián)的遺產稅系統(tǒng)進行現(xiàn)代化改造,以目前的匯率計算,累計成本至少為200億美元,但到目前為止,收效甚微。該組織計劃在未來五年內再投入27億美元用于現(xiàn)代化建設。
另一個常見的問題是,各種遺留系統(tǒng)可能具有重復的功能。美國海軍正在安裝價值1.67億美元的海軍薪酬和人事系統(tǒng),該系統(tǒng)旨在整合駐留在55個獨立的IT系統(tǒng)中的223個應用程序,其中10個應用程序的使用壽命已經超過30年,還有一些已經使用了50年之久。這些不同的系統(tǒng)使用21種編程語言,在跨越73個數據中心和網絡的9個操作系統(tǒng)上執(zhí)行。
如此龐大的重復和數據孤島聽起來很荒謬,但卻非常普遍。而造成這一切的方式很簡單:政府發(fā)布一項新的授權,其中包括對某種類型的自動化的要求,并且該政策附帶了用于實施該自動化的新資金。相關部門或機構發(fā)現(xiàn),相比升級現(xiàn)有系統(tǒng)所需的成本以及可能造成破壞的意外成本,不如直接創(chuàng)建一個新的IT系統(tǒng)更容易,即使這些新系統(tǒng)的部分(甚至大部分)功能都與現(xiàn)有系統(tǒng)相同。最終的結果就是,同一個組織內的不同部門最終部署了具有功能重復的IT系統(tǒng)。
長期以來,缺乏對系統(tǒng)工程思維以及協(xié)調IT開發(fā)的能力,使得重復建設問題深深困擾著政府和企業(yè)。
(4) 保持關注,永遠不要讓IT成為遺留問題
處理遺留IT的最佳方法是永遠不要讓IT成為遺留問題。人們越來越認識到遺留IT系統(tǒng)的許多成本問題,由此引發(fā)了對軟件維護的重新思考。美國國防創(chuàng)新委員會于2019年5月發(fā)布的一份報告《軟件沒有結束》闡述了一種新方法。它認為軟件應被視為“一種持久的能力,必須在其整個生命周期中予以支持并不斷加以改進”。這包括能夠在短時間內持續(xù)不斷地測試、集成和提供改進軟件系統(tǒng)的能力。
目前,軟件開發(fā)、操作和支持被視為獨立的活動。但是,如果將這些獨立的活動集成起來(DevOps范式),那么操作系統(tǒng)將始終處于“開發(fā)中”的狀態(tài),并且每天不斷地進行改進、測試和部署,甚至會出現(xiàn)一天迭代多次的現(xiàn)象。
DevOps只是防止關鍵IT系統(tǒng)變成遺留系統(tǒng)的一種方法。美國國防部高級研究規(guī)劃局(DARPA)一直在探索另一種可能更有效的方法,因為它認為IT系統(tǒng)一旦實施便具有持續(xù)性。自2015年以來,DARPA資助了資源自適應軟件系統(tǒng)構建(BRASS)研究課題,旨在尋找能夠使軟件能夠使用100多年的解決方案,構建能夠動態(tài)適應所依賴資源和運行環(huán)境變化的長壽命軟件系統(tǒng)。
創(chuàng)建這種永不過時的系統(tǒng)需要一種“從頭開始”的軟件設計方法,該方法不會對應如何設計,編碼或維護IT系統(tǒng)做出假設。這將需要確定軟件程序執(zhí)行所需的邏輯(庫、數據格式、結構)和物理資源(處理、存儲、能源)。此類分析可以使用高級AI技術來發(fā)現(xiàn)并顯示應用程序的操作以及與其他應用程序和系統(tǒng)的交互。這樣一來,就可以在問題發(fā)生之前主動管理導致許多系統(tǒng)故障或低效操作的資源更改或與其他系統(tǒng)的交互。開發(fā)人員還需要創(chuàng)建一種功能(同樣可能用到AI)來監(jiān)視和修復應用程序所在的執(zhí)行環(huán)境的所有元素。
其目標是能夠在無需人工干預的情況下更新或升級應用程序,從而“降低維護成本”。
目前,BRASS計劃已經資助了9個項目,每個項目都代表了資源自適應軟件系統(tǒng)需要做的不同方面。其中一些項目涉及無人機、移動機器人和高性能計算。研發(fā)成功后,這些技術將被應用到開源軟件倉庫、各行各業(yè)以及國防部。
總結
新冠疫情暴露了依賴遺留IT系統(tǒng)提供基本服務所造成的破壞性后果。不幸的是,即便疫情結束后,這種依賴以及遺留IT的巨額成本仍將存在。僅就美國政府而言,即便經過各方協(xié)調一致且執(zhí)行良好的努力,也需要花費數十年才能取代成千上萬的現(xiàn)有遺留系統(tǒng)。并且隨著時間的推移,當前的IT系統(tǒng)也將成為遺留系統(tǒng),并且本身也需要更換。更糟糕的是,鑒于當前新冠疫情對預算的影響,未來政府部門用于遺留系統(tǒng)現(xiàn)代化的資金可能更少。
隨著物聯(lián)網的進一步發(fā)展成熟,與遺留系統(tǒng)相關的問題只會惡化。這些設備已被廣泛連接到遺留系統(tǒng)上,這使得更換和現(xiàn)代化這些系統(tǒng)變得更加困難。最終,這些物聯(lián)網設備也將成為遺留設備。就現(xiàn)在的遺留系統(tǒng)一樣,只要這些物聯(lián)網設備能夠繼續(xù)工作,即使供應商不再提供支持也不會被替換。大量陳舊但仍在運行的物聯(lián)網設備的潛在網絡安全風險是一個未知數。
目前,各個領域已經部署了許多物聯(lián)網設備,而這些設備卻沒有內置基本的網絡安全性,這種短視正在給人們造成巨大的損失。對網絡安全的擔憂已經迫使美國食品和藥物管理局召回了植入式心臟起搏器和胰島素泵,美國國家安全局對物聯(lián)網智能家具等互聯(lián)網產品也發(fā)出了警告。
想象一下,在不遠的未來,數億甚至數十億的遺留物聯(lián)網設備已經深深地嵌入到了政府、企業(yè)辦公室、學校、醫(yī)院、工廠、家庭甚至人體之中。再進一步想象一下,這些物聯(lián)網設備的網絡安全或技術缺陷沒有得到修復,而且正與幾乎不受供應商支持的遺留IT系統(tǒng)相連。再這樣的世界中,對不斷增長的互聯(lián)和過時系統(tǒng)的普遍依賴將創(chuàng)造出比混沌世界更加陰暗的東西。
本文翻譯自:https://spectrum.ieee.org/computing/it/inside-hidden-world-legacy-it-systems