Deployment 詹金斯:处理许多构建配置

Deployment 詹金斯:处理许多构建配置,deployment,jenkins,continuous-integration,Deployment,Jenkins,Continuous Integration,我工作的商店正在使用jenkins进行持续集成,并使用其升级的构建插件来部署构建工件。但是,随着配置数量的增加,我们在管理此设置时遇到了问题。所以我的问题是: 如何设置一个方便的CI系统,从中可以在各种配置中部署各种工件,而无需手动编写所有可能的组合脚本? 更多详情: 假设我有构建配置(即分支)A、B和C。有三个部署目标I、J和K(比如针对不同的客户或消费者)。最后,每个部署的实例都有各种服务X、Y和Z(例如网站、后台任务和数据服务)。各种服务通常一起推广;但有时,特别是为了发布修补程序,它们不

我工作的商店正在使用jenkins进行持续集成,并使用其升级的构建插件来部署构建工件。但是,随着配置数量的增加,我们在管理此设置时遇到了问题。所以我的问题是:

如何设置一个方便的CI系统,从中可以在各种配置中部署各种工件,而无需手动编写所有可能的组合脚本?

更多详情:

假设我有构建配置(即分支)
A
B
C
。有三个部署目标
I
J
K
(比如针对不同的客户或消费者)。最后,每个部署的实例都有各种服务
X
Y
Z
(例如网站、后台任务和数据服务)。各种服务通常一起推广;但有时,特别是为了发布修补程序,它们不是

目前,我们对每种组合都有促销活动。因此,要安装一个典型的构建,我需要在config
C
上运行促销
J/X
J/Y
J/Z
。不幸的是,服务的数量正在增加,在jenkins中获得所有这些配置而不出错,而且在部署时确保没有忘记或混淆任何组件变得越来越棘手。当然,有三个以上的构建配置和三个以上的目标,所以这一切都失控了

有些选项不太管用:

  • 参数化升级以禁用各种组件。Jenkins允许参数化升级,但在您第一次升级时,这些值是固定的。我可以通过提升
    J
    并设置一些参数来消除一定程度的自由度,但是如果以后的版本出现故障,我不能只回滚出现故障的组件,我需要回滚整个部署

  • 依赖的、参数化的构建。Jenkins似乎不支持选择依赖哪个构建的参数,如果手动编写选项,“运行”选择参数当然无法工作

我真正想要的是:

  • 在生成被手动接受为准备部署后,应将其标记为准备部署,包括哪个目标的参数和哪个组件的参数

  • 安装历史记录是按每个目标的每个组件记录的,而不是(仅)按每个生成记录的


可能有一些插件可以提供帮助,但您也可能正在接近使用商业工具的适当时机。我为一家构建/部署供应商()工作,所以无论如何要对这一点持保留态度

我们通常会看到人们对单个项目有不同的构建类型(或分支),并使用相同的基本配置将这些类型(或分支)分组为具有多个“构建工作流”的单个“项目”,并对每个工作流进行一些参数化。真正简单的过程重用

不幸的是,服务的数量正在增加,在jenkins中获得所有这些配置而不出错,而且在部署时确保没有忘记或混淆任何组件变得越来越棘手。当然,有三个以上的构建配置和三个以上的目标,所以这一切都失控了


如果这里的挑战是您有多个web服务和促销(尤其是生产),包括以协调的方式在特定版本上推送大量内容,那么您就达到了我们uDeploy的标准用例。它可以方便地与詹金斯集成。它还可以很好地跟踪到哪个部署目标的版本,以及谁运行了这个过程

施用的盐粒;但是谢谢!我一定会看看我们的策略。