持续集成:部署发布篇
隨時隨地發(fā)布軟件
提交出用戶滿意的、高質(zhì)量的工作軟件是研發(fā)的終極目標,能夠隨時隨地提供可工作的軟件,不僅減輕“終極構建”發(fā)行噩夢在開發(fā)同學心中的陰影,也有助于項目經(jīng)理把控版本發(fā)布節(jié)奏。
那么,持續(xù)部署和發(fā)布在持續(xù)集成中應該如何執(zhí)行呢?
典型的部署工作由以下部分組成:
1)為庫中的資產(chǎn)打上標簽
2)得到干凈的環(huán)境,避免不當?shù)募俣?/p>
3)直接從版本控制庫中取出軟件,生成構建版并為他提供標簽,在目標機器上安裝
5)在生產(chǎn)環(huán)境的克隆環(huán)境中成功地執(zhí)行所有級別測試
6)創(chuàng)建構建反饋報告
7)可以利用版本控制庫中的標簽回滾構建版
通過上述步驟,可通過執(zhí)行完全自動化的構建,包括編譯、所有測試、審查、打包和部署,在所有已知環(huán)境隨時發(fā)布能工作的軟件。
為庫中資產(chǎn)打標簽
創(chuàng)建版本控制庫的標簽有利于標識并追蹤資產(chǎn),清楚地說明一組文件是在一起的。標簽使我們可追蹤一組文件的歷史,而不僅僅是單個文件歷史。
通過及時創(chuàng)建快照,可以使新版本代碼的過渡更順利。打標簽可以采取不同風格,最簡單的命名格式為:
主版本號“_”(或“.”)次版本號(如2_89 、2.89)
得到干凈的環(huán)境
在一個環(huán)境中試圖部署軟件,發(fā)現(xiàn)環(huán)境中操作系統(tǒng)、數(shù)據(jù)庫或服務器版本不一樣,是一件令人很頭疼的事情。
想要得到一個干凈的環(huán)境要刪除并重裝軟件、執(zhí)行腳本并配置值,確保環(huán)境按照期望地去工作。刪除機器上所有軟件后重新安裝的內(nèi)容有:
1)操作系統(tǒng)
2)操作系統(tǒng)的配置,網(wǎng)絡連接、用戶、防火墻等
3)軟件所需的服務組件,應用服務器、數(shù)據(jù)庫服務器、消息服務器等
4)服務器配置
5)第三方工具
6)定制的軟件
有可能只需要刪除上述其中一個內(nèi)容,刪除并重裝多少內(nèi)容取決于對風險級別的要求。這個過程自動化程度越高越好。
每個構建版本打標簽
為每一個構建版創(chuàng)建唯一的標識符,即“構建版標簽”,為二進制制品打上標簽:
1)版本控制庫中的代碼需要一個標簽
2)代碼的構建動作需要一個標簽
這些構建標簽讓大家知道在特定環(huán)境下使用了什么版本的代碼,通過這些構建標簽,缺陷、功能和新需求都可以用這一份代碼作為依據(jù)。
執(zhí)行所有測試
在持續(xù)構建過程中,可能只需要執(zhí)行部分測試,但在打包部署前必須執(zhí)行所有測試并通過。包括:單元測試、組件測試、系統(tǒng)測試、功能測試、性能測試、負載測試及其他類型測試,確保軟件已準備好交付。
除了自動化測試外,還需要由人來進行測試,因為產(chǎn)品的最終用戶是人。
所有測試審查執(zhí)行完成后,需要生成自動化構建的反饋信息表,包括本次構建版中哪些文件不同、修復了哪些缺陷、實現(xiàn)了哪些功能,讓大家理解將要發(fā)布的構建版的確切情況。
需要有的報告應當有:文件差異報告、缺陷修復報告等,這些報告可能對QA團隊有所幫助。
可回滾構建過程
能夠“撤銷”部署是有效開發(fā)中的重要一環(huán)。出現(xiàn)問題的可能性總是存在的,所以要利用構建標簽來回滾那些不該提交到版本控制庫的變更。
實踐自檢
1)系統(tǒng)擁有回滾能力嗎?
2)對候選發(fā)行版是否有完整自動化+人工測試流程?
3)是否能為不同環(huán)境配置部署,在克隆用戶環(huán)境的干凈計算機正確安裝并運行軟件?
4)部署發(fā)布是否能提供反饋報告?是否有缺陷追蹤系統(tǒng)?
5)是否能從版本控制庫中取出所有軟件資產(chǎn)并構建部署?
轉載于:https://juejin.im/post/5cbf0920f265da039a3d70df
總結
以上是生活随笔為你收集整理的持续集成:部署发布篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs编译obj给delphi用
- 下一篇: 浅谈:Wi-Fi 6的优势及应用前景