8

我们正在使用一堆可能在未来扩展的EC2实例(大约100个实例),现在我们正在使用Jenkins或AWS Code deploy部署自动部署。使用AWS Code Deploy Vs Jenkins有什么优缺点?

我发现我们可以在Jenkins上使用AWS Code deploy插件,但是下面的优点和缺点是什么?

1)独立的AWS代码部署 2)詹金斯与AWS Code Deploy插件。

回答

10

我们使用CodeDeploy和詹金斯既要管理部署到我们的AWS环境。

他们每个人都有他们的角色,我不认为它是一个亲/分析。我相信你需要BOTH来管理持续集成构建(詹金斯)和部署测试过程中建立到您的EC2环境(CodeDeploy)

这里是我们的设置:

  1. 詹金斯民调我们的供应链管理换了。发生更改时,应用程序将生成并存档到ZIP中,并在CodeDeploy中注册为可部署的工件。我们用Jenkins内部版本号来标记版本 - 比如说app_6111.zip。每个版本都发送到我们的代码部署桶中:s3:codedeploy-example-com/app

  2. 在CodeDeploy中,我们有一个应用程序配置,每个环境都有部署组,例如Testing,Production。由于我们使用#1,我们所有的构建都随时可以立即部署。因此,只需一次或两次点击,我们就可以将修订版app_6111.zip部署到测试服务器上。

对我们来说,詹金斯是现代devops和持续集成,测试和部署的瑞士军刀。它是我们可以管理构建,测试和构建部署工件的主干。我们可以与所有AWS服务,如S3,CodeDeploy,弹性魔豆等整合

为了回答您的具体问题:

我发现,我们可以使用AWS代码部署与詹金斯插件,但什么 是以下的优点和缺点?

1)独立的AWS代码部署

一个独立的CodeDeploy不会与你的构建过程集成。它必须配置为手动上传的静态S3工件或Github URL。 Github很好,但没有构建的概念 - 它从主人或其他分支部署。例如,您无法轻松回滚到已知版本。测试没有被整合。无法管理任务/作业。

2)使用AWS Code Deploy插件的Jenkins。

这是首选的方法恕我直言。使用这两种工具。构建已知和测试版本,然后将部署注册到CodeDeploy。生活很好。

+3

对于任何仍在阅读答案的人,AWS最近都发布了一个工具CodeBuild来填充这个空白空间。我没有使用它,但概念是你可以在AWS上做所有事情。从代码库(CodeCommit),测试和构建(CodeBuild),部署(CodeDeploy)到最终的EC2。 –

3

查看各个开发人员的堆栈共享比较。许多事情会变得清晰。

http://stackshare.io/stackups/aws-codedeploy-vs-jenkins

+0

我需要部署node.js应用程序,我可以使用Jenkins和AWS代码部署来部署它。 AWS代码部署仅支持AWS架构,因此未来可能需要部署NodeJs应用程序,而AWS代码部署可能不提供这些应用程序。 – user2379271

+0

是的,你可以使用两者来部署它。 – error2007s

+0

因此,我想知道在一个nodejs应用程序的上下文中,AWS Code Deployment可能会失败,因为我相信Jenkins将能够处理所有事情(我将在Jenkins中使用AWS代码部署插件) – user2379271