问题 使用AWS Code Deploy与Jenkins有什么优缺点?


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

我发现我们可以在Jenkins中使用AWS Code部署插件,但是有哪些优点和缺点?

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


1093
2017-07-06 06:40


起源



答案:


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

他们每个人都有自己的角色,我不认为这是一个pro / con分析。我相信你需要  管理持续集成构建(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部署到测试服务器。

对我们来说,詹金斯是一支现代化的瑞士军刀,不断整合,测试和部署。它是我们可以管理构建,测试和构建部署工件的主干。我们可以与所有AWS服务集成,例如S3,CodeDeploy,Elastic Beanstalk等。

回答您的具体问题:

我发现我们可以在Jenkins中使用AWS Code部署插件,但是什么   是以下的利弊?

1)独立的AWS Code Deploy 

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

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

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


13
2017-07-07 14:29



对于仍在阅读答案的人,AWS最近发布了一个工具CodeBuild来填补这个空白区域。我还没有使用它,但概念是你可以在AWS上做任何事情。从代码库(CodeCommit),测试和构建(CodeBuild),部署(CodeDeploy)到最终结束EC2。 - Anthony Tsang
...现在AWS也有CopePipeline,它提供与Jenkins / TeamCity类似的功能 - bikeman868


答案:


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

他们每个人都有自己的角色,我不认为这是一个pro / con分析。我相信你需要  管理持续集成构建(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部署到测试服务器。

对我们来说,詹金斯是一支现代化的瑞士军刀,不断整合,测试和部署。它是我们可以管理构建,测试和构建部署工件的主干。我们可以与所有AWS服务集成,例如S3,CodeDeploy,Elastic Beanstalk等。

回答您的具体问题:

我发现我们可以在Jenkins中使用AWS Code部署插件,但是什么   是以下的利弊?

1)独立的AWS Code Deploy 

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

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

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


13
2017-07-07 14:29



对于仍在阅读答案的人,AWS最近发布了一个工具CodeBuild来填补这个空白区域。我还没有使用它,但概念是你可以在AWS上做任何事情。从代码库(CodeCommit),测试和构建(CodeBuild),部署(CodeDeploy)到最终结束EC2。 - Anthony Tsang
...现在AWS也有CopePipeline,它提供与Jenkins / TeamCity类似的功能 - bikeman868


各种开发人员检查这个stackshare比较。很多事情都会变得清晰。

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


3
2017-07-06 08:48



我需要部署一个node.js应用程序,我可以使用Jenkins和AWS代码部署来部署它。 AWS代码部署仅支持AWS体系结构,因此将来我可能需要部署可能不会由AWS代码部署提供的NodeJs应用程序。 - user2379271
是的,您可以使用它们进行部署。 - error2007s
所以留下开源部分和其他功能,我想知道在一个nodejs应用程序的上下文中,AWS Code部署可能会失败,因为我相信Jenkins将能够处理所有事情(我将使用AWS代码部署插件与Jenkins) - user2379271
使用Jenkins可以实现的代码部署不会失败,您可以使用代码部署来实现相同的功能。我已经为不同的客户端设置了几乎18个node.js的应用程序8正在使用代码部署从未对代码部署有任何问题。 - error2007s
我对Jenkins有相当多的想法,但是AWS代码部署的新手。使用Jenkins,我需要处理实例,安全性和其他事情,这是AWS代码部署所不需要的。但是,我没有任何理由选择一个而不是另一个。 - user2379271