持續交付(Continuous Delivery)和持續部署(Continuous Deployment)的區別

類別: IT

我在上週三寫的這條微博。它在微博上激起了活躍的討論,週四的時候已經被轉發了87次,獲得了25個贊。

很顯然,這是個很火的話題,很多人對持續交付和持續部署之間的區別很困惑。有必要用超出微博字數限制的文字來說說這個概念。

持續交付(Continuous Delivery)是一系列的開發實踐方法,用來確保讓程式碼能夠快速、安全的部署到產品環境中,它通過將每一次改動都提交到一個模擬產品環境中,使用嚴格的自動化測試,確保業務應用和服務能符合預期。因為使用完全的自動化過程來把每個變更自動的提交到測試環境中,所以當業務開發完成時,你有信心只需要按一次按鈕就能將應用安全的部署到產品環境中。

持續部署(Continuous deployment)是持續交付的更高階段:所有通過了自動化測試的改動都自動的部署到產品環境裡。大多數的公司如果沒有制度的約束或其它條件的影響,都應該以持續部署為目標。

有很多的業務場景裡,一種業務需要等待另外的功能特徵出現才能上線,這使得持續部署成為不可能。雖然使用功能切換能解決很多這樣的情況,但並不是每次都會這樣。所以,持續部署是否適合你的公司是基於你們的業務需求——而不是技術限制。

雖然持續部署並不適合所有公司,但持續交付絕對應該是每個公司需要追求的目標。只有當你能夠持續交付你的程式碼時,你才能有信心通過點選“go”按鈕,在幾分鐘內讓你的修改提交給客戶、服務於客戶。才有信心在任何時候——一旦業務允許——可以立即點這個按鈕。

持續交付(Continuous Delivery)和持續部署(Continuous Deployment)的區別原文請看這裡