1.持續整合
持續整合強調開發人員提交了新**之後,立刻進行構建、(單元)測試。根據測試結果,我們可以確定新**和原有**能否正確地整合在一起。
2.持續交付
持續交付在持續整合的基礎上,將整合後的**部署到更貼近真實執行的環境(類生產環境,production-like environments)中。比如,我們完成單元測試後,可以把**部署到連線資料庫的staging環境中更多的測試。如果**沒有問題,可以繼續手動部署到生產環境中。
3.持續部署
持續部署則是在持續交付的基礎上,把部署到生產環境的過程自動化。
舉個栗子:
你開了一家公司,僱了很多碼農在一起寫**。
你說,要用 gitlab 做**管理。當乙個碼農在自己的開發機上寫好**之後,要合併到主分支裡,他首先要發起乙個 merge request(mr),這會在乙個特定伺服器上觸發一次對他提交的**的檢查,包括**格式檢查、依賴關係檢查以及單元測試等一系列檢查,等通過了全部檢查,他就可以將**合併到主分支,否則他需要按照錯誤提示進行修改,然後發起新一輪的檢查。然後呢,每天晚上 10 點會有乙個定時任務從主分支上拿最新的**,進行編譯打包,最後將打包好的程式推送到乙個伺服器上儲存,這個伺服器叫做 artifact repository。
你又說,要每天將當天打包好的程式部署到測試環境上。也就是說,乙個碼農晚上 10 點之前提交了**,那他第二天就可以在測試環境上看到自己新提交的**的效果了。
你還說,每乙個月要在生產環境上部署乙個穩定的發布版本。
以上三段內容是乙個軟體從開發到部署的流程的簡單描述,也分別對應持續整合、持續交付以及持續部署。
總結:整合、交付和部署是軟體開發到發布流程中的不同階段。那所謂的持續是相對於過去的流程提出的。過去的流程是所有人寫好**之後再進行合併,然後再進行測試,最後再發布。這種流程會把風險堆到軟體發布前的最後階段。那持續的概念就是,做一點就馬上遞交給下乙個流程,這樣能夠盡早地發現並解決問題。
實戰mysql MYSQL實戰
基礎架構 更新操作 日誌模組 redo log 和 binlog 兩階段提交 prepare commit 事務隔離 讀未提交 別人改資料的事務尚未提交,我在我的事務中也能讀到。讀已提交 別人改資料的事務已經提交,我在我的事務中才能讀到。可重複讀 別人改資料的事務已經提交,我在我的事務中也不去讀。序...
Python實戰之pymysql模組實戰
安裝 pip3 install pymysql author burgess zheng usr bin env python coding utf 8 import pymysql 建立連線 conn pymysql.connect host 10.0.0.150 port 3306,user p...
frida 實戰 Frida脫殼實戰記錄
只能祭出傳聞已久的frida,果然瞬間脫殼獲取了幾個dex檔案,一番搜尋收集了很多個介面和後端服務的真實ip。腦瓜不好用,抓緊記錄一下。用到的工具 adb connect 127.0.0.1 6555 adb shell adb forward tcp 27042 tcp 27042 adb for...