《持續(xù)交付》針對交付環(huán)節(jié),系統地介紹了什么才是交付的最佳實踐,以及如何實現這樣的最佳實踐。《持續(xù)交付》圍繞著構建、測試和部署自動化的核心,提出了“部署流水線”這樣一個模型。提供了從配置管理、源代碼控制、發(fā)布計劃、構建、測試、部署和發(fā)布等一整套解決方案,闡明了持續(xù)交付的意義、原則,以及如何在項目中使用這些實踐。棉花糖
持續(xù)交付的核心便是在構建、測試和部署自動化的基礎上,不斷的進行交付或者是交付預演,讓交付的流程得到多次的驗證,以保證在真正發(fā)布的時候,交付流程是被驗證過的,從而減小發(fā)布的風險。目前的部署發(fā)布都是手工進行,這樣會帶來三個方面的問題:第一,發(fā)布依賴于個人,如果是一個比較復雜的部署發(fā)布流程,項目就會依賴于一個部署專家,而這個部署的崗位需要調整的話,需要付出很大的學習成本。如果軟件發(fā)布時,這個部署專家正在休假,這將會給軟件的部署和發(fā)布帶來很大的風險。第二,手工部署有可能引入很多人為的錯誤,例如,部署人員如果在部署發(fā)布的時候,誤寫了一個環(huán)境配置,將導致部署發(fā)布的失敗,而這類失敗將很難追溯和發(fā)現,你有可能花了很多時間去查找代碼上的問題,到頭來結果只是配置信息誤寫了一個數字。第三,手工部署不具有可重復性,這將導致部署時間不可估算,并且大部分情況下,雖然已經為部署發(fā)布做了計劃并且留出了部署時間,但實際部署的時候還是會大大超出計劃的時間。
基于以上的分析,要實現持續(xù)交付,關鍵在于使構建、測試和部署的流程自動化,讓這個流程依賴于既定的規(guī)則而不是某一個人。這樣的規(guī)則可以是一個自動化腳本,也可以是強大的自動化管理工具。在這其中,構建、測試和部署三個不同的階段都有各自自動化的最佳實踐。其中相對比較重點的是測試階段的自動化,測試的意義在于與保證交付質量,而測試自動化則是讓持續(xù)交付產生價值的關鍵環(huán)節(jié),畢竟,就算我們的項目擁有持續(xù)部署的能力,而我們忽略測試的結果,讓項目一直處于構建或者集成失敗的狀態(tài),這樣,持續(xù)交付的流程就沒有給我們的項目帶來任何意義,而通常一個項目持續(xù)交付流程的搭建并不是一個低廉的成本。同時測試的自動化也是一個難點,這里面包括了單元測試的自動化,驗收測試的自動化,以及后續(xù)一些自動化并不能帶來很好效果的測試,例如探索性測試,易用性測試等。這其中,要實踐一個很好的驗收測試自動化將是一件艱巨而復雜的任務。糖不甩
由此可見,雖然我們知道持續(xù)交付給軟件開發(fā)所帶來的價值,他能減小我們的交付風險,很大程度的提高交付質量,但它相對比較高的門檻和成本使得大部分項目對持續(xù)交付敬而遠之,但正如說中所說,這雖然是一個痛苦的過程,也許我們并不能一次都做好所有的事情,但我們可以找出我們的瓶頸,一步一步以增量的方式來構建我們的持續(xù)交付,哪怕我們只寫了一個構建腳本,讓在這之后的代碼到二進制文件的轉化可以通過這個腳本完成,那也是一個不小的進步。到最后我們不停積累,也許有一天你會發(fā)現,也只是一個交付方式的改變,卻讓我們的軟件開發(fā)過程有了一個質的飛躍。
交付是一門藝術。
本文來自:逍遙右腦記憶 http://m.portlandfoamroofing.com/dushubiji/817438.html
相關閱讀:蕭紅《生死場》讀書筆記
《安全意識》讀書筆記200字
讀書筆記之某些電影站指數為何能過萬?
學生名家面對面分享讀書心得
海底兩萬里讀書筆記300字大全