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