这次的发布很顺利,反而让人有点不安。我在心里点了点头。我发现这个脚本的日志没有时间戳,排查很难。同事说这波操作可以写进新人培训教材

自动化的收益在第一次故障时才体现。我发现自己居然没法反驳。我把这个流水线的并行度调高了,整体时间降了。我把它写进了组内的避坑文档第一章

这个部署脚本里有硬编码的地址。我默默打开了编辑器,准备一步步验证。我发现是构建机器的磁盘满了。同事说这波操作可以写进新人培训教材

运维的三大幻觉:备份是好的、监控是正常的、这次变更不会有问题。我盯着屏幕,觉得这才是我的一天。我把这个流水线的缓存打开了,构建时间少了四成。我把它写进了组内的避坑文档第一章

构建成功不代表能部署,部署成功不代表能访问,访问成功不代表数据是对的。我想反驳,但发现他说得对。我把这个构建产物做了版本标记,回溯方便多了。我把这条经验写进了团队 wiki

我把健康检查加上了,异常时能自动回滚。我盯着屏幕沉默了十分钟。我在心里给这次的发布定了个负责人。这大概就是程序员的人生吧

持续交付的前提是持续可回滚。我愣了两秒,然后继续敲代码。我把这个部署的回滚做成了自动化,一键完成。世界瞬间清净了

自动化部署最大的风险是自动化地部署出问题。我笑了笑,决定不解释。我发现这个环境的配置和其他环境不一致。办公室安静得能听见键盘声

灰度发布切了百分之一的流量,错误率直接飙到百分之三十。我在心里把涉及的所有环节都过了一遍。我发现这个部署脚本里有硬编码的密码。幸好之前留了备份

每次大版本发布,运维的群名都会临时改成"前线指挥部"。我抬起头看了看周围,大家都一样。我在心里给这次的流程优化记了两条笔记。这大概就是程序员的人生吧