1. 程式人生 > >【品高雲7年】三、雲在開發測試場景的需求與挑戰

【品高雲7年】三、雲在開發測試場景的需求與挑戰

1.概述

  曾幾何時,開發測試是雲平臺切入企業市場的第一個應用場景 ,主要的原因是:一方面,這個場景下對高可用的要求不高(說白了就是,那時企業還不相信雲平臺能挑大樑、跑生產系統);另一方面,開發測試工作中環境變化比較頻繁,雲平臺的“模板”能力正好可以有效降低運維部門的重複勞動。

  而實際上,對於管理成熟度高的企業來講,IT系統在正式上線前需要經過,開發、測試、QA、UAT等多個環節,而這些環節的效率將直接影響業務上線時間和後續的質量,可以說與業務成功密切相關。

  近年來,隨著網際網路產品快速迭代模式對傳統企業研發的影響,一些新型有效的理念思想被引入,如:敏捷開發、微服務、持續繼承/交付/部署等,這些思想的背後理念和採用的新技術,也對開發測試這項工作本身提出了更高的要求。

  通過對品高雲客戶的開發測試需求場景的梳理,發現客戶的主要需求集中在:快速環境獲取、模擬生產環境、運維自動化、更低成本以及對新技術的支撐等5方面。

2. 快速獲取環境

2.1.經典場景

  • 開發/測試人員(威逼利誘):系統已經開發完了,請儘快提供測試裝置呀,不然業務上線晚了,領導該不高興了。要不你先把暫時不用的裝置給我用下?很快就還給你,到時請你吃飯。

  • 運維人員(心若止水):半天后回覆……,這個已經被其他專案組佔用了真沒空閒資源了,再說專案都是平等的,我優先給你了,別人也不高興。

  • 開發/測試人員:我需要的環境是4CPU的伺服器2臺、裡面是RedhatLinux、Websphere7.0以及Oracle11g。

  • 運維人員:硬體資源是現成的,但標準模板中沒有11g,如果要我們安裝要等2天。

2.2.需求分析

  • 企業測試資源有限,但並沒有合理分配

  • 資源有空閒,但沒有被及時回收

  • 運維人員真忙,不可能事事快速響應

  • 硬體/VM模板固化,不可能軟硬體按需搭配

2.3.雲平臺的應對策略

  • 資源統一管理,通過配額(雲中的虛擬貨幣)平衡資源分配,避免惡意佔用。

  • 專案模式管理,設定資源週期和SLA,定期回收和存檔。

  • vm硬體和軟體模板分離,開發/測試按需選擇。

這裡寫圖片描述
(圖:雲平臺中專案化的配額管理)

這裡寫圖片描述
(圖:常用軟體模板管理)

3.模擬生產網路環境

3.1.經典場景

  • 運維人員:你這個系統打不開頁面,到底有沒有認真測試呀?

  • 開發/測試人員:在測試環境中明明好好的。

  • 運維人員: 跟蹤了下錯誤,發現程式碼中連線資料庫的地方,沒有從測試改為生產IP。

  • 開發/測試人員:抱歉抱歉……馬上改。

3.2.需求分析

  • 為了統一管理和網路隔離,生產與測試環境的IP和子網不同

  • 由於子網不同,應用不能配置一套搞定

3.3.雲平臺的應對策略

  • 通過實施SDN架構,讓網路和網路功能可以“虛擬化”,並按需編排

  • 之後通過VPC功能(虛擬出多個相同的網路),讓開發測試也用生產環境的IP配置。

這裡寫圖片描述
(圖:用SDN架構構建多的虛擬網路VPC)

4.運維自動化(持續部署)

4.1.經典場景

  • 運維人員:你們測試怎麼需要8臺伺服器這麼多?

  • 開發人員:系統有負載均衡、前端、中介軟體、資料庫等多個模組需要組成叢集,短期千萬別剷掉,好不容易搭建起來的。

  • 測試人員:版本有大bug需要重新部署。

  • 開發人員:啊?那要再多等幾天……。

  • 開發人員:測試伺服器藍屏了,我覺得是你提供裝置或網路的問題

  • 運維人員:你舉出證據來?

  • 開發人員:我發現你沒有給OS打最新的驅動補丁

  • 運維人員:我只是按照你要求給環境,你又沒提這個需求

4.2.需求分析

  • 多機環境軟體多樣複雜,難以自動化保證效率

  • 人工操作出問題後,權責和問題難以界定

4.3.雲平臺的應對策略

  • 提供雲資源編排和應用自動化交付技術,讓“大”環境部署自動化

  • 顯性化交付步驟每個指令環節,讓“自動化”更透明。

這裡寫圖片描述
(圖:通過部署藍圖實現自動化運維)

5.更低成本

5.1.經典場景

  • 運維人員:領導,我們的業務欣欣向榮,明年預算需要多買一些伺服器,尤其是SAN儲存要擴容了,vm佔用空間太大了!

  • 領導:SAN這麼貴,開發測試就用單機硬碟吧

  • 運維人員:單機磁碟容易壞,測試環境出如果硬碟出問題也很麻煩

  • 領導:哦,那就用SAN吧

  • 運維人員:現在的SAN都沒空間了呀

  • 領導:賣賣賣

5.2.需求分析

  • SAN儲存可靠性高,但昂貴

  • 物理伺服器本地硬碟多便宜,但可靠性不高

  • 虛擬化之後,vm數量增多,佔用空間線性變化快,儲存成本直線上升

5.3.雲平臺的應對策略

  • 實施計算儲存一體化(超融合)架構,充分利用分散式計算+分散式儲存的價效比高的優勢

  • 實施二級儲存架構,讓SAN作為高效能業務專享、分散式作為普通業務使用,互為備份

這裡寫圖片描述
(圖:在雲節點中構建分散式儲存,並且支援多類儲存並存)

6.新技術的挑戰

6.1.經典場景

  • 開發人員:現在微服務挺流行,我們要引入這種模式,並且基於docker來做持續整合

  • 運維人員:別,我們以前沒做過這方面運維,出了問題找誰問?

  • 開發人員:docker廠商說需要新環境來部署環境

  • 運維人員:又要採購伺服器?

6.2.需求分析

  • 新技術和新思維,受限運維技能堆疊,無法敏捷響應

  • 新技術不一定能夠保證自身的安全、可靠性

  • 新架構可能需要“新環境” ,原有資產難以保護

6.3.雲平臺的應對策略

  • 雲平臺自身提供針對docker等新技術的圖形化、自動化功能,降低運維人員上手難度。

  • 可利用已有的雲基礎設施,交付新型PaaS技術。這樣底層網路、安全和彈效能力可以複用。

  • 需提供開放的API和元件架構,可以快速接入新技術

這裡寫圖片描述
(圖:雲平臺提供ECS容器服務)

7.收益總結

  隨著敏捷開發、微服務等“網際網路+”思維方式和技術的引入,企業的開發測試工作,勢必對運維技術在成本(降低)、效率(提升)、可用性(增加)和效果(顯性化)等方面提出更高的要求。而開發測試雲的引入,也通過快速的環境獲取、能夠模擬生產網路環境、運維自動化、更低的成本以及從容面對新技術的挑戰等方面,更好的輔助企業完成這一生產執行前的最後一道關鍵工序。

  當雲平臺有效支撐企業完成開發測試這一工作後,企業也開始對於雲端計算所帶來的“效率”提升建立了信心,同時由於“持續交付和繼續整合”的需要,測試階段都自動化了,那麼下一步,自然是生產執行的自動化支撐。而實際情況下,企業對雲端計算在這一場景下的需求,不僅僅是“效率”這麼簡單,而是另有更高、更苛刻的要求。