我给自己的数据做过可靠性工程。那栋 18 万的房子,在我账上不是房产,是 100TB 的个人数据中心:双址冗余,目标 10 个 9 的可靠性——十亿次运行里错一次的意思。硬盘会坏,我就多放一份;房子会塌,我就再放一处。图纸画完,我自己检查了一遍,然后发现了一个所有副本都罩不住的零件。
这架构最薄弱的一环,就是如果我物理毁灭了——这个零件的失效率,怎么算都压不到 10 的负九次方以下。而结论更好笑:我如果物理毁灭了,我也不需要研究了。你把整套系统做到十亿分之一的故障率,是为了一个系统存在的前提——你自己——不参加运行的那天。可靠性工程的尽头站着一个人,而人是所有硬件里最先坏的那个。
十一个 9
硬件会坏,房子会塌,人会消亡。9 的竞赛,在肉体这里到头了:十个 9 是我的硬盘的极限,十一个 9 是数学的极限,而死亡不是故障,是停机。它不进可靠性预算,因为它不修复。
所以我决定把我的所有架构全部开源——有一天我物理毁灭了,我的思想还存在。这不是情怀,是架构决策。思想要活得比肉体长,就得先离开肉体——开源就是那个搬运过程:把代码、逻辑、运维手册从我的脑子里搬出去,搬进一个不跟我共用寿命的地方。其中真正值钱的不是代码,是文档:为什么选这个因子、怎么避开幸存者偏差——代码是答案,文档是推导,思想住在推导里。
最可笑的一件事
但有一盆冷水必须自己泼:就算把这套东西全部开源,只要我不做 marketing,GitHub 上一个 star 都不会有——没有人明白一个人曾经在里面付出多少心血。开源解决的是存续,不解决传播。种子撒出去没人浇水,照样死。所以永生不是一个动作,是两个:开源,加传播。star 数不是虚荣,是思想的心跳计数器——这也是为什么我写这个网站:它是我给自己思想配的通风系统。
故乡
换句话说,其实 GitHub 是我的故乡。那里没有物业费,没有通马桶的烦恼,每一次 commit 都像刻进石头族谱的一笔;不管肉体在深圳、惠州还是东京,git pull 下来永远是同一个家。
然后还有一句:但是不是的,我的故乡寄托在微软的身上。故乡的领土、天空、电网、自来水,全是微软的——GitHub 只是微软国土上的一个省。永生没有免费版,只有托管版:不死,但是死后住在别人的服务器上。
我签了这份合同。哪天你点开我的仓库看到一个 404,那不叫网页丢失——那是一个故乡,连同它全部的族谱,迁走了。