本週咱們的討論話題有關於容器化:html
討論話題
- 話題:容器技術能爲測試工做帶來哪些好處?你們工做中有哪些實踐經驗?
- 話題描述: Devops容器化已經成爲當前測試工程師的標配技能,你目前的工做中有沒有哪些實踐經驗?你以爲爲你的測試工做帶來了哪些好處?歡迎你們來溝通交流,發表你的見解。
本週的討論話題平臺上的小夥伴們都反應有點偏難了,可是我仍是「抓」了鄭州兩家在容器化方面作的不錯的公司分享他們的經驗。前端
你們討論分享的內容
鄭州某在線公司—韓毅
其實容器技術其最大的威力就是結合流水線來去使用效果比較顯著,那麼結合測試人員的具體工做來講,經過我的經驗+對公司的相關同事進行定向調研後,結合使用經驗總結出產生的價值主要以下:node
- 從技術前瞻性來講 容器化技術做爲雲原生四大致系之一已成爲國際標準化技術標準,作爲一名合格的測試人員顯然對docker原理及其經常使用的命令掌握顯得格外重要,同時也是其我的能力的體現;
- 從DevOps交付流水線來講 我司DevOps流水線CI/CD能力由原有的依賴虛擬機切換至k8s+docker的容器雲平臺做爲依託,在這一轉變過程當中:
- 測試環境的平常搭建與維護效率提高比較明顯,如可使用集羣的公共鏡像倉庫來一鍵搭建測試環境、遇到測試資源不足的狀況能夠直接一鍵擴縮容,不只提高資源利用率 在項目須要壓測時,也能夠根據不一樣的場景,快速擴容。
- 滾動發佈的優點:傳統的虛機環境發佈模式在測試環境須要發佈升級時可能須要進行強制殺掉進程、中止服務後再進行測試,除非是有多個節點並行測試,容器化下能夠實現服務滾動升級,在不停服下一遍發佈一遍測試,避免尷尬的 hard wait;
- 最主要一點就是可以經過流水線的容器化發佈可以實現一次構建、屢次部署,既解決了因環境不一直致使問題的出現,更主要是能夠解決了不一樣環境的流水線都須要重複進行CI形成的時間和資源消耗,提高總體項目的交付效率;
~以上爲我的的拙見,但願可以拋磚引玉!謝謝!docker
鄭州某銀行—王偉亮
容器技術對測試的好處,我的總結以下:服務器
- 提高測試環境的穩定性。未使用容器,測試人員常常遇到的一個問題是,XX系統又訪問不了了。須要測試人員將問題反饋給開發或者環境管理人員進行問題定位和環境維護,環境穩定性得不到保障。使用容器後,容器的健康檢查機制,實時監控系統服務狀態,發現異常服務,容器平臺會按照規劃好的處理機制進行自維護,前端測試人員是無感知的,提高了測試環境的穩定性。除了健康檢查機制之外,容器的彈性擴容,解決了因服務器資源不足引發的測試卡頓問題,在性能方面保障了測試環境的穩定性。
- 提供隔離測試環境。測試人員應該遇到過這樣的問題,舉例:在A環境的前臺系統測試了一段時間,發現作的交易都發往了B環境的後臺系統,致使測試無效。緣由多是前臺系統的配置文件錯誤致使。容器的租戶使用了namespace(命名空間),即同一租戶下網絡相通,不一樣租戶間網絡是隔離的。若是按環境維度劃分租戶,便可杜絕上面的問題發生。即便配置文件配置錯誤,在服務啓動或者作第一筆交易的時候就會報錯,由於A、B環境的網絡是不通的,而不會在測試一段時間後,才發現環境配置錯誤,容器能夠保障各個測試環境的獨立性。
- 消除環境差別。測試人員常常遇到的一個問題,測試發現一個bug提給開發,開發拒絕,緣由多是環境問題,一樣的代碼版本,該bug在A環境下能夠復現,在B環境不能復現。由於部署版本中不包含基礎環境,有多是2套環境的軟件版本或者環境變量不一致致使。容器解決了環境差別,由於容器部署的對象不是代碼版本而是鏡像,鏡像中不只包含代碼版本,還包含了系統運行所需的基礎環境,使用一樣的鏡像版本進行測試,不會存在環境不一致的狀況。容器消除了環境差別,下降了環境類bug。
- 提高測試環境交付速率。在測試環境搭建方面,容器比傳統物理機或者虛擬機上搭建環境速率更快。1個系統手工搭建測試環境可能須要1-2天,容器搭建1h左右便可完成;在版本同步方面,由於容器採用「一次構建屢次部署」,因此節省了應用構建時間。大大提高了測試環境交付速率,節省了測試人員的等待時間。
江蘇某公司自動化測試工程師—武韜
在以前搞cicd的時候,基本全部的工程都用到了docker,好處主要有如下幾點:微信
- 環境隔離,不一樣的任務運行在不一樣的容器中,互不干擾。
- 多樣化,docker能提供不一樣的操做系統鏡像,無需使用多臺不一樣系統的機器,下降了使用成本。
- 方便移植,直接把容器打包帶走,或者放到鏡像倉庫,後面從新部署的時候就能夠開箱即用。
- 便於管理,使用k8s或者docker swarm可以很輕鬆的編排容器,快速搭建環境或者執行任務。
某公司測試工程師— 呂俊傑
好處是能夠接近完美的作到環境隔離和方便部署,弊端是維護成本和硬件成本以及外部依賴處理起來比較麻煩。網絡
個人觀點
我對容器化的理解還停留在對docker的簡單實用上,因此上面你們提到的:環境隔離等我沒有實際的經驗能夠分享,不過最近我正好在搞selenium grid,我以爲用docker去搭建hub和node真是至關方便,直接拉取鏡像,而後運行鏡像就能將selenium grid搭建起來,因此從這個角度看,容器化可以提高咱們的工做效率。性能
另外是結合咱們公司目前的服務端上線方式,一般將跟環境有關的配置和鏡像分離開,這樣的好處是上面你們提到的:一次編譯,屢次部署。好比:而後咱們在驗證rc環境功能時,構建一次,驗證經過,真正上線時就直接用以前構建好的鏡像就能夠了。測試
總結
容器化應該變成每一個工程師必備技能,只有熟悉起來,才能在平時的工做中尋找更多的場景。我後面爲你們整理容器化相關知識點,好比:docker的使用/原理、如何環境隔離等。spa
作個小小的宣傳:每週一個測試行業話題,在微信圈子(測試開發進階訓練營)、知識星球(測試開發技術圈)歡迎你們加入進來進行討論。一塊兒成長,一塊兒進步!
原文出處:https://www.cnblogs.com/zhouliweiblog/p/12450437.html