天天看點

想搞懂持續傳遞理論和實踐,你隻差這三個問題

作者:華為雲開發者聯盟
今天,我們來了解下什麼是“持續傳遞”及“持續傳遞”的實踐。

雲原生是當下IT圈非常熱門的一個詞,其目的是為了各組織在公有雲、私有雲和混合雲等新型動态環境中,建構和運作可彈性擴充的應用。雲原生包含很多技術,比如容器、微服務、DevOps、持續傳遞等,今天,我們來了解下什麼是“持續傳遞”及“持續傳遞”的實踐。

想搞懂持續傳遞理論和實踐,你隻差這三個問題

什麼是持續傳遞

持續傳遞是指,所有開發人員都在主幹上進行小批量工作,或者在短時間存在的特性分支上工作且定期向主幹合并,同時始終讓主幹保持可釋出狀态,保證代碼可以按需進行一鍵式釋出。開發人員在引入任何回歸錯誤時(包括缺陷、性能問題、安全問題、可用性問題等),都能快速得到回報。一旦發現這類問題,就立即加以解決,進而保持主幹始終處于可部署狀态。

( Wikipedia: Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time. )

持續傳遞是持續內建的延伸,将內建後的代碼部署到類生産環境,確定可以以可持續的方式快速向客戶釋出新的更改。如果代碼沒有問題,可以繼續手動部署到生産環境中。

持續傳遞流水線

随着開發模式的日益成熟,軟體開發過程中的每個環節已經越來越标準化了,但是這些環節都相對獨立,需要一個東西将他們連接配接成一個整體。

如果我們能将這些環節——建構、釋出、測試、部署有效的串聯起來,形成一套完成的持續傳遞流水線,就能提高軟體的釋出效率與品質,持續不斷的創造業務價值。

持續傳遞流水線工作流程大緻如下:

想搞懂持續傳遞理論和實踐,你隻差這三個問題
  1. 開發人員将代碼送出至代碼倉庫;
  2. 編譯建構伺服器擷取到代碼倉庫檔案變更資訊,從代碼倉庫拉取代碼,進行編譯建構,生成二進制軟體包,并将生成的軟體包儲存到制品庫。建構過程中,每一步成功與否,都需将結果回報給對應的開發人員。
  3. 建構完成後,将軟體包按需部署到測試環境,進行測試,同時測試結果回報給開發人員,
  4. 測試完成,由業務側決定是否将軟體包釋出到生産環境,如果需要釋出,則通過人工将軟體包釋出到生産環境。

當然,流程并非固定的,可以根據具體的業務需要,穿插其他流程,比如靜态代碼檢查,性能測試等。

為什麼要做持續傳遞

持續傳遞适用于幾乎任何對品質、傳遞速度和結果的可預測性有要求的低風險部署和釋出場景,包括嵌入式系統、web應用、移動應用等。開發者通過持續傳遞可以自動完成釋出過程,并且可以通過單擊按鈕随時部署應用程式。

理論上講,持續傳遞可以滿足每日一次、每周一次等固定釋出頻率,或者滿足業務需求的任何頻率,但是,如果真的想獲得持續傳遞的好處,應盡早将應用部署到生産環境,以確定可以小批次釋出,并且發現問題後及時排除故障。

實踐:通過華為雲DevCloud實作持續傳遞

代碼送出

華為雲DevCould代碼托管CodeHub是一個線上代碼倉庫,為開發者提供基于Git的線上代碼托管服務,包括代碼克隆/送出/推送/比較/合并/Code Review等功能。

開發人員可将代碼送出至CodeHub。

想搞懂持續傳遞理論和實踐,你隻差這三個問題

編譯建構

在“編譯建構”服務中,使用者可根據自己的程式設計語言,程式設計環境,自主配置所需的建構步驟,并對指定的代碼倉庫進行編譯建構。

想搞懂持續傳遞理論和實踐,你隻差這三個問題

當然華為雲DevCloud的編譯建構功能支援持續內建:送出代碼觸發執行編譯建構。

想搞懂持續傳遞理論和實踐,你隻差這三個問題

配置部署任務

部署功能與編譯建構在使用方面類似,都是根據自己的業務場景配置相應的部署任務,任務配置完成後,可根據業務需要,執行部署任務。

想搞懂持續傳遞理論和實踐,你隻差這三個問題

持續傳遞流水線

之前提到了持續傳遞流水線,華為雲DevCloud流水線功能可以将已經配置好建構,部署等服務串聯到一起,實作一鍵部署。

想搞懂持續傳遞理論和實踐,你隻差這三個問題

點選下方,第一時間了解華為雲新鮮技術~

華為雲部落格_大資料部落格_AI部落格_雲計算部落格_開發者中心-華為雲

繼續閱讀