2017-04-27 81 views
0

我不是開發人員,但現在閱讀關於CI/CD的內容。現在我想知道自動化代碼部署的最佳實踐。我讀了很多關於到目前爲止的預編譯環境的代碼部署。CI/CD:部署環境的原則

我現在的問題是,是否也是好的做法,例如,一個Jenkins工作流程,在創建新構建時從頭開始部署環境。例如,爲了測試新創建的版本,在測試之後再次刪除環境。

我知道有各種插件可以與AWS,Azure等進行交互,這些插件可用於開發部署虛擬機的工作。 也有插件觸發Puppet部署infra(作爲代碼),並且有插件可以調用架構流程。 因此,在部署代碼之前,一切都可以部署基礎架構和中間件(當然還有一些額外的工作)。

這是在現實生活中使用的東西嗎?它是如何完成的?

我的問題的背景是我的興趣在於儘可能少的點擊來實現開發的全自動化,並且由於沒有閒置機器而節省了按使用付費模式的成本。

回答

0

我現在的問題是,是否也是好的做法,例如, Jenkins工作流程,在創建新版本時從零開始部署環境

是的,從零開始部署環境是一種很好的做法。就像你說的,詹金斯和詹金斯的管道當然可以幫助你根據你的具體要求開始和協調這個過程。從頭開始部署完整的環境是自動化最難的事情之一,如果這是自動化的,這意味着許多其他事情也是自動化的,例如基礎架構,應用程序部署,應用程序配置等。

這是在現實生活中使用的東西嗎?

是的,絕對。很多商店都這樣做。您的環境越簡單,就越容易,因此,擁有一個後端應用程序的創業公司在實現這種瓦爾哈拉國家時將會遇到相對較小的麻煩。但即使是創建最複雜的環境 - 擁有數百個相互依賴的應用程序 - 也可以完全自動化;它只需要更多的時間和精力。

我的問題的背景是我對開發的全面自動化感興趣,儘可能減少點擊次數,並通過不使用閒置機器節省每次使用費模式的成本。

是的,絕對。 「啓動和銷燬」策略有利於所有託管模式(因爲在全自動化之後,沒有人需要等待某人手動提供環境),但使用公共雲的用戶在成本方面看到更大的收益(與始終如一例如,讓AWS環境運行)。

我很感激你的想法。

沒問題。我會建議,這個問題不適合stackoverflow的問題和答案甜蜜點超好,因爲它是相當一般的。在未來,我會建議與開發人員聊天,找到對此類事物感到興奮的人,並且在你們被某些事情困在草叢中時制定更具體的問題。歡迎來到stackoverflow!

0

所有正在使用的各種組合;目標是爲終端用戶提供持續的價值。我的兩分錢:

構建&發佈 這取決於你使用的是什麼。我個人建議使用該工具提供的內容。例如,VSTS(Visual Studio Team Services)提供完整的CI/CD管道。但是,如果您有一個唯有Jenkins才能提供的獨特需求,那麼您必須使用開箱即用的VSTS優惠。

IAC(基礎設施即代碼) 除了木偶等,您可以採取AZURE ARM的好處(Azure的資源管理器)的模板,以建立和破壞的環境。再次看看你有什麼工具可以使用。

付費使用 我曾親自使用什麼是Azure的開發/測試實驗室,並有通過CI/CD管道部署到該代碼。稍後在虛擬機上設置關機策略,以便它可以根據提供的時間自動啓動和自動關機。這是一個很棒的功能,可以讓您節省使用的資源和複製環境的成本。

例如,UA環境在QA簽出之前可能不需要。但是使用IAC,您可以自動快速啓動環境,然後通過一鍵式部署設置將代碼部署到UAT。