AWS CodeDeploy和Jenkins在使用上有哪些优缺点?

15

我们正在使用一堆EC2实例,未来可能会扩展(约100个实例),现在我们正在寻求使用Jenkins或AWS Code Deploy进行自动部署。

我发现我们可以使用Jenkins的AWS Code Deploy插件,但是以下两种方法有什么优缺点呢?

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

1个回答

22

我们同时使用CodeDeploy和Jenkins来管理AWS环境部署。

它们各自担任其角色,我不认为这是一个优缺点的分析。我认为你需要两者来管理连续集成构建(Jenkins)和将经过测试的构建部署到你的EC2环境的过程(CodeDeploy)。

以下是我们的设置:

  1. Jenkins轮询我们的SCM进行更改。当发生更改时,应用程序将被构建,归档为ZIP,并在CodeDeploy中注册为可部署的工件。我们使用Jenkins构建号标记版本 - 如app_6111.zip。每个构建都发送到我们的代码部署存储桶:s3:codedeploy-example-com / app

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

对我们而言,Jenkins是现代DevOps和持续集成、测试和部署的瑞士军刀。它是我们管理构建、测试和构建部署工件的骨干。我们可以与所有AWS服务集成,例如S3、CodeDeploy、Elastic Beanstalk等。

回答您的具体问题:

我发现我们可以使用Jenkins的AWS Code Deploy插件,但是以下方法有什么优缺点?

1)独立的AWS Code Deploy

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

2)带有AWS Code Deploy插件的Jenkins。

这是我认为最好的方法。同时使用这两个工具:构建已知且经过测试的版本,然后将部署注册到CodeDeploy。生活很美好。


8
AWS最近发布了一款名为CodeBuild的工具,填补了之前的空白。我还没有使用过,但其概念是你可以在AWS上完成所有事情。从代码存储库(CodeCommit)、测试和构建(CodeBuild)、部署(CodeDeploy)到最终的EC2。 - Anthony Tsang
1
AWS现在也有CopePipeline,它提供了类似于Jenkins/TeamCity的功能。 - bikeman868

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接