我们正在使用一堆EC2实例,未来可能会扩展(约100个实例),现在我们正在寻求使用Jenkins或AWS Code Deploy进行自动部署。
我发现我们可以使用Jenkins的AWS Code Deploy插件,但是以下两种方法有什么优缺点呢?
1)独立的AWS Code Deploy 2)使用AWS Code Deploy插件的Jenkins。
我们正在使用一堆EC2实例,未来可能会扩展(约100个实例),现在我们正在寻求使用Jenkins或AWS Code Deploy进行自动部署。
我发现我们可以使用Jenkins的AWS Code Deploy插件,但是以下两种方法有什么优缺点呢?
1)独立的AWS Code Deploy 2)使用AWS Code Deploy插件的Jenkins。
我们同时使用CodeDeploy和Jenkins来管理AWS环境部署。
它们各自担任其角色,我不认为这是一个优缺点的分析。我认为你需要两者来管理连续集成构建(Jenkins)和将经过测试的构建部署到你的EC2环境的过程(CodeDeploy)。
以下是我们的设置:
Jenkins轮询我们的SCM进行更改。当发生更改时,应用程序将被构建,归档为ZIP,并在CodeDeploy中注册为可部署的工件。我们使用Jenkins构建号标记版本 - 如app_6111.zip。每个构建都发送到我们的代码部署存储桶:s3:codedeploy-example-com / app
在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。生活很美好。