我把发布拆成了灰度,风险小了很多。我拉了个小群,把相关同学都叫了进来。我在这个阶段上加了个检查,问题提前暴露了。从此我多了一条团队规约

流水线跑了四十分钟,构建机器风扇声像火箭发射,全组人的心跳跟它共振。我先给自己泡了杯茶,做好了打持久战的准备。我发现这个流水线的失败率有三成,很多是环境问题。果然现实比段子更精彩

这个脚本在失败时会留下一个半成品环境。我想了想,觉得这话没法接。我把这个流水线的超时时间调大了,慢构建不再被掐。好在最后有惊无险

我把健康检查加上了,异常时能自动回滚。我把这个构建的依赖拉取改成了走内网,快多了。世界瞬间清净了

我把发布拆成了灰度,风险小了很多。我打开记录从头到尾扫了一遍。我把这一步拆成了两个 Job,至少能定位到是哪段挂的。这条经验值直接拉满

灰度发布切了百分之一的流量,错误率直接飙到百分之三十。我决定先把手上的事情做完再处理这件事。我把这次发布的每一步都记了下来,下次能少踩一个坑。世界瞬间清净了

我把这个步骤加上了人工卡点,关键环境不自动过。我发现是构建机器的磁盘满了。这大概就是程序员的人生吧

这次的发布很顺利,反而让人有点不安。我停了一下,然后继续手上的活。我打开流水线日志一页页翻,最后在倒数第二行找到了报错。这条经验值直接拉满

发布窗口的选择本身就是一种风险控制。我停了一下,然后继续手上的活。我打开流水线日志一页页翻,最后在倒数第二行找到了报错。从此我多了一条团队规约

流水线跑了四十分钟,构建机器风扇声像火箭发射,全组人的心跳跟它共振。这套流程走下来,我从头到尾又确认了一遍。我把这个环境变量从脚本里挪到了平台配置