今天早上8点14分,天舟十号从文昌发射场起飞,5个小时后精准对接天和核心舱——220多件货物,6吨多物资,一次性送到太空。

你可能觉得这事儿跟你没啥关系。

但如果我告诉你,天舟的整套工作流程,本质上就是一条自动化部署流水线,你可能会愣一下:等等,这不就是我天天在公司干的CI/CD吗?

先聊聊今天发生了什么

长征七号火箭,今天点火的时候出了个小插曲——塔架摆杆没及时摆开,点火时刻往后延了大概50秒。放在我们的世界里,这就相当于发布的时候Jenkins卡了一下,你盯着构建日志心里咯噔一声。

但好在还在2分钟的发射窗口内,任务照样圆满成功。

这就是系统设计里的容错窗口——deadline不是一个点,而是一个区间。

5个小时后,天舟十号自主完成了与空间站的交会对接,稳稳地怼到了天和核心舱的后向端口。原计划3小时搞定,因为起飞延迟多花了点时间。但最终结果没受影响——对接成功,货物到达。

这要是在互联网公司,SRE群里的画风大概是:”构建慢了两小时,但部署成功,服务正常,今晚不用加班。”

空间站是一个微服务集群

我认真想过这个类比,越想越觉得像。

天和核心舱 = API Gateway。 它是整个空间站的中枢,所有的交会对接都要通过它来调度。问天、梦天两个实验舱挂在两侧,各自独立运行实验载荷,就像两个业务微服务——各干各的,但流量统一走网关。

天舟货运飞船 = 包管理器 + 配置中心。 它不常驻,但每次来都带着系统运行需要的”依赖包”——推进剂700公斤(相当于给服务器续上燃料),科学载荷280公斤涵盖6个实验项目(新功能上线),还有航天员的生活物资(运维团队的咖啡和零食,维持SRE的战斗力)。

这次天舟十号送上去的清单挺有意思:一套飞天舱外服、一台太空跑步机、苹果、樱桃番茄、青提、蟠桃,还有冷冻牛排和鸡翅。

能把冷冻牛排送上太空的物流体系,比你们公司的内部零食采购系统靠谱多了。

空间站 = 微服务集群

6.5小时自动对接:太空级别的CI/CD

这是最让我觉得震撼的部分。

天舟飞船从火箭分离到跟空间站合体,走的是”自主快速交会对接”——全程自动化,航天员在舱里基本就是值班状态。

翻译成程序员能听懂的话:

  • 发射 = git push 到远端仓库。代码(货物)离开本地环境(地面),进入传输通道(轨道)。
  • 入轨 = 构建通过。火箭把飞船送到预定轨道,就像CI跑完了所有测试,build success。
  • 交会 = 服务发现。天舟在轨道上一点点逼近空间站,测量相对位置和速度,不断修正。这就是服务注册与发现——”我是天舟十号,请求连接天和核心舱后向端口。”“收到,允许接入,开始握手。”
  • 对接 = 部署完成。物理锁紧,管路连通,气密检查通过。相当于健康检查全绿,流量切入,新版本上线。

整个流程里人类的角色是什么?监控大盘前的值班工程师。 正常情况下不需要手动介入,但出了状况随时能接管。跟你们公司的SRE轮班制度,一模一样。

这套系统还有个特别像CI/CD的地方:它是可回退的。如果对接过程中出现异常,飞船会自动撤离到安全距离,重新走一遍流程。

失败不可怕,能回滚就行。 搞软件的人对这句话再熟悉不过了。

天舟飞船的”版本迭代”哲学

天舟不是从第一代就这么能打的。

天舟一号(2017年)是验证技术的原型——MVP,最小可行产品。那次主要是验证推进剂在轨补加技术,相当于证明”这条路走得通”。

天舟二号到五号,逐步迭代。载货能力从5吨级提升到6吨级,对接时间从最初的十几个小时压缩到6.5小时,再到现在计划中的3小时快速对接。每一代都在前一代的基础上做增量优化——更快的算法、更稳的控制、更高的自动化程度。

这不就是敏捷开发吗?小步快跑,每个迭代交付可工作的增量。

到了天舟十号,它已经是一个成熟的产品了。这次发射质量14吨,加压货物6300公斤,科学载荷项目数量是历次之最。它要在轨服务12个月,同时保障神舟二十三号和神舟二十四号两批航天员的需求。

换句话说,天舟十号是一次跨两个大版本周期的长期支持发布——LTS版本

一个被忽略的工程奇迹:全链路自动化

我们搞技术的都知道,自动化最难的不是把某个环节自动化,而是把所有环节串起来,端到端地跑通。

天舟的自动交会对接就是这样一个全链路自动化系统:

发射段——火箭自主飞行,按预设程序完成各级分离和入轨。转移段——飞船自主导航,多次变轨调整,逼近空间站。对接段——毫米级精度的自动对接,机械锁紧,管路连通。

每个环节都有自己的监测、判断、执行逻辑,每个环节都有异常处理和回退方案。整条链路走下来,地面团队的角色更像是运维值班——看着监控,确认一切正常,只在必要时介入。

自动化做到这个程度,你还觉得”全栈”是个很厉害的词吗? 人家是”全链路太空自动化运维工程师”。

下次看航天新闻,试试这个翻译框架

说真的,航天新闻之所以让很多人觉得”看不懂”或者”跟我无关”,不是因为技术太难,而是缺一个翻译层。

给你一个速查表:

航天术语 程序员翻译
发射 部署到生产环境
入轨 构建成功,进入staging
交会对接 服务注册与发现 + 健康检查
推进剂补加 给服务器续费
货运补给 热更新 + 依赖升级
航天员 SRE值班工程师
飞行控制中心 NOC(网络运营中心)
应急撤离方案 回滚策略

下次看到”天舟飞船成功完成自主快速交会对接”,你脑子里翻译一下:”新版本通过自动化流水线完成了生产环境部署,服务发现正常,健康检查通过。”

是不是瞬间就懂了?

最后说两句

天舟十号今早8点14分从文昌升空,5个小时后对接空间站。背后是从2017年天舟一号开始的、将近十年的工程迭代。

十年,从MVP到LTS,从手动到全自动,从十几小时到三小时(虽然今天因为延迟跑了五小时,但hey,线上环境嘛,总有意外)。

你每天的git push可能没有火箭发射那么壮观,但用的是同一套工程思维:自动化一切能自动化的,为失败设计回退路径,小步迭代持续交付,最终一致性比强一致性更务实。

中国航天最了不起的地方,不是某一次发射多么惊天动地,而是它建起了一套可重复、可迭代、可持续运转的工程体系。

这跟好的软件工程,本质上是一回事。

所以下次有人问你”写代码有什么了不起的”,你可以理直气壮地说:我干的活,跟发射火箭是同一个思路。

只不过我的”火箭”偶尔会500而已。