接着上一篇的內容,咱們有講到「持續交付是文化,自動化是基石,垮職能團隊協做是根本」,本文將以軟文的形式介紹持續交付平臺WiseBuild結合Rancher容器管理平臺咱們是如何進行跨職能團隊協做的。docker
文末有彩蛋!文末有彩蛋!文末有彩蛋!編程
使用Rancher理由很簡單,Rancher是目前市面上惟一一個能知足開箱即用的容器管理平臺,同時可以支持多種編排引擎,如Rancher本身的Cattle,Google的K8S,以及Docker官方的Swarm做爲容器編排引擎。同時Rancher提供的Catalog應用商店可以幫助研發團隊自主建立所須要的服務實例。框架
基於Rancher提供的Environment咱們分別爲開發,測試,以及運維建立了獨立的環境。確保不一樣職能人員之間對於環境的隔離性需求。運維
創建持續交付流水線的核心問題是如何定義企業的軟件交付價值流動。編程語言
正如上文所說,建立持續交付流水線的本質就是定義軟件的交付的價值流動,反應正式的軟件交付流程。價值的流動則涉及到團隊中各個職能的成員的高度協同。工具
基於容器的持續交付實踐當中以鏡像做爲在不一樣職能人員之間的價值傳遞物。單元測試
開發人員:頻繁提交持續集成,經過持續的編譯,打包,測試,鏡像構建,自動化驗收測試等環節產生可測試的候選鏡像列表(如:0.1-dev)。測試
以源碼倉庫爲起點,開發人員頻繁提交,每一次代碼變動都要當即在流水線中傳遞;WiseBuild持續交付平臺支持定時週期觸發,代碼變動檢查以及Webhook等多種觸發方式。ui
提交測試階段從技術角度斷言整個系統是可運行的,該階段會進行編譯,運行一套單元測試,並進行代碼質量分析,WiseBuild持續交付平臺設計遵循「Build In Docker, Build With Docker, Run With Docker" 基於容器技術全面減小對於異構構建環境的支持,而且默認提供了當前主流的編程語言的編譯,以及測試支持。同時用戶能夠根據須要在持續交付流水線中集成Sonarqube進行代碼的質量跟蹤和管理。阿里雲
自動化測試階段,從功能交付斷言整個系統是可以知足客戶規範和要求的,WiseBuild持續交付平臺支持基於Rancher或者Rancher Compose在柳樹縣中自動部署鏡像到Rancher平臺,同時內置了Selenium,Robotframework,Cucumber等主流自動化測試工具和框架。
手動測試階段,當新的代碼提交部署到rancher環境後,開發人員同時能夠快速的進行手動測試,確保新提交的代碼在測試環境中是可用的,而且知足相關的功能需求。
鏡像構建,當代碼提交經過了整個流水線的持續驗證後將會產生響應版本的鏡像文件。
基於流水線中的過程質量和代碼質量數據,團隊能夠快速處理典型的代碼質量問題,避免技術債務的產生。
總而言之,開發流水線能夠幫助團隊頻繁的進行代碼集成而且經過單元測試,代碼靜態分析,自動化驗收測試等技術實際幫助開發人員快速的發現和解決問題,而且產生可待測試的鏡像列表。
測試人員:從候選測試鏡像列表中,選擇須要測試的目標鏡像,標記爲測試版本(將0.1-dev標記爲0.1-test),而且將待測試鏡像自動部署到驗收測試環境,完成手動探索性測試,對於已測試完成的鏡像標記爲預發佈版本(0.1-test 標記爲 0.1-beta)。
在待測試鏡像列表中選擇鏡像,發佈到開發用Docker Registry倉庫。
對於測試人員而言,流水線的起點則變爲待測試的鏡像列表,基於WiseBuild建立Docker類型流水線,能夠支持測試人員快速建立測試環境而且運行相關的自動化測試腳本,同時知足手動探索性測試的需求。
支持使用自動化觸發方式,如‘1.0.*-beta’的形式,當監聽docker registry有符合規則的鏡像產生後自動觸發流水線。
支持手動觸發,測試猿人能夠手動選擇服務該規則的鏡像進行手動觸發,一鍵準備測試環境,運行自動化驗收測試等。
運維人員:從預發佈鏡像列表中選擇鏡像部署到預發佈環境,而且在驗證經過後標記爲release版本(如將0.1-beta 標記爲 0.1-release),而且發佈到生產環境。
與自動化測試流水線相同,運維人員能夠創建獨立的部署流水線,從待發布的鏡像列表中選擇鏡像發佈到生產環境Registry中,而且設置流水線的自動或者手動觸發,實現對於預生產環境的一鍵部署。
WiseBuild持續交付平臺支持對接基於Dokcer Registry標準的鏡像倉庫服務,包括Docker Hub, Docker Registry, Habor,阿里雲等等。
在基於容器的持續交付實現方案當中,咱們以鏡像爲價值傳遞的單元,經過鏡像的持續測試以及驗證,完成鏡像從開發,測試到可發佈的狀態轉變,完成軟件的交付流程。
開發人員頻繁提交,持續集成,持續反饋。
測試人員自服務部署一鍵準備測試環境。
運維人員執行一鍵式部署預生產環境。