1. 程式人生 > 其它 >|NO.Z.00021|——————————|^^ 重要 ^^|——|CI/CD&Maven私服Nexus3.V02|---------------------------------------------|持續整合/持續交付/持續部署|

|NO.Z.00021|——————————|^^ 重要 ^^|——|CI/CD&Maven私服Nexus3.V02|---------------------------------------------|持續整合/持續交付/持續部署|



[CloudNative:CI/CD&Maven私服Nexus3.V01]                                                        [Applications.CloudNative] [|CI/CD入門|程式碼上線方案|持續整合/持續交付/持續部署|maven私服nexus3|nexus3上傳jar包|常見錯誤|]








一、持續整合/持續交付/持續部署
### --- 持續整合/持續交付/持續部署

~~~     軟體開發的連續方法基於自動執行指令碼,以最大限度地減少在開發應用程式時引入錯誤的可能性。
~~~     從新程式碼的開發到部署,它們需要較少的人為干預甚至根本不需要干預。
~~~     它涉及在每次小迭代中不斷構建,測試和部署程式碼更改,
~~~     從而減少基於有缺陷或失敗的先前版本開發新程式碼的機會。
~~~     # 有三種主要方法,
~~~     分別為持續整合、持續交付、持續部署,每種方法都根據最適合您的策略進行應用。
持續整合/持續交付/持續部署流程 二、持續整合:持續整合邏輯圖
### --- 持續整合概述

~~~     程式碼合併,構建,部署,測試都在一起,不斷地執行這個過程,並對結果反饋**。
~~~     持續整合(英語:Continuous integration,縮寫為 **CI**),一種軟體工程流程,將所有工程師對於軟體的工作複本,每天整合數次到共用主線(mainline)上。
~~~     這個名稱最早由葛來迪·布區(Grady Booch)在他的布區方法中提出,但是他並沒有提到要每天整合數次。之後成為極限程式設計(extreme programming,縮寫為XP)的一部分。在測試驅動開發(TDD)的作法中,通常還會搭配自動單元測試。
~~~     持續整合的提出,主要是為了解決軟體進行系統整合時面臨的各項問題,極限程式設計稱這些問題為整合地獄(integration hell)。
~~~     持續整合主要是強調開發人員提交了新程式碼之後,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新程式碼和原有程式碼能否正確地整合在一起。簡單來講就是:頻繁地(一天多次)將程式碼整合到主幹。
### --- 持續整合目的

~~~     及早發現整合錯誤且由於修訂的內容較小所以易於追蹤,這可以節省專案的時間與成本。
~~~     避免釋出日期的前一分鐘發生混亂,當每個人都會嘗試為他們所造成的那一點點不相容的版本做檢查。
~~~     當單元測試失或發生錯誤,若開發人員需要在不除錯的情況下還原始碼庫到一個沒有問題的狀態,只需要放棄一小部分的更改 (因為整合的次數頻繁)。
~~~     讓 "最新" 的程式可保持可用的狀態供測試、展示或釋出用。
~~~     頻繁的提交程式碼會促使開發人員建立模組化,低複雜性的程式碼。
~~~     防止分支大幅偏離主幹。如果不是經常整合,主幹又在不斷更新,會導致以後整合的難度變大,甚至難以整合。
三、持續交付:持續交付邏輯圖
### --- 持續交付概述

~~~     部署到測試環境、預生產環境
~~~     持續交付(英語:Continuous delivery,縮寫為 **CD**),是一種軟體工程手法,讓軟體產品的產出過程在一個短週期內完成,以保證軟體可以穩定、持續的保持在隨時可以釋出的狀況。
~~~     它的目標在於讓軟體的建置、測試與釋出變得更快以及更頻繁。這種方式可以減少軟體開發的成本與時間,減少風險。
~~~     持續交付在持續整合的基礎上,將整合後的程式碼部署到更貼近真實執行環境的「類生產環境」(production-like environments)中。比如,我們完成單元測試後,可以把程式碼部署到連線資料庫的Staging 環境中更多的測試。如果程式碼沒有問題,可以繼續手動部署到生產環境中。
四、持續部署:持續部署邏輯圖
### --- 持續部署概述

~~~     將最終產品釋出到生成環境,給使用者使用
~~~     持續部署(英語:Continuous Deployment,縮寫為 **CD**),是持續交付的下一步,
~~~     指的是程式碼通過評審以後,自動部署到生產環境。
~~~     有時候,持續部署也與持續交付混淆。
~~~     持續部署意味著所有的變更都會被自動部署到生產環境中。
~~~     持續交付意味著所有的變更都可以被部署到生產環境中,但是出於業務考慮,可以選擇不部署。
~~~     如果要實施持續部署,必須先實施持續交付。
~~~     持續部署即在持續交付的基礎上,把部署到生產環境的過程自動化。








===============================END===============================


Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart                                                                                                                                                    ——W.S.Landor



來自為知筆記(Wiz)