【外评】一个工程奇迹

每当我和程序员朋友谈论苹果公司时,我都会偷偷地讲下面这个故事。通常我会以 “你知道苹果公司……吗?”开头,然后靠在椅背上,食指指着桌子,说”……这就是工程技术”。

2017 年,苹果发布了 iOS 10.3。这是一个小版本,不包含任何主要功能,但却别有洞天:

实际上,苹果正在为今天所有的 iPad 和 iPhone 用户带来一个相当巨大的转变。在 iOS 10.3 中,苹果将支持的设备转移到新的苹果文件系统(APFS)中。

The Verge 还指出:

大多数 iPhone 和 iPad 用户在今天的 iOS 10.3 更新后不会发现有什么不同。

让我们沉浸其中吧。

他们发布的更新迁移了 “所有 iPad 和 iPhone 用户”(2017 年已达数亿)的文件系统,而 “用户不会注意到有什么不同”。

一夜之间,悄无声息地将用户根本不会注意到的文件系统迁移到数以亿计的设备上。

数亿设备的文件系统自动迁移。

我不知道,也许我一想到要编写这样的迁移程序就会紧张,因为我个人在文件系统更改方面的成功率并不高。过去,我曾多次因为在 CLI 上出错而不小心破坏了 Linux 和 Windows 的安装。但撇开个人的笨拙不谈:每当你接触文件系统时,你就必须承认你很有可能会把你的机器弄坏。没有比文件系统更能承受重负的了。

显然,15 岁的我把 mkfs 命令弄得一团糟与苹果团队编写文件系统迁移程序是有区别的:首先,他们知道文件系统到底是什么,但他们也编写了新的文件系统,拥有从旧系统迁移到新系统的经验,可能会在成百上千的测试设备上测试他们的迁移程序长达数月之久,拥有出色的迁移工具,并且可以依靠苹果公司在自动更新 iOS 设备方面的经验。

换句话说:他们非常擅长自己的工作,他们的文件系统迁移最终导致设备瘫痪的可能性可能非常非常小。接近零,甚至可能是零。

但仍然是零。把近乎零的概率乘以数亿,我问你:你会点击推出更新的按钮吗?在按下按钮之前,你要做多少测试?多少测试设备?多少种不同的配置?除了 “很多 “之外,我不知道该如何回答这些问题,但我知道:在点击那个按钮之前,我的身体会流出更多的汗水。

他们确实点击了那个按钮,更新也随之推出,并在一夜之间迁移了数亿台设备,据我所知,没有设备被 “变砖”,甚至只有少数设备注意到发生了什么。

这就是工程技术。

本文文字及图片出自 A Feat of Engineering

余下全文(1/3)
分享这篇文章:

共有 1 条讨论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注