Replay大会前一天,我走进Target,把货架上所有Lazy Susan转盘都买了下来。 这不是什么罕见的厨房紧急状况。我需要的是2300张会议工牌的烧录载具。 每个转盘放两个16口的USB集线器。我的同事们一次可以装载32张工牌,转一圈就能接上所有线缆,然后整盘递给下一个烧录工位。这个工位运行Ignition——我们基于Temporal构建的固件烧录系统——烧录完成后,再把转盘交给流水线的下一环节。 这就是工牌项目中“分布式系统”这个词变得极其字面化的时刻。 烧录一个ESP32是一条命令。在六台笔记本上烧录2300个,同时还有70多位同事在你身边手工组装硬件,这已经是一个生产系统。设备会消失,又以新的名字重新出现。USB线缆只要松那么一点点,就能毁掉你整个晚上。一次成功的写入并不能证明设备真的启动了。第17号工牌烧录失败时,操作员不应为另外31张工牌的命运而困惑。 我早就预感到这个问题的到来。在我启程去中国之前,当我开始囤积USB集线器时,它就隐隐盘踞在我脑海深处。乐鑫有官方工厂工具,它在把字节写进芯片这件事上做得很好。我担心的是围绕这个操作的一切:不需要我盯着也能自动处理的重试机制、每张工牌的烧录记录、证明新固件真的能用的测试,以及我的同事们能在没有我站在旁边的情况下独立启动的工具。 我当时想,Temporal可以做得更好。 所以我们构建了Ignition。 Ignition的第一个版本在工牌到货前几周就已存在。我们在开发硬件上反复测试,并随着固件的更新不断收紧工作流程。 但这样的测试有一个相当大的盲区。 我从中国带回来的那几块工牌,已经运行了好几周生产固件。我的测试样本里,已经没有一块运行着QA固件的工牌——而那2300张还在运输途中的工牌,装的正是QA固件。我知道QA固件在真实硬件上的表现,与生产固件并不完全一致。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.