前 言
新冠疫情在美國肆虐,成千上萬的美國民眾因出行限制而失業,迫切需要政府的失業救濟金來維持基本的生存和生活。然而,不幸地是,美國19個州出現了嚴重的失業申請延誤狀況,究其原因在于聯邦和地方州的失業信息系統過時和不兼容。這些系統大多可以追溯到20世紀80年代,有的甚至可以追溯到更久遠的年代。這些過時和不兼容的信息系統通常被稱為遺留系統。
盡管目前尚沒有關于“遺留系統”的正式定義,但其通常被理解為在某種程度上已經過時的關鍵信息系統。通常具有以下幾個特點:
無法支持未來業務運營;
相關應用程序、操作系統或硬件供應商不再提供支持;
系統架構可能因脆弱性或復雜性不適合升級或修復的;
或者實現細節無從獲知。
遺留系統很容易出現中斷和錯誤,易受網絡入侵的影響,并且隨著時間的推移其修復成本越來越高,維護也越來越困難。但令人驚訝的是,人們在平時很少關注這些過時的遺留信息系統,即使美國政府每年都在這些系統上花費數千億美元。
正如傳奇投資者沃倫?巴菲特(Warren Buffett)曾經說過的:“只有當潮水退去時,你才知道誰在裸泳。”這場新冠大流行已經成為一股強大的退潮,暴露了政府對遺留系統的過度依賴。然而,政府并不是唯一在遺留系統重壓下掙扎的組織,航空公司、銀行、保險公司以及其他商業實體組織同樣面臨著遺留系統的問題。
盡管新冠疫情暴露了依賴遺留系統提供基本服務的嚴重后果,但不幸的是,這種依賴連同它不斷增加的成本,在后疫情時代的很長一段時間內仍將伴隨著我們。單就美國政府而言,即使國會能夠協調一致且相關措施得到良好的執行,也需要幾十年的時間才能取代數千個現有的遺留系統。并且隨著時間的推移,當前的信息系統也將會成為遺留系統,它們本身也需要更換。此外,鑒于當前新冠疫情對預算的影響,未來政府部門用于遺留系統現代化的資金可能更少。
物聯網時代的來臨,與遺留系統相關的問題只會隨著物聯網的成熟而惡化。物聯網設備被大量連接到傳統的信息系統上,使得這些信息系統的更換和現代化變得更加困難。就如同現在的遺留系統一樣,只要這些物聯網設備能夠繼續工作,即使供應商不再提供支持也不會被替換,最終這些物聯網設備也將會成為遺留的設備。大量過時但仍在運行的物聯網設備已經構成了潛在的網絡安全風險,它們在被部署時往往沒有考慮基本的網絡安全需求,這種短視將會造成損失。例如,對網絡安全的擔憂已經迫使美國食品和藥物管理局召回能夠植入人體的心臟起搏器和胰島素泵,美國國家安全局對物聯網智能家具等互聯網產品也發出了警告。
想象一下,不遠的未來將會有數千萬的物聯網設備深深地嵌入到了政府、企業、學校、醫院、工廠、家庭以及人體之中。在這樣一個世界里,如果物聯網設備的網絡安全或技術缺陷沒有得到修復,仍然與幾乎不受供應商支持的遺留系統相連,這種對于相互關聯的遺留系統的普遍依賴,將創造出比埃杰頓的暮光世界更加陰暗的東西。
01
遺留系統的問題
盡管遺留系統面臨著諸多問題,但以數據泄露和勒索攻擊為代表的網絡安全問題以及運營和維護成本問題最為突出。
1.1 數據泄露問題
維護不善的遺留系統極易出現數據泄露問題。在上世紀70年代,信用報告機構Equifax公司為處理消費者糾紛開發了一個自動消費者訪談系統(Automated Consumer Interview System),該公司因系統的復雜性未能修補其中的一個關鍵漏洞,這一漏洞在2017年導致1.46億人的敏感信息泄露。
1.2 勒索攻擊問題
過時的遺留系統極易遭遇勒索軟件攻擊。勒索軟件攻擊的網絡入侵者在侵入關鍵信息系統后會對系統內的所有數據進行加密,直到支付贖金。在過去兩年里,勒索軟件襲擊了美國亞特蘭大和巴爾的摩的城市以及佛羅里達州的里維埃拉海灘和湖城的兩個城市。后兩個城市同意分別向攻擊者支付60萬美元和50萬美元。此外,還有數十個州和地方政府,以及學校系統和醫院,都經歷過勒索軟件攻擊。
1.3 運營成本問題
首先,倘若遺留系統得到很好地維護,沒有遇到數據泄露和勒索攻擊問題,但企業和組織需要面對遺留系統不斷攀升的運營和維護成本。例如,美國政府問責局最近的一份報告發現,美國政府在2019財年的900億美元開支中,近80%用于現有信息系統的運行和維護。此外,在美國政府問責局詳細審查的7000項聯邦信息技術投資中,有5233項將所有資金用于運營和維護。
其次,對遺留系統的運營和維護成本間接地限制了用于信息系統現代化的預算投入。從2010財年到2017財年,美國政府問責局用于現有信息系統的運營和維護支出增長了9%,與此同時,用于信息系統現代化的支出減少了73億美元。專門為政府和商業企業提供信息系統支持的國際公司CAI的創始人兼首席執行官指出,不斷增長的遺留系統成本將繼續蠶食政府的信息系統現代化的“種子”。
值得注意的是,盡管并非所有的運營和維護成本都直接歸因于遺留系統,但美國政府問責局指出,支出的增加可能是因為支持過時的計算硬件,美國國稅局三分之二的硬件已經超過了其使用壽命,而且因精通較舊語言的程序員越來越少,維護這些較舊編程語言開發的軟件和系統的成本也越來越高。例如,COBOL是一種可以追溯到1959年的編程語言,計算機科學專業早在幾十年前就不再教授COBOL語言了,然而美國社會保障局和國稅局都仍在運行大約6000萬條COBOL代碼。此外,美國政府問責局在2016年的一份報告表明美國商務部、國防部、財政部、衛生和公眾服務部以及退伍軍人事務部仍在使用上世紀80年代和90年代的微軟操作系統,這些操作系統在十多年前就不再得到供應商的支持。
02
遺留系統的成因
鑒于遺留系統造成的諸多問題,對信息系統進行現代化成為必由之路。然而,信息系統的現代化遠非想象中的簡單,這成為遺留系統形成的主要原因。
首先,遺留系統之所以能夠遺留下來是因為它們在很長一段時間內都能正常運行。顯然,對于日常運營至關重要的遺留系統在沒有重大中斷的情況下是不會被替換或增強的。因此,即使這個系統對組織的運作做出了巨大的貢獻,管理層還是傾向于忽視未來潛在的問題,推遲相關現代化進程。
其次,信息系統現代化不符合首席信息官或項目經理以往的職業晉升經驗。一旦信息系統最終能夠可靠地運行,就沒有什么動機去計劃將它們退役。那些批準對新系統投資的高管們可能在多年后離開了公司,管理層真正需要的是,新的信息系統能夠提供投資回報,并盡可能長時間地降低成本,這樣的需求往往導致多年來對日常維護的投資不足。
再次,系統的開發人員不愿意或無法參與其中。系統開發人員在詳細了解它如何運行以及它的局限性之后,很可能已經轉向其他更有前景的項目或組織了。對于壽命特別長的信息系統,大多數開發人員可能已經退休。
最后,相關的企業和組織不愿意或者無力承擔與現代化相關的成本和風險。大多數的信息系統,無論是新的還是現代化的,都是昂貴的成本。如果它們沒有部分或全部失敗的話,管理層通常會延遲它們的預算。
因此,隨著時間的推移,這個系統就像辦公電梯一樣,成為用戶日常生活的一部分。只要它起作用,就不會有人太在意它,最終它成為了企業和組織運行的陰影。
03
遺留系統的應對
鑒于大量遺留系統仍在使用中,解決遺留系統的問題勢在必行。
3.1 正視遺留系統的存在
解決一個大問題的第一步就是正視自己的問題,政府和企業必須采取措施進行應對。尤其是在政府層面需要采取行政措施推動信息系統現代化的建設,不斷提高效益產生的可靠性和速度,逐步改善信息化服務。2017年12月,特朗普總統簽署了《政府技術現代化法案》。它允許聯邦機構和部門從1.5億美元的技術現代化基金中申請資金,以加速其信息系統的現代化。國會預算辦公室最初表示,這一需求接近每年18億美元,但政客們擔心這筆錢是否會花得好,導致資金大幅減少。
3.2 建立系統工程的思維
將遺留數據遷移到新系統的現代化本身也存在問題。首先,遺留系統可能與其他信息系統存在復雜的關聯。例如,Starling銀行維護自己的所有代碼,平均每天發布一個軟件,之所以能做到這一點,是因為它沒有復雜的連接到無數的傳統信息系統。如果不然,每一個新的軟件發布都帶有可操作的失敗風險,更簡單的系統意味著更少和更短的信息系統停機。Starling自開業以來只發生了一次重大停工,而英國三大銀行中的每一家在同一時期至少有十幾家銀行倒閉。
其次,一個遺留系統的現代化通常意味著必須升級其他互聯系統,而其他互聯系統也可能是遺留系統。例如,在美國國稅局,20世紀60年代安裝的最初的稅務主文件系統已經被掩埋在更加現代化、相互關聯的系統之下,每一個系統都使得取代之前的系統變得更加困難。自1968年以來,該機構一直試圖使其相互關聯的遺產稅系統現代化,以目前的貨幣計算,累計成本至少為200億美元,迄今為止收效甚微。該公司計劃在未來五年內再投入27億美元用于現代化建設。
此外,不同的遺留系統可能提供重復的功能。美國海軍正在安裝價值1.67億美元的海軍薪酬和人事系統,旨在整合其下55個獨立的相關信息系統中的223個應用程序,其中10個應用程序的使用壽命超過30年,少數應用程序的使用壽命超過50年。這些不同的系統使用21種編程語言,在73個數據中心和網絡上的9個操作系統上執行。如此大規模的重復建設和數據孤島聽上去很荒謬,但卻具有驚人的普遍性。政府發布了一項新的授權,其中包括對某種類型的自動化的要求,而這項政策帶來了新的資金來實施它。該部門或機構發現,與其升級現有系統(這會造成破壞),不如更容易創建一個新的信息系統,即使部分或大部分新系統與現有系統的功能相同。最終的結果就是同一個組織中的不同部門最終部署了具有重疊功能的信息系統。
鑒于信息系統現代化的上述問題,因此,迫切需要系統工程的思維來解決,及時協調各方并且避免重復建設。
3.3 建立源頭治理的開發范式
處理遺留問題的最好辦法就是永遠不要讓它成為遺留問題。人們越來越認識到遺留系統的許多成本,引發了對軟件維護的重新思考。美國國防創新委員會2019年5月發布的一份報告《軟件永遠不會完成》闡述了一種新方法,認為軟件應該被視為“一種持久的能力,必須在其整個生命周期內得到支持和不斷改進”,包括能夠在短時間內持續地測試、集成和改進軟件系統的能力。
目前,軟件開發、操作和支持被認為是獨立的活動。但是,DevOps范式提供了一種新的可能,將這些獨立的活動集成起來,使得運營的系統一直處于“開發中”,不斷地、漸進式地改進、測試和部署,甚至會出現一天迭代多次的現象。當然,DevOps只是防止關鍵信息系統變成遺留系統的一種方法。美國國防部高級研究規劃局一直在探索另一種可能更有效的方法,認為信息系統一旦實施就可以長期使用。自2015年以來,國防部高級研究規劃局資助了BRASS(Building Resource Adaptive Software Systems,資源自適應軟件系統構建)研究課題,旨在尋找能夠使軟件能夠使用100多年的解決方案,構建能夠動態適應所依賴資源和運行環境變化的長壽命軟件系統。
3.4 主動擁抱新技術革命
一方面,優化源頭治理的開發范式,迫切需要人工智能等新技術。構建無時間限制的系統,需要一種“從頭開始”的軟件設計方法,這種方法更強調對軟件執行邏輯(庫、數據格式、結構)和物理資源(處理、存儲、能源)的準確判斷,而不是信息系統設計、編碼或維護的具體設計方式。然而,對軟件執行邏輯和物理資源的分析是十分耗時費力的。因此,為了減少人力程序員的干預,降低維護成本,迫切需要采用先進的人工智能技術來發現和分析軟件執行邏輯和物理資源,并使軟件的運行以及與其他軟件和系統的交互變得可見。這樣的話,就在問題發生之前主動管理導致許多系統故障或低效操作的資源變化以及系統交互。如若開發人員還需要構建一個功能,同樣可能使用人工智能技術來監視和修復軟件所在的執行環境的所有元素。
另一方面,在商業領域,云計算和人工智能等新技術已經成為企業發展的內在驅動力。CAI的創始人兼首席執行官Tony Salvaggio認為:“信息技術推動了組織創新,這些新技術在未來幾年內將會摧毀現有商業模式的30%至40%,背負著遺留系統的公司將無法應對未來信息系統功能的快速改進或客戶服務的快速交付,只會被迫陷入‘騎虎難下,進退失據’的境地,無法走出去”。值得注意的是,這種現象已經在銀行業率先出現,老牌銀行很難與新興銀行競爭,這些新興銀行將大部分信息系統預算用于創建新產品,而不是支持遺留系統。例如,2014年開始運營的英國Starling 銀行只提供手機銀行服務。它使用亞馬遜云計算托管服務,僅花費1800萬英鎊(2400萬美元)建立基礎設施。相比之下,英國的TSB銀行,一個傳統的全業務銀行,成立于1810,花了4億1700萬英鎊(5億4600萬美元)在2018進入一個新的銀行平臺。