我应该为每个微服务创建一个Jenkins工作吗?

时间:2018-03-10 11:34:11

标签: jenkins continuous-integration continuous-deployment continuous-delivery

我有4个微服务,所有这些都是在同一个技术堆栈(Java Dropwizard,MySQL)上构建的,我试图为它们创建一个CI / CD管道,但问题是:

为每个微服务都有一个单独的Jenkins工作是一个好主意吗?或者最好只有一个为所有微服务参数化的作业?

我需要在CI / CD中运行的是:

  1. clean build
  2. 单元测试
  3. 集成测试
  4. 负载测试
  5. 构建docker容器和图像
  6. 释放
  7. 推送工件
  8. 部署

2 个答案:

答案 0 :(得分:0)

为每个项目创建一个作业,并使用MultiJob插件将这些作业添加到构建管道中是一种好方法。然后,您可以触发父作业以启动管道。

答案 1 :(得分:0)

我将使用声明性管道,您可以在其中在存储库中的本地Jenkinsfile中定义逻辑。

使用Jenkins,您可以拥有一个“主” Jenkins文件和/或可以通过调用上游项目来继承的项目。这将使您有效地共享您的指令并减少重复。

由于Jenkins的工作原理,最终您必须为每个存储库/目的创建一个单独的项目,或者(建议)使用一个“主”项目,让您传递项目名称,git repo之类的信息网址,特定的应用程序变量和值等等。