日期:2023-06-28 10:23:16 来源:CSDN
在 1977 年推出的计算机系统中,至今只有两个仍在可靠地运行,而且还在收集数据、分析信号并向人类报告。这两个系统便是 1977 年 8 月和 9 月发射的旅行者号太空探测器,如今这两个探测器距离地球约 200 亿公里。
原文链接:https://flyingbarron.medium.com/is-there-such-a-thing-as-a-system-thats-too-reliable-9a367ba850ac
未经允许,禁止转载!
(相关资料图)
作者 | Robert Barron 译者 | 弯月
责编 | 夏萌
出品 | CSDN(ID:CSDNnews)
1977 年是计算机和高科技行业的一个重要里程碑。这一年若干革命性的系统问世,包括第一台普通家庭也可负担的家用计算机(比如 Commodore PET、Apple II 和 TRS-80),以及第一台 VMS 系统(VAX-11/780" 超级小型计算机 ")。IBM 推出了两个新的系统系列:高端 IBM 3033 和中端 IBM/System 34。
但所有在 1977 年推出的计算机系统中,至今只有两个仍在可靠地运行,而且还在收集数据、分析信号并向人类报告。这两个系统便是 1977 年 8 月和 9 月发射的旅行者号太空探测器,如今这两个探测器距离地球约 200 亿公里。
旅行者号的年代没有手机网络也没有 WiFi,当时基于固定电话的长距离连接也很脆弱,而旅行者号的设计要求即使相隔远至光需要一天时间传播的距离,也能正常通信。
图:旅行者号的图像展示,分别为地球和月球、木星的伽利略卫星、土星环、海王星的风暴(NASA)
经过近半个世纪的运行,在途径木星、土星、天王星和海王星等行星几十年后,在离开太阳系穿越星际空间多年后,为旅行者 2 号提供支持的 NASA 工程师们认为它过于可靠,并移除了一些机载安全机制!
虽然这个做法有点不可思议,但每个系统都要考虑到各个方面的平衡。
系统的长期成功在于,当下做某事的成本与确保未来可以再次做这件事之间的平衡。
当我们定义系统的需求时,无论是手机游戏、金融应用程序、预订系统、人力资源或销售应用程序、电梯控制系统、自动驾驶汽车还是星际探测器,我们都需要确保可靠性。换句话说,如果某个组件出现问题,整体系统有一个解决方案,保证系统持续正常工作。
提高可靠性的一个最简单的方法是冗余。如果出现故障,我们会准备好备用(或冗余)组件来替换。很明显,构建一个没有冗余的系统更容易:成本更低、复杂性更低、运营开销也更低。
图:冗余系统 vs 非冗余系统
本质上,具有内置可靠性的系统比没有内置可靠性的系统更加复杂。通常,确保有足够容量来应对意外故障的最简单方法是加倍运行系统的基础设施。这样就有多余的容量管理故障。但问题在于,基础设施的成本增加了一倍,而且还必须花费时间和精力来协调原来的基础设施与额外的基础设施。
从管理的难度来看,只运行一个服务器 < 运行多个虚拟机的主机 < 运行多个节点的 Kubernetes 集群。当然,平衡这种复杂性的好处是管理良好的 Kubernetes 集群的可靠性远高于单个服务器,因为这种集群可以承受单个服务器无法应对的系统故障。
对于旅行者 2 号来说,可靠性主要体现在备用电源的储备上。旅行者号的供电来自放射性同位素热电机(Radioisotope thermoelectric generator,RTG)。简单来说,这些钚 -238 会衰变并放出热量。而这些热量可以转化为电能,为旅行者号上的各种传感器、引擎和计算机提供动力。1977 年旅行者 2 号发射时,RTG 能够产生约 470 瓦的功率。如今,它们已经衰退,释放出的能量也减少到原来的三分之一。由于每个仪器都需要电能才能工作,因此整个系统使用科学仪器的能力会随着电能的下降而降低。两艘航行者号上的大部分仪器都已永久关闭。
图:旅行者号的科学仪器和 RTG 示意图(NASA)
NASA 工程师计划在今年晚些时候关闭旅行者 2 号上的一台仪器,以便让另外四台仪器能够持续运行更长时间。然而,他们还发现了一个隐藏的储备能源宝库:一个小型的电力储备库,作为电力突然波动时的安全机制。如果没有这些安全机制,旅行者 2 号无法在数十年的星际旅行中幸存下来,但每种安全机制都是有代价的。举一个可靠性成本的例子,许多人在外出旅行时都会携带备用衣服,以防发生意外需要干净的衣物,但后果是导致行李箱过于沉重。再说一个与技术有关的例子:计算机服务,如果这些服务配置了额外的服务器、容器、内存、存储或 CPU,就可以在使用量激增时轻松应对。所有这些 " 额外 " 都是有代价的,既包括经济成本(你需要提前购买额外的衣服),也包括机会成本(度假期间从未使用过备用衣服,再加上购物,导致行李超重)。
对于旅行者号而言,这个能源库的成本是科学仪器可用的电能减少。
因此,NASA 工程师在查看了数据以及这种特定的安全机制预计在未来几年内的重要性后决定,他们可以降低安全标准,并释放备用电力来确保所有五台仪器再运行几年。
从根本上来说,这是旅行者号对于错误预算的重新平衡,或者说重新计算。用现代开发和站点可靠性工程的术语来说,错误预算是我们生产和部署新功能的速度与为避免系统障碍而付出的代价之间的平衡。换句话说,错误预算就是在 " 放慢速度并更加谨慎 " 之前,我们能够忍受多少问题和错误。就这个例子而言,NASA 认为旅行者号的错误预算过于严格,因此放松了预算。
在比较电力突增损坏仪器的风险与缺乏电力导致仪器运行的确定性降低时,NASA 工程师、科学家和项目经理共同得出了一个结论:优先收集新的科学数据。
这实际上是一个相当有违直觉的结论。通常,SRE 会优先考虑长期可靠性并添加安全机制,因为我们希望在出现问题时有尽可能多的选择。
然而,对于旅行者号而言,由于 NASA 有大量的历史数据可供分析(即发电的不稳定程度以及能源库的使用情况),因此他们可以做出性能高于安全的判断。
虽然旅行者 2 号的可靠性会稍差降低,但生产力会更高。
" 电压的变动会给仪器带来风险,但我们确定这是一个很小的风险,而替代方案提供了巨大的回报,能够让科学仪器保持更长时间的开启状态。" —— Suzanne Dodd,JPL 旅行者号项目经理。
从数据来看,这个决策就好像是随着孩子长大,父母逐渐减少给孩子带的备用衣服一样!
说回地球,平衡 IT 系统的可靠性和容量需求一直是一个难题,也是一个困扰各地 SRE 的难题。旅行者号只能使用 20 世纪 70 年代构建和推出的容量,与之不同,我们的计算环境处于不断变化和增长的状态。最近,我们开始使用一种名为 Turbonomic 的解决方案,它不仅可以重新平衡和重新配置我们的系统,满足当前性能和未来容量的最佳平衡,而且也更加经济实惠。然而,其最大的好处在于,我们不需要成为一名火箭科学家就可以使用它!
标签: