持續(xù)交付(第五章)—部署流水線解析

在上一章中,學到了關(guān)于測試的一些策略實現(xiàn),作者從兩個維度對測試進行劃分,一個是業(yè)務導向,還是技術(shù)導向,另一個維度是為了支持開發(fā)過程,還是為了對項目進行評價。在這一章中,作者向我們介紹了部署流水線。

持續(xù)集成

什么是部署流水線

從某種抽象層次上講,部署流水線是指軟件從版本控制庫到用戶手中這一過程的自動化表現(xiàn)形式。部署流水線是對軟件從設計,開發(fā),構(gòu)建,測試等過程的建模,在持續(xù)集成和發(fā)布管理工具上,它體現(xiàn)為支持查看并控制流程,包括每次變更從被提交到版本庫控制開始,直至通過各類測試和部署,再到發(fā)布給用戶的過程。

部署流水線的相關(guān)實踐

  • 只生成一次二進制包
  • 對不同環(huán)境采用同一部署方式
  • 對部署進行冒煙測試
  • 向生產(chǎn)環(huán)境的副本中部署
  • 每次變更都要立即在流水線中傳遞
  • 只要有環(huán)節(jié)失敗,就停止整個流水線

提交階段

我們不想在那些明顯有問題的版本上花費時間和精力,所以當開發(fā)人員提交變更到版本控制系統(tǒng)后,我們希望盡快地評估一下這個版本,讓開發(fā)人員快速得到反饋,所以我們需要踐行提交階段的最佳實踐,開發(fā)人員需要一直等到部署流水線的提交階段成功完成,如果失敗了,開發(fā)人員要么快速修復問題,要么將提交的代碼回滾。

部署流水線的測試

部署流水線中很大一部分就是測試,跑各種各樣的測試,快速獲取反饋進行修改。全面的提交測試套件對于發(fā)現(xiàn)許多錯誤來說,是非常優(yōu)秀的試金石,在這個試金石中,我們的測試有,單元測試,集成測試,組件測試,配置測試,冒煙測試,手工測試,探索性測試等等,從各個方面幫助我們?nèi)ケM在發(fā)現(xiàn)在項目中潛在的問題。

實現(xiàn)一個部署流水線

無論是從零創(chuàng)建一個項目,還是想為已有的系統(tǒng)創(chuàng)建一個自動化的流水線,通常都應該使用增量式的方法來實現(xiàn)部署流程。建立一個完整的流水線的策略,步驟如下:

  • 對價值流的建模,并創(chuàng)建一個可工作的簡單框架
  • 將構(gòu)建和部署自動化
  • 將單元測試和代碼分析自動化
  • 將驗收測試自動化
  • 將發(fā)布自動化

總結(jié)

我的收獲

  • 部署流水線的前提就是項目自動化,測試的完備性,反饋的及時性,以及團隊成員對于持續(xù)交付的相關(guān)實踐。
  • 增量式開發(fā)

我的疑惑

  • 價值流建模的可行性怎么樣?團隊可以按照原有的日期按時完成么
  • 冒煙測試是測試哪方面的?
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 部署流水線 出現(xiàn)原因在軟件的發(fā)布過程中,很多浪費來自于測試和運維環(huán)節(jié)。解決方案就是采取一種更完善的端到端的方法來交...
    落花的季節(jié)閱讀 1,461評論 0 0
  • 一 什么是部署流水線 部署流水線是指軟件從版本控制庫到用戶手中這一過程的自動化表現(xiàn)形式。我們知道軟件的每一次變更都...
    司鑫閱讀 602評論 0 1
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,591評論 19 139
  • 基本的部署流水線就是從提交開始逐步通過每個測試階段的自動化的過程。越往前的階段有更快的反應速度,越往后走,信心不斷...
    大飯團子閱讀 1,711評論 0 1
  • 今天,帶我學車的朋友說,很久沒見你了。立夏了,準備來游泳吧。不是一直想學么?去年趕上了尾巴,今年重新開始吧。 對于...
    格格blue0229閱讀 284評論 2 1

友情鏈接更多精彩內(nèi)容