在持续交付的语境里,“流水线即代码”(Pipeline as Code,简称 PaC)已经从概念走向实现,它把整个 CI/CD 流程写进版本库,和业务代码一道接受 Git 的版本管理。
简言之,PaC 把传统上依赖 UI 配置的构建、测试、部署步骤,抽象为声明式或脚本化的文本文件(如 Jenkinsfile、.gitlab-ci.yml),让每一次流水线变更都可以被审查、回滚、对比。这样一来,流水线本身也拥有了“可追溯性”,不再是暗箱操作。
某大型电商在 2022 年将原有的手工 Jenkins UI 配置迁移为 Jenkinsfile。以前需要手动点击三十余次才能完成一次全链路部署,迁移后同样的任务只需提交一次代码,流水线在几分钟内完成构建、单元测试、容器镜像推送以及蓝绿部署。团队报告称,原本需要通宵排查的发布缺陷,现在在提交后十分钟内被自动捕获并回滚,整体发布频率提升了 3 倍。
“把流水线写进代码,等于把隐形的风险显性化。”——资深 DevOps 架构师
参与讨论
这个概念挺实用的,把流水线放代码里省了不少手工活,回滚也方便了。
我想问下,把 Jenkinsfile 放仓库后权限怎么管,谁能改会不会成新的风险?
前几天刚做了类似迁移,确实少了夜里线上修配置的焦虑,但初期调试贼折腾。
感觉能复用模板就爽,团队之间共享 stage 后省了好多重复配置,效率提升明显。
又是把隐藏问题暴露出来的好办法,不过得有人管好模板和权限,否则容易乱套。