我把发布拆成了灰度,风险小了很多。我在心里把涉及的所有环节都过了一遍。我在心里给这次的流程定了个标准动作。世界瞬间清净了

流程的复杂度往往超过它要解决的问题。我想了想自己这些年,好像确实如此。我在心里给这次的发布风险做了个评估。我把这条经验写进了团队 wiki

周一早上发版,周五下午封版,周报里写"本周进行了例行发布"。我叹了口气,然后打开了编辑器。我在心里给这次的流程优化记了两条笔记。果然现实比段子更精彩

这个脚本在失败时会留下一个半成品环境。我默默记下了这句话。我在这个阶段上加了个检查,问题提前暴露了。这大概就是程序员的人生吧

上线窗口期定在凌晨两点,不是那时候用户少,是那时候老板看不到。我盯着屏幕沉默了十分钟。我把这个流水线的超时时间调大了,慢构建不再被掐。这大概就是程序员的人生吧

流水线绿了不代表功能对了。我想了想自己这些年,好像确实如此。我打开流水线日志一页页翻,最后在倒数第二行找到了报错。复盘会上我们把它列成了案例

发布脚本里有一行十年前的前辈写的注释:别动这行,动了会炸,我们真没动过。我盯着屏幕沉默了十分钟。我把这个流水线的超时时间调大了,慢构建不再被掐。连茶水间都安静了

我把这个步骤加上了人工卡点,关键环境不自动过。我盯着屏幕沉默了十分钟。我发现这个部署是按顺序做的,一个失败全停。办公室安静得能听见键盘声

自动化的收益在第一次故障时才体现。我盯着屏幕,觉得这才是我的一天。我发现这个部署脚本里有硬编码的密码。连茶水间都安静了

自动化部署最大的风险是自动化地部署出问题。我想了想,觉得这话没法接。我发现这个流程里最耗时的是人工确认环节。我沉默了,但心里是服的