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