概要
本章通過將常見的發(fā)布反模式與部署流水線模式進(jìn)行對比,闡述了如何通過部署流水線模式進(jìn)行改善,說明了持續(xù)交付的原則
核心模式
- 本書的中心模式是部署流水線的烁。部署流水線是指一個應(yīng)用程序從構(gòu)建,部署,測試到發(fā)布這整個過程的自動化實(shí)現(xiàn)
- 部署流水線以持續(xù)集成過程為其理論基石鲫尊,從本質(zhì)上講,它是采納持續(xù)集成原理后的自然結(jié)果
常見的發(fā)布反模型
- 手工部署軟件
缺陷:每個步驟里都需要人為判斷的事情沦偎,因此很容易發(fā)生認(rèn)為錯誤
改善方法:高度自動化部署 - 開發(fā)完成之后才向類生產(chǎn)環(huán)境部署
缺陷:由于部署工作中的很多步驟根本沒有在試運(yùn)行環(huán)境上測試過疫向,所以常常遇到問題
改善方法:持續(xù)集成竞帽,持續(xù)部署以及持續(xù)測試 - 生產(chǎn)環(huán)境的手工配置管理
缺陷:無法回滾,構(gòu)建發(fā)布環(huán)境準(zhǔn)備時間長
改善方法:自動化部署鸿捧,持續(xù)構(gòu)建
如何實(shí)現(xiàn)目標(biāo)
- 目標(biāo):短周期屹篓,高質(zhì)量
短周期是軟件交付的重點(diǎn),保證一定質(zhì)量是基礎(chǔ) - 實(shí)現(xiàn)目標(biāo)
- 自動化匙奴。構(gòu)建堆巧,部署,測試和發(fā)布流程高度自動化
- 頻繁做泼菌。頻繁地自動化發(fā)布
- 持續(xù)集成:每次提交都對應(yīng)用程序進(jìn)行構(gòu)建并測試
- 反饋流程:指完全以自動化方式盡可能地測試每一次變更
- 通過自動化實(shí)現(xiàn)快速反饋
軟件交付的原則
- 為軟件的發(fā)布創(chuàng)建一個可重復(fù)且可靠的過程
- 將幾乎所有事情自動化
- 把所有的東西都納入版本控制
- 內(nèi)建質(zhì)量
- “DONE”以為著“已發(fā)布”
- 交付過程是每個成員的責(zé)任
- 持續(xù)改進(jìn)
總結(jié)
本章通過幾種反模式與部署流水線模式的對比谍肤,突出了部署流水線模式的優(yōu)勢。在我看來部署流水線模式的關(guān)鍵兩個詞就是持續(xù)和自動化哗伯,持續(xù)就意味無論是部署荒揣,構(gòu)建,測試焊刹,集成以及變更管理系任,都要貫穿整個開發(fā)過程,以此來降低最終發(fā)布的壓力虐块,降低風(fēng)險俩滥。而高度自動化則能夠有效提高效率,降低對于“專家”的依賴贺奠,大大降低人為導(dǎo)致的錯誤霜旧。而持續(xù)則要求開發(fā)人員頻繁且有規(guī)律的交流。