Jenkins中deployment与promotion术语的区别及正确用法问询
在Jenkins制品流程中Deployment与Promotion的区别与术语规范
1. 术语能否互换?
绝对不能。二者是CI/CD流水线中完全不同的两个环节,职责和操作对象都有本质区别。
2. 核心区别
- Deployment(部署):聚焦于让制品“活起来”——将已经构建完成的制品(如Jar包、Docker镜像)交付到指定的运行环境(Dev/Test/Prod),并完成服务启动、配置加载等操作,最终让服务可以对外提供功能。你提到的“在Dev环境启动服务”就是典型的Deployment操作。
- Promotion(晋升):聚焦于制品的“状态升级”——把Artifactory中某个仓库的制品迁移到更高等级的仓库(比如从快照仓库到测试仓库),或者给制品打上“已通过Dev验证”这类质量标记,目的是确认制品的质量达标,具备进入下一个环节的资格。比如将Artifactory里的Dev制品迁移到测试环境仓库,就是Promotion操作。
3. Promotion是否是Deployment的结果?
没有必然的因果关系,二者的顺序可以灵活调整:
- 可以先Promotion再Deployment:先把制品从Dev仓库晋升到Test仓库,再部署到Test环境运行。
- 也可以先Deployment再Promotion:先将Dev仓库的制品部署到Dev环境验证,确认没问题后再晋升到Test仓库,为后续部署做准备。
- 甚至存在Promotion后暂不Deployment的场景:比如把制品晋升到正式仓库后,等待业务窗口再部署到生产环境。
4. Jenkins中的正确术语指代
- Deployment:Jenkins流水线中直接用这个术语指代“部署到目标环境并启动服务”的阶段,通常通过
sh执行自定义部署脚本,或者借助Kubernetes Plugin、Deploy to Container Plugin等专用插件完成操作。 - Promotion:在与Artifactory结合的流程中,特指“制品仓库迁移/状态标记”操作,Jenkins可以通过Artifactory Plugin提供的
promoteBuild流水线步骤来实现,比如将构建产出的制品从快照仓库晋升到正式释放仓库。
内容的提问来源于stack exchange,提问作者Pet
相关产品推荐
相关产品推荐

