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