編譯 | 核子可樂、Tina
馬斯克領(lǐng)導(dǎo)的 DOGE 團(tuán)隊正醞釀一場豪賭:他們計劃在短短幾個月內(nèi)重寫一套運行了數(shù)十年的核心代碼庫。該代碼庫包含數(shù)千萬行 COBOL 代碼,以及部分匯編語言。按理來說,要安全、完整地重寫這些代碼,至少需要數(shù)年時間,而將這一過程壓縮到幾個月幾乎是不可能完成的任務(wù)。
如果他們真的成功了,這將徹底顛覆傳統(tǒng) IT 領(lǐng)域的認(rèn)知,足以讓任何經(jīng)驗豐富的程序員和 IT 專家感到脊背發(fā)涼、難以置信。
快刀斬亂麻式的重構(gòu)?
前兩天,據(jù)《連線》雜志報道,DOGE 正著手組建新團(tuán)隊,負(fù)責(zé)在未來數(shù)月之內(nèi)將社會保障管理局(SSA)計算機系統(tǒng)所使用的古老編程代碼中遷移出來。
該項目由馬斯克的副手史蒂夫·戴維斯?fàn)款^,負(fù)責(zé)將全部 SSA 系統(tǒng)從 COBOL(最早的主流面向業(yè)務(wù)編程語言之一)遷移到更為現(xiàn)代的替代性語言如 Java 上,而且工期只有短短數(shù)月——典型的時間緊、任務(wù)重。
無論從哪個角度來看,此等規(guī)模的遷移都將是一項艱巨的任務(wù),而過度強調(diào)遷移速度很可能導(dǎo)致目前正在領(lǐng)取社保福利的 6500 多萬美國民眾受到影響。“當(dāng)然,其中最核心的風(fēng)險還不是多付或少付了款項,而是系統(tǒng)壓根沒有向某人付款且未能察覺出異常。總之,看不見的錯誤和遺漏才是最致命的?!币晃?SSA 技術(shù)專家告訴《連線》雜志。
與眾多傳統(tǒng)的遺留 IT 系統(tǒng)一樣,SSA 系統(tǒng)包含使用 COBOL 編寫的代碼。COBOL 是一款由 Grace Hopper 于 1950 年建立雛形的編程語言。COBOL 誕生后不久,美國國防部開始推動該語言在私營企業(yè)中的應(yīng)用,促使其得到廣泛普及,并在 1970 年代成為大型機(即能夠快速處理和存儲大量數(shù)據(jù)的計算機系統(tǒng))中使用最廣泛的語言之一。然而,近年來,在“去 DEI”行動中,與 Hopper 成就相關(guān)的一些網(wǎng)站逐漸下線(Grace Hopper 是女性計算機編程的先驅(qū))。
直到 2016 年,SSA 基礎(chǔ)設(shè)施當(dāng)中仍包含超過 6000 萬行用 COBOL 編寫的代碼,外加數(shù)百萬行使用其他傳統(tǒng)語言編寫的代碼。事實上,根據(jù) SSA 自己的 2017 年現(xiàn)代化計劃里的說法,自 1980 年代其開發(fā)自有數(shù)據(jù)庫系統(tǒng) MADAM(主數(shù)據(jù)訪問方法,此系統(tǒng)采用 COBOL 加匯編語言編寫而成)以來,SSA 的核心程序系統(tǒng)與架構(gòu)就再未進(jìn)行過“大幅度”更新。
SSA 的核心“邏輯”也主要用 COBOL 編寫。一位曾在 CIO 辦公室工作的前 SSA 高級技術(shù)專家表示,這些代碼主要用于發(fā)布社保號碼、管理付款乃至計算受益人所應(yīng)申領(lǐng)的總福利金額。因此,即使是微小的變化也有可能在整個程序內(nèi)引發(fā)連鎖故障。
目前尚不清楚軟件升級工作何時開始。據(jù)《華盛頓郵報》本周報道,在過去幾周里,由于 DOGE 大幅削減了 SSA 預(yù)算,導(dǎo)致其官方網(wǎng)站經(jīng)常崩潰、電話咨詢的等待時間也大大延長。
最近發(fā)現(xiàn),,這顯然不正常。有懷疑聲稱,他們社保系統(tǒng)中可能存在大量的欺詐和錯誤,例如某些已故人士的社保福利仍在繼續(xù)發(fā)放。馬斯克領(lǐng)導(dǎo)的“DOGE”團(tuán)隊目前有約 10 人在 SSA 工作,他們的任務(wù)是清理這個系統(tǒng)中的“死人”賬戶,將這個系統(tǒng)與其他部門的數(shù)據(jù)庫連接,方便核對信息,并通過電話確認(rèn)領(lǐng)款人是否還活著,以防止欺詐。此外,DOGE 還希望法院授權(quán)其全面訪問 SSA 系統(tǒng),以完成這一任務(wù)。
在組織將新應(yīng)用程序部署到生產(chǎn)環(huán)境之前,必須對軟件進(jìn)行錯誤測試。Wired 援引的這位前 SSA 技術(shù)專家表示,DOGE 提議的 COBOL 重寫的測試階段本身就需要幾年時間。如果在幾個月內(nèi)進(jìn)行重寫,DOGE 的開發(fā)人員可能需要跳過重要的質(zhì)量保證步驟,這將增加技術(shù)問題的風(fēng)險。
這位 SSA 技術(shù)專家還補充道,在幾年之內(nèi)解決所有潛在極端情況已經(jīng)相當(dāng)困難,壓縮到幾個月簡直是難以想象。
曾在 CIO 辦公室工作的 SSA 前高級技術(shù)專家在采訪中也坦言,“SSA 原本的系統(tǒng)幾乎就是用鐵絲和膠帶勉強固定起來的。領(lǐng)導(dǎo)層必須要清楚,他們面對的是一座本就搖搖欲墜的「紙牌屋」。一旦像他們宣稱的那樣從中抽出紙牌,整個體系都有可能瞬間坍塌?!?/p>
原計劃“五年”完成核心系統(tǒng)現(xiàn)代化
此次擬議的遷移,已經(jīng)不是 SSA 第一次嘗試放棄 COBOL 代碼。早在 2017 年,SSA 就曾公布一項計劃,希望申請數(shù)億美元經(jīng)費來更換其核心系統(tǒng)。但隨著 2020 年疫情暴發(fā),該機構(gòu)放棄了這項工作,轉(zhuǎn)而專注更多面向公眾的項目。
該計劃指出,SSA 系統(tǒng)每年需處理超過 3700 萬通電話,并發(fā)布高達(dá) 2.66 億份收入報告,這對技術(shù)基礎(chǔ)設(shè)施提出了極高的要求。然而,SSA 的核心系統(tǒng)大多已運行超過 30 年,部分嵌入式軟件組件甚至更為老舊。
同時,在這 30 年的時間里,SSA 的系統(tǒng)經(jīng)歷了不斷的變化,以融入立法、法規(guī)和政策的變化。多年來,新技術(shù)和功能已被修補到核心系統(tǒng)中,但沒有進(jìn)行根本性的重新設(shè)計。每次修補和變通都會使系統(tǒng)變得更加脆弱,從而使下一次變更變得更加“昂貴”。
“多年來,新技術(shù)已被集成到這些遺留系統(tǒng)中,但這些集成并未對系統(tǒng)和操作環(huán)境進(jìn)行根本性的重新設(shè)計。如今,在這個遺留環(huán)境中運營的成本非常高?!?/p>
為了應(yīng)對龐大的用戶基數(shù)和復(fù)雜的業(yè)務(wù)需求,SSA 深知其 IT 系統(tǒng)現(xiàn)代化改造是一項高風(fēng)險的重大投資,如同“飛行中重建飛機”,預(yù)計需要五年左右的時間才能完成整體系統(tǒng)的現(xiàn)代化轉(zhuǎn)型。為了實現(xiàn)這一目標(biāo),SSA 制定了一個“IT 現(xiàn)代化計劃”:“IT 現(xiàn)代化計劃代表了 SSA 在一個擁有數(shù)百萬個個人和數(shù)千名員工的大型聯(lián)邦機構(gòu)中推動 IT 改進(jìn)的方案?!?/p>
他們計劃在五年內(nèi)投資 6.77 億美元,用于六個關(guān)鍵轉(zhuǎn)型項目以及支撐這些項目的基礎(chǔ)設(shè)施建設(shè)。
當(dāng)時的計劃是讓業(yè)務(wù)系統(tǒng)能夠在云端運行,并且能夠跨多個平臺操作。同時將舊的 z/OS 主機系統(tǒng)遷移到更靈活的 Linux 環(huán)境,擺脫舊系統(tǒng)的束縛。另外,還會進(jìn)行 DevOps 轉(zhuǎn)型,這樣才能更快地推出新功能,提高軟件質(zhì)量。
他們還需要推進(jìn)數(shù)據(jù)存儲方案的現(xiàn)代化改造,以解決遺留系統(tǒng)帶來的信息孤島、技術(shù)限制和效率低下等問題,并特別強調(diào)了改造內(nèi)部批處理數(shù)據(jù)庫系統(tǒng) MADAM 所面臨的挑戰(zhàn)。
“與今天市面上商業(yè)關(guān)系數(shù)據(jù)庫產(chǎn)品相比,MADAM 已經(jīng)在技術(shù)上過時,功能上也相對原始。該機構(gòu)的核心數(shù)據(jù)系統(tǒng)是圍繞當(dāng)時廣泛使用的磁帶存儲技術(shù)的局限性設(shè)計的。由于磁帶技術(shù)不允許隨機數(shù)據(jù)訪問,所有更新都通過定期合并在臨時存儲區(qū)排隊的更新進(jìn)行管理。盡管磁帶存儲已經(jīng)被淘汰,且更先進(jìn)的能力已經(jīng)可用,但夜間合并模型依然存在。 多年來,我們的數(shù)據(jù)存儲已經(jīng)發(fā)展到在多個地方捕捉到相似的數(shù)據(jù),且其含義稍有不同。這種情況發(fā)生是因為隨著我們遺留系統(tǒng)的演變,機構(gòu)經(jīng)常重復(fù)數(shù)據(jù)以獲得更好的性能。此時,我們的分析師和開發(fā)人員需要反復(fù)進(jìn)行詳細(xì)分析,以理解在特定應(yīng)用程序中使用哪些數(shù)據(jù)源以及如何將這些數(shù)據(jù)與其他數(shù)據(jù)源進(jìn)行對比。 開發(fā)新功能本應(yīng)快速實現(xiàn),但卻需要系統(tǒng)分析師、開發(fā)人員和政策專家進(jìn)行廣泛的分析,以確保變更正確。這增加了我們的項目時間表,也使開發(fā)成本更高。當(dāng)我們希望使用我們的廣泛數(shù)據(jù)進(jìn)行管理報告或業(yè)務(wù)分析時,我們發(fā)現(xiàn)類似數(shù)據(jù)之間的細(xì)微差別導(dǎo)致分析結(jié)果的不一致。這意味著我們得到的答案可能會出現(xiàn)不一致的情況?!?/blockquote>在改造過程中,SSA 也面臨著其他大型項目常見的多重風(fēng)險。
例如,新舊系統(tǒng)需要并行運行數(shù)年,因此會面臨混合環(huán)境的挑戰(zhàn),如何培訓(xùn)員工同時掌握兩套系統(tǒng)的操作和維護(hù)是亟待解決的問題。其次,數(shù)據(jù)完整性是另一個關(guān)鍵風(fēng)險。新舊數(shù)據(jù)源的整合,特別是批處理過程中驅(qū)動的數(shù)據(jù)轉(zhuǎn)換,容易出現(xiàn)錯誤,從而影響數(shù)據(jù)的準(zhǔn)確性。接下來是代碼質(zhì)量問題,部署新軟件后可能會出現(xiàn)問題,需要快速回滾到先前版本,這就要求在開發(fā)過程中進(jìn)行充分的測試,并建立完善的回滾機制。此外,網(wǎng)絡(luò)安全風(fēng)險不斷升級,外部攻擊和內(nèi)部威脅不斷增加,需要不斷更新安全措施,以確保交易和數(shù)據(jù)的安全。
這些 SSA 在原改造計劃中提到的挑戰(zhàn),DOGE 同樣需要面對,一個也逃不了。
社交媒體一致唱衰:
“這不可能!”
對于維護(hù)過舊系統(tǒng)的開發(fā)者而言,一個深刻的教訓(xùn)是:貿(mào)然修改不了解歷史背景的代碼,往往會導(dǎo)致災(zāi)難性后果。那些充滿熱情想要重構(gòu)“遺留代碼”的程序員,常常因為忽略系統(tǒng)間的依賴關(guān)系而引入新 bug,甚至破壞經(jīng)過時間考驗的核心功能。
面對 COBOL 這門古老的編程語言,作為“面向業(yè)務(wù)的通用語言”,它的語法結(jié)構(gòu)接近英語日常表達(dá),甚至不需要四年計算機專業(yè)訓(xùn)練就能掌握。但真正的挑戰(zhàn)隱藏在運行時環(huán)境這個“黑匣子”中。程序員需要面對活化石般的大型機架構(gòu)、源自打孔卡時代的作業(yè)控制語言(JCL)、CICS 交易處理系統(tǒng)等。
打開網(wǎng)易新聞 查看精彩圖片這部分相對簡單,但真正的難點在于理解所有這些“拼圖”如何組合起來,哪些程序提供的輸出是其他程序的輸入。大多數(shù)大型機系統(tǒng)會為其他程序創(chuàng)建“文件”(數(shù)據(jù)集),而不是直接調(diào)用其他程序,它們依賴 JCL 來提供運行作業(yè)所需的輸入和輸出參數(shù)。比如,程序 A 并不知道它正在寫入一個名為 output.txt 的文件,它只知道它在寫入名為 output 的輸入?yún)?shù),而 output 是由 JCL 在調(diào)用程序時控制的。這種設(shè)計范式與現(xiàn)代系統(tǒng)截然不同,形成了真正的認(rèn)知鴻溝。
這種系統(tǒng)架構(gòu)帶來的直接后果是,即便能夠讀懂 COBOL 代碼,你依然無法理解它是如何工作的。正如網(wǎng)友所說,目前美國大量關(guān)鍵系統(tǒng)仍在使用 COBOL,但主流做法是用現(xiàn)代語言編寫一個新界面,這個界面仍然調(diào)用所有舊的東西,避免觸碰舊代碼,因為天知道他們會破壞什么隨機的東西。
針對 DOGE 團(tuán)隊重建 SSA 系統(tǒng)的計劃,社交媒體上幾乎呈現(xiàn)一邊倒的負(fù)面評價,大家普遍認(rèn)為“成功的可能性為零”。而且,這些評論無一例外地都獲得了大量點贊,可見大家對此事的看法高度一致。
打開網(wǎng)易新聞 查看精彩圖片“DOGE 團(tuán)隊的計劃,在我看來,注定會以失敗告終。我曾多次成功領(lǐng)導(dǎo)類似項目,深知其中的復(fù)雜性......DOGE 團(tuán)隊中,沒有人具備承擔(dān)如此重任的資質(zhì)。他們的計劃,充斥著麥肯錫式的夸夸其談和技術(shù)專家的想當(dāng)然,成功的可能性幾乎為零?!?/blockquote>
打開網(wǎng)易新聞 查看精彩圖片從用戶和所有者(也就是我們這些小人物)的角度來看,這里成功的機會幾乎是 0.00000000000%。我剛剛遷移了一個類似的系統(tǒng),盡管它規(guī)模更小。我遷移的那個是一個主機系統(tǒng),大約有 1000 萬行代碼。祝你好運,Elon。
打開網(wǎng)易新聞 查看精彩圖片看到這個標(biāo)題,老程序員和 IT 專家們都嚇傻了:“DOGE 想在幾個月內(nèi)重寫 SSA 的全部代碼!”[SSA 的代碼是用 COBOL 寫的。那幫幼稚的 DOGE 團(tuán)隊,根本看不懂,更別說重寫了。]很多網(wǎng)友都認(rèn)為 DOGE 團(tuán)隊在幾個月時間里重建根本不切實際,要想妥善完成這項任務(wù),至少需要一支由數(shù)百名經(jīng)驗豐富的專家組成的團(tuán)隊,并且耗時數(shù)年。
更有網(wǎng)友爆料,根據(jù) USAToday 的報道,馬斯克計劃在今年春天離開 DOGE 團(tuán)隊。這意味著,如果 SSA 系統(tǒng)重建成功,他可以獨攬功勞,甚至名垂青史,而一旦項目失敗,他也能全身而退。這位網(wǎng)友不禁感嘆:“馬斯克真是個天才!”
https://arstechnica.com/tech-policy/2025/03/what-could-possibly-go-wrong-doge-to-rapidly-rebuild-social-security-codebase/
https://www.reddit.com/r/technology/comments/1jlwil2/doge_plans_to_rebuild_ssa_codebase_in_months/
聲明:本文為 InfoQ 整理,不代表平臺觀點,未經(jīng)許可禁止轉(zhuǎn)載。
會議推薦
在 AI 大模型重塑軟件開發(fā)的時代,我們?nèi)绾伟盐兆兏铮咳绾瓮黄萍夹g(shù)邊界?4 月 10-12 日,QCon 全球軟件開發(fā)大會· 北京站 邀你共赴 3 天沉浸式學(xué)習(xí)之約,跳出「技術(shù)繭房」,探索前沿科技的無限可能。
本次大會將匯聚頂尖技術(shù)專家、創(chuàng)新實踐者,共同探討多行業(yè) AI 落地應(yīng)用,分享一手實踐經(jīng)驗,深度參與 DeepSeek 主題圓桌,洞見未來趨勢。
熱門跟貼