摘要:马斯克领导的 DOGE 团队正酝酿一场豪赌:他们计划在短短几个月内重写一套运行了数十年的核心代码库。该代码库包含数千万行 COBOL 代码,以及部分汇编语言。按理来说,要安全、完整地重写这些代码,至少需要数年时间,而将这一过程压缩到几个月几乎是不可能完成的任务
编译 | 核子可乐、Tina
马斯克领导的 DOGE 团队正酝酿一场豪赌:他们计划在短短几个月内重写一套运行了数十年的核心代码库。该代码库包含数千万行 COBOL 代码,以及部分汇编语言。按理来说,要安全、完整地重写这些代码,至少需要数年时间,而将这一过程压缩到几个月几乎是不可能完成的任务。
如果他们真的成功了,这将彻底颠覆传统 IT 领域的认知,足以让任何经验丰富的程序员和 IT 专家感到脊背发凉、难以置信。
快刀斩乱麻式的重构?
前两天,据《连线》杂志报道,DOGE 正着手组建新团队,负责在未来数月之内将社会保障管理局(SSA)计算机系统所使用的古老编程代码中迁移出来。
该项目由马斯克的副手史蒂夫·戴维斯牵头,负责将全部 SSA 系统从 COBOL(最早的主流面向业务编程语言之一)迁移到更为现代的替代性语言如 Java 上,而且工期只有短短数月——典型的时间紧、任务重。
无论从哪个角度来看,此等规模的迁移都将是一项艰巨的任务,而过度强调迁移速度很可能导致目前正在领取社保福利的 6500 多万美国民众受到影响。“当然,其中最核心的风险还不是多付或少付了款项,而是系统压根没有向某人付款且未能察觉出异常。总之,看不见的错误和遗漏才是最致命的。”一位 SSA 技术专家告诉《连线》杂志。
与众多传统的遗留 IT 系统一样,SSA 系统包含使用 COBOL 编写的代码。COBOL 是一款由 Grace Hopper 于 1950 年建立雏形的编程语言。COBOL 诞生后不久,美国国防部开始推动该语言在私营企业中的应用,促使其得到广泛普及,并在 1970 年代成为大型机(即能够快速处理和存储大量数据的计算机系统)中使用最广泛的语言之一。然而,近年来,在“去 DEI”行动中,与 Hopper 成就相关的一些网站逐渐下线(Grace Hopper 是女性计算机编程的先驱)。
直到 2016 年,SSA 基础设施当中仍包含超过 6000 万行用 COBOL 编写的代码,外加数百万行使用其他传统语言编写的代码。事实上,根据 SSA 自己的 2017 年现代化计划里的说法,自 1980 年代其开发自有数据库系统 MADAM(主数据访问方法,此系统采用 COBOL 加汇编语言编写而成)以来,SSA 的核心程序系统与架构就再未进行过“大幅度”更新。
SSA 的核心“逻辑”也主要用 COBOL 编写。一位曾在 CIO 办公室工作的前 SSA 高级技术专家表示,这些代码主要用于发布社保号码、管理付款乃至计算受益人所应申领的总福利金额。因此,即使是微小的变化也有可能在整个程序内引发连锁故障。
目前尚不清楚软件升级工作何时开始。据《华盛顿邮报》本周报道,在过去几周里,由于 DOGE 大幅削减了 SSA 预算,导致其官方网站经常崩溃、电话咨询的等待时间也大大延长。
最近发现,美国竟然有“150 岁”的老人仍在领取福利,这显然不正常。有怀疑声称,他们社保系统中可能存在大量的欺诈和错误,例如某些已故人士的社保福利仍在继续发放。马斯克领导的“DOGE”团队目前有约 10 人在 SSA 工作,他们的任务是清理这个系统中的“死人”账户,将这个系统与其他部门的数据库连接,方便核对信息,并通过电话确认领款人是否还活着,以防止欺诈。此外,DOGE 还希望法院授权其全面访问 SSA 系统,以完成这一任务。
在组织将新应用程序部署到生产环境之前,必须对软件进行错误测试。Wired 援引的这位前 SSA 技术专家表示,DOGE 提议的 COBOL 重写的测试阶段本身就需要几年时间。如果在几个月内进行重写,DOGE 的开发人员可能需要跳过重要的质量保证步骤,这将增加技术问题的风险。
这位 SSA 技术专家还补充道,在几年之内解决所有潜在极端情况已经相当困难,压缩到几个月简直是难以想象。
曾在 CIO 办公室工作的 SSA 前高级技术专家在采访中也坦言,“SSA 原本的系统几乎就是用铁丝和胶带勉强固定起来的。领导层必须要清楚,他们面对的是一座本就摇摇欲坠的「纸牌屋」。一旦像他们宣称的那样从中抽出纸牌,整个体系都有可能瞬间坍塌。”
原计划“五年”完成核心系统现代化
此次拟议的迁移,已经不是 SSA 第一次尝试放弃 COBOL 代码。早在 2017 年,SSA 就曾公布一项计划,希望申请数亿美元经费来更换其核心系统。但随着 2020 年疫情暴发,该机构放弃了这项工作,转而专注更多面向公众的项目。
该计划指出,SSA 系统每年需处理超过 3700 万通电话,并发布高达 2.66 亿份收入报告,这对技术基础设施提出了极高的要求。然而,SSA 的核心系统大多已运行超过 30 年,部分嵌入式软件组件甚至更为老旧。
同时,在这 30 年的时间里,SSA 的系统经历了不断的变化,以融入立法、法规和政策的变化。多年来,新技术和功能已被修补到核心系统中,但没有进行根本性的重新设计。每次修补和变通都会使系统变得更加脆弱,从而使下一次变更变得更加“昂贵”。
“多年来,新技术已被集成到这些遗留系统中,但这些集成并未对系统和操作环境进行根本性的重新设计。如今,在这个遗留环境中运营的成本非常高。”
为了应对庞大的用户基数和复杂的业务需求,SSA 深知其 IT 系统现代化改造是一项高风险的重大投资,如同“飞行中重建飞机”,预计需要五年左右的时间才能完成整体系统的现代化转型。为了实现这一目标,SSA 制定了一个“IT 现代化计划”:“IT 现代化计划代表了 SSA 在一个拥有数百万个个人和数千名员工的大型联邦机构中推动 IT 改进的方案。”
他们计划在五年内投资 6.77 亿美元,用于六个关键转型项目以及支撑这些项目的基础设施建设。
当时的计划是让业务系统能够在云端运行,并且能够跨多个平台操作。同时将旧的 z/OS 主机系统迁移到更灵活的 Linux 环境,摆脱旧系统的束缚。另外,还会进行 DevOps 转型 ,这样才能更快地推出新功能,提高软件质量。
他们还需要推进数据存储方案的现代化改造,以解决遗留系统带来的信息孤岛、技术限制和效率低下等问题,并特别强调了改造内部批处理数据库系统 MADAM 所面临的挑战。
“与今天市面上商业关系数据库产品相比,MADAM 已经在技术上过时,功能上也相对原始。该机构的核心数据系统是围绕当时广泛使用的磁带存储技术的局限性设计的。由于磁带技术不允许随机数据访问,所有更新都通过定期合并在临时存储区排队的更新进行管理。尽管磁带存储已经被淘汰,且更先进的能力已经可用,但夜间合并模型依然存在。
多年来,我们的数据存储已经发展到在多个地方捕捉到相似的数据,且其含义稍有不同。这种情况发生是因为随着我们遗留系统的演变,机构经常重复数据以获得更好的性能。此时,我们的分析师和开发人员需要反复进行详细分析,以理解在特定应用程序中使用哪些数据源以及如何将这些数据与其他数据源进行对比。
开发新功能本应快速实现,但却需要系统分析师、开发人员和政策专家进行广泛的分析,以确保变更正确。这增加了我们的项目时间表,也使开发成本更高。当我们希望使用我们的广泛数据进行管理报告或业务分析时,我们发现类似数据之间的细微差别导致分析结果的不一致。这意味着我们得到的答案可能会出现不一致的情况。”
在改造过程中,SSA 也面临着其他大型项目常见的多重风险。
例如,新旧系统需要并行运行数年,因此会面临混合环境的挑战,如何培训员工同时掌握两套系统的操作和维护是亟待解决的问题。其次,数据完整性是另一个关键风险。新旧数据源的整合,特别是批处理过程中驱动的数据转换,容易出现错误,从而影响数据的准确性。接下来是代码质量问题,部署新软件后可能会出现问题,需要快速回滚到先前版本,这就要求在开发过程中进行充分的测试,并建立完善的回滚机制。此外,网络安全风险不断升级,外部攻击和内部威胁不断增加,需要不断更新安全措施,以确保交易和数据的安全。
这些 SSA 在原改造计划中提到的挑战,DOGE 同样需要面对,一个也逃不了。
社交媒体一致唱衰:
“这不可能!”
对于维护过旧系统的开发者而言,一个深刻的教训是:贸然修改不了解历史背景的代码,往往会导致灾难性后果。那些充满热情想要重构“遗留代码”的程序员,常常因为忽略系统间的依赖关系而引入新 bug,甚至破坏经过时间考验的核心功能。
面对 COBOL 这门古老的编程语言,作为“面向业务的通用语言”,它的语法结构接近英语日常表达,甚至不需要四年计算机专业训练就能掌握。但真正的挑战隐藏在运行时环境这个“黑匣子”中。程序员需要面对活化石般的大型机架构、源自打孔卡时代的作业控制语言(JCL)、CICS 交易处理系统等。
这部分相对简单,但真正的难点在于理解所有这些“拼图”如何组合起来,哪些程序提供的输出是其他程序的输入。大多数大型机系统会为其他程序创建“文件”(数据集),而不是直接调用其他程序,它们依赖 JCL 来提供运行作业所需的输入和输出参数。比如,程序 A 并不知道它正在写入一个名为 output.txt 的文件,它只知道它在写入名为 output 的输入参数,而 output 是由 JCL 在调用程序时控制的。这种设计范式与现代系统截然不同,形成了真正的认知鸿沟。
这种系统架构带来的直接后果是,即便能够读懂 COBOL 代码,你依然无法理解它是如何工作的。正如网友所说,目前美国大量关键系统仍在使用 COBOL,但主流做法是用现代语言编写一个新界面,这个界面仍然调用所有旧的东西,避免触碰旧代码,因为天知道他们会破坏什么随机的东西。
针对 DOGE 团队重建 SSA 系统的计划,社交媒体上几乎呈现一边倒的负面评价,大家普遍认为“成功的可能性为零”。而且,这些评论无一例外地都获得了大量点赞,可见大家对此事的看法高度一致。
“DOGE 团队的计划,在我看来,注定会以失败告终。我曾多次成功领导类似项目,深知其中的复杂性......DOGE 团队中,没有人具备承担如此重任的资质。他们的计划,充斥着麦肯锡式的夸夸其谈和技术专家的想当然,成功的可能性几乎为零。”
从用户和所有者(也就是我们这些小人物)的角度来看,这里成功的机会几乎是 0.00000000000%。我刚刚迁移了一个类似的系统,尽管它规模更小。我迁移的那个是一个主机系统,大约有 1000 万行代码。祝你好运,Elon。
看到这个标题,老程序员和 IT 专家们都吓傻了:“DOGE 想在几个月内重写 SSA 的全部代码!”[SSA 的代码是用 COBOL 写的。那帮幼稚的 DOGE 团队,根本看不懂,更别说重写了。]
很多网友都认为 DOGE 团队在几个月时间里重建根本不切实际,要想妥善完成这项任务,至少需要一支由数百名经验丰富的专家组成的团队,并且耗时数年。
更有网友爆料,根据 USAToday 的报道,马斯克计划在今年春天离开 DOGE 团队。这意味着,如果 SSA 系统重建成功,他可以独揽功劳,甚至名垂青史,而一旦项目失败,他也能全身而退。这位网友不禁感叹:“马斯克真是个天才!”
参考链接:
声明:本文为 InfoQ 整理,不代表平台观点,未经许可禁止转载。
今日好文推荐
5 年谈判,AlexNet 原始“源代码”终于公开:Hinton团队日志注释首次曝光,意义远超代码本身
GPT-4o “吉卜力”爆火,Prompt、SD 白学了?!大模型能力进化碾压一切
“我们要重建 TikTok 算法”!Perplexity CEO 放话收购 TikTok,并开源关键技术
74 岁 C++ 之父最新蓝图:让代码更安全,还能兼容40年前的老程序!
会议推荐
在 AI 大模型重塑软件开发的时代,我们如何把握变革?如何突破技术边界?4 月 10-12 日,QCon 全球软件开发大会· 北京站 邀你共赴 3 天沉浸式学习之约,跳出「技术茧房」,探索前沿科技的无限可能。
本次大会将汇聚顶尖技术专家、创新实践者,共同探讨多行业 AI 落地应用,分享一手实践经验,深度参与 DeepSeek 主题圆桌,洞见未来趋势。
来源:极客邦科技