纸上谈rocket science,攻城狮直呼内行

2021-03-05
4分钟阅读时长

经常听说,“It’s not rocket science.”

BUMPER-ROCKET-2_grande.jpg

那什么才算Rocket science呢?

Rocket science

最初的火箭,咱的呀。结构蛮简单,最复杂的工艺可能就是木雕的龙头和龙尾吧。动力小,可靠性低。这就好比早期的网站,一个386台式机跑的呼呼的,什么高并发,7x24,想都不要想。

中国古代火箭

然后欻的一下到了20世纪。

二战时德国的V2弹道导弹,算是第一个现代意义的火箭。毕竟用来打架的,壮。V2弹头达1吨,全重12508kg,最大飞行速度4.8马赫。性能杠杠的。这就好比,服务器从桌面换成了正儿八经服务器,速度快的飞起。

V2

好比站在四环看五环,打完二战打冷战,美苏不计成本太空竞赛,催生了土星五号这种暴力美学传奇机器。

土星五号执行阿波罗11号任务

土星五号总重超3百万吨,近地轨道载荷140吨,地球同步转移轨道载荷48.6吨。土星五号的设计师冯布劳恩,直接参与过V2设计。二战后美国通过回形针行动把超过1600名德国科学家、工程师和技师等秘密带到美国,这些人成为了美国太空计划的奠基者。能不能说老美到今天吃的依然是二战红利呢?

土星5号和冯布劳恩 V2是弹体弹头一体式火箭,只有一级。土星五号设计思路不同,引入三级,其中一级、二级分别五台发动机,三级一台发动机。这分级就有模块化分层的味道了,而这五台发动机,就好比多核CPU,或者换个类比,就是一个小集群

眼馋上世纪的土星五,想起正在研制中的长征9,啥时候能露个脸呀。

超重型运载火箭

太空竞赛完事后,空间任务依然繁重。一次性使用火箭成本太高,SpaceX说:我爱回收!于是有了猎鹰9号。猎鹰(Falcon)是星战里的千年隼,火箭第一级9个发动机,因此就叫猎鹰9。btw,F16也叫Falcon。F16,看是好看的。

回收,也就是重用的思想,极大减少开发成本,又有那么一丢丢12 factors app里提的disposibility

再接下来,航天任务变得更加复杂,对载重的要求可能更高,怎么办?单台推力无法再扩(垂直扩容),只能水平扩容,也就是再加发动机,于是就有了猎鹰重型火箭(Falcon Heavy:FH)。

![Falcon Heavy](https://i.loli.net/2021/03/06/bwjEFvKmksHCIPx.jpg “Falcon Heavy | 图源:SpaceX”")

FH用了三个猎鹰9号1级,一共有27台发动机。

Falcon Heavy

按传统设计思路,发动机多了会带来各种复杂性,诸如耦合振动、整体推重比下降以及可靠性降低等等问题,因此火箭一级发动机总数一般控制再10台以内。

但我们还要移民火星,以后还要飞跃太阳系,建设星际舰队呢,那能不能换个设计思路呢?于是Starship上场了。 Starship第一级Super Heavy(SH),28台发动机(超过了10台)。第二级叫Starship(星舰),可改造执行不同任务,包括地球轨道探索、地月轨道飞行、以及预计2024年的火星移民计划。

SN10

SN8炸了,SN9摔了,SN10,尽管降落后几分钟又炸了,也算是功成圆满。牛。所以这28台发动机,是不是有点像hadoop刚出来的时候说要解决的问题,不再依赖性能强大的单机,而是可以通过大量性能平平的普通机器协调工作实现性能、可靠性等等的无限扩展可能。

分布式系统

似乎各个领域都遵循着类似的模式,火箭小载重轻,那就让发动机变得更强大,就好似CPU升级换代。单CPU的性能总有极限,那来个多核,好像火箭每一级采用多个发动机。这时候性能还要升,就只有增加新的机器了,变成了集群,这下可好,原来一人吃饱全家不饿,现在变成了分布式系统,各组件之间的耦合、一致性、调度就成了老大难。

毕竟系统变成了多个部分,每个部分都有自己的意见和想法,为了实现1+1>2的效果,每个部分之间达成共识便至关重要。于是有了各种共识算法,比如经典的Paxos算法。尽管如此,一个健康的分布式系统在一个时刻必然只有一个leader,若非如此就形成了脑裂。一旦脑裂,就会带来各方面的问题,轻则数据不一致,重则系统瘫痪,五马分尸也可算是一个严重脑裂的分布式系统式刑罚吧……三个臭皮匠,未必顶的上一个诸葛亮。

设计思想真是放之四海而皆准呀。

呀,说到这,IT工程师们有没有感觉天天都在玩不是rocket science的rocket science呢。哈哈哈。

天问一号

天问一号在火星轨道耍,拍的照片,怪好看的。

火星-天问一号

火星-天问一号

火星-天问一号

参考