持續整合作為一種很好的軟體工程實踐被很多團隊所採用,和其他一些先進的實踐一樣,它最終的目的一定是服務於產品的。產品的價值最終體現在使用者體驗的提公升,而這個的前提就是產品的每一次更新能夠及時地傳遞給使用者,對於運維團隊來說就是更快地在生產環境中部署最新的產品,對於研發團隊來說就是更頻繁地發布可以工作的軟體。
暫且拋開業界非常流行的devops理念,單純地從研發團隊來看,如何快速的發布對使用者有價值的軟體是重中之重。
那結合持續整合,我們又可以做些什麼呢?
先來看看我們持續整合的現狀
以上這些在持續整合初期完全沒有問題,而且這種方式也的確帶來了不少的價值,能夠幫助團隊更透明地了解產品的質量,並且快速的定位和解決問題。只是,我們可以做的更多
再來展望下持續發布的流程
整體的思路就是以持續整合流水線作為核心,把軟體發布的各個環節透明地展示給團隊,並且通過流水線來管理版本的發布流程
把持續整合融入到產品開發和發布階段,而不是簡單地搭建一套「自動化執行任務」,並充分利用構建流水線實現流程和質量的雙重把控
最後來看下某個產品初步定義的持續發布的流程
產品現狀
新功能測試在手工測試環境下進行
持續發布流水線
最終版本的對外發布也是通過手工觸發(qa人員控制)
以上的流程是根據專案/產品的需求和現狀制定的,只是一些思路可以借鑑,具體的實施一定要結合實際情況,因地制宜的開展
jenkins持續發布流水線
幾個jenkins持續發布流水線配置小tips
持續整合與灰度發布
持續整合 continuous integration,簡稱ci 是一種軟體開發實踐,即團隊開發成員經常整合它們的工作,通常每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的構建 包括編譯,發布,自動化測試 來驗證,從而盡快地發現整合錯誤。許多團隊發現這個過程可以大大...
持續整合和灰度發布
持續整合 continuous integration,簡稱ci 是一種軟體開發實踐,即團隊開發成員經常整合它們的工作,通常每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的構建 包括編譯,發布,自動化測試 來驗證,從而盡快地發現整合錯誤。許多團隊發現這個過程可以大大...
持續整合 持續交付 持續部署
持續整合 持續整合強調開發人員提交了新 之後,立刻進行構建 單元 測試。根據測試結果,我們可以確定新 和原有 能否正確地整合在一起。持續交付 持續交付在持續整合的基礎上,將整合後的 部署到更貼近真實執行環境的 類生產環境 production like environments 中。比如,我們完成單...