愛奇藝QA測試環境管理平臺初探

背景
測試環境是項目測試的關鍵環節,其部署效率、穩定性、連通性直接影響項目的迭代效率。在測試環節中測試環境一直是行業中的較爲薄弱一環,面臨很多的問題,比如:

  • 搭建成本高: 複雜業務的梳理成本高;搭建測試環境,需要經過申請資源、部署組件、連通性測試等一系列流程,路徑長、成本高;搭建完成後需要持續人力投入等;
  • 複製成本高: 絕大部分系統的測試環境無法一鍵0成本複製,也無法快速滿足多項目多套測試環境的需求,影響項目進度;
  • 聯調成本高: 涉及多個系統的聯調項目,整體可用性較差,經常阻礙項目,且一旦出問題,排查耗時;
  • 使用成本高: 無法快速找到所依賴系統的測試環境,尤其是站在客戶端角度。
    測試環境的治理已經迫在眉睫,所以,愛奇藝測試團隊立項測試環境平臺, 實現如下幾個目標
  1. 統一測試環境管理方案,整合資源,減少各業務環境的開發、維護成本;
  2. 解決各業務聯調測試環境部署、問題定位等帶來的人力投入;
  3. 方便用戶使用,按需隨時使用,減少等待、使用成本。

測試環境管理要素

面對各業務的不同測試環境部署流程、不同類型系統架構,如何提煉通用的測試環境管理方案,是首要解決的難點。因此測試團隊提煉出測試環境的通用性部署流程,從下圖中可以看出,測試環境平臺需要支撐的關鍵能力包括: 支持人工梳理的業務拓撲及部署腳本的集中管理和對用戶透明的資源使用,以及方便的動態部署和問題自動定位、恢復。

愛奇藝測試環境管理方案

測試環境梳理流程清晰後,聚焦到測試環境部署環節提煉出不同種類系統的測試環境拓撲,並得出了測試環境管理的五要素:存儲、中間件、應用、組件、依賴,而其中,應用就是測試環境管理的最小單元。

愛奇藝測試環境拓撲

測試環境平臺方案

綜合測試環境的痛點、治理目標、核心要素,我們提煉出了愛奇藝測試環境平臺的核心設計理念: 用戶一次性梳理測試環境核心要素,0成本任意搭建測試環境,測試環境問題自動定位和恢復。 並提出了測試環境產品方案,如下:

愛奇藝測試平臺產品方案

難點攻堅

隨着測試環境平臺產品架構的明確,後續的落地也遇到了很多難點,我們將一些關鍵問題進行了詳細解讀。

一、資源的高效管理

搭建測試環境依賴衆多資源,諸如虛機、容器、mysql、redis、rocketMQ、zookeeper等,如果全部由測試環境平臺來統一管理,那將是一項非常大的維護成本,結合行業經驗,我們採取了一種合作模式:與公司各資源管理的服務合作,各服務負責提供各類資源的動態創建、更新、銷燬機制,測試環境平臺統一集成,並創建自己的資源池,預留小部分資源來支撐實時部署,同時可根據部署資源需求動態擴容資源池,如下圖所示:

二、測試環境的安全保障

各業務之前測試環境全部部署在生產網絡下,存在干擾線上服務的安全隱患,此次測試環境治理目標之一也包括將QA測試環境部署在隔離網絡。在與公司服務治理團隊的一起努力下,共建了測試環境遷移整體方案,已完成一期QA測試環境的遷移試點,同時也加速了RD測試環境的隔離遷移進度。

隔離網絡方案如下圖所示:

隔離網絡方案

目前,測試環境平臺支持同時在生產區、測試區部署測試環境,我們的最終目標是測試環境只在測試區部署。

三、測試環境的高效部署

隨着越來越多的系統接入測試環境平臺,整體性能逐漸喫緊,單個應用部署耗時最高達到了60分鐘,所以測試團隊將之前架構進行優化,逐步拆解成了微服務架構,並通過削峯、緩存、重試、及時丟棄的組合方案,逐步將單個應用部署耗時由最高60分鐘降低到10分鐘、平均4分鐘,部署成功率由60%提升到95%以上,基本上搭建一套測試環境在5分鐘左右完成。

同時,爲降低不同類型業務、系統架構的接入成本以及平臺開發成本,採用工作流模式,靈活編排不同的測試環境部署流程。

四、資源的高利用率

一套測試環境搭建完成後,首要目標是保證該套測試環境連通、可用,因爲不能連接線上服務,所以在部署完成所需的系統後,所依賴的系統如何部署,直接決定了資源的利用率。因此,我們採取智能鏈路判斷的方案,一方面保證新的測試環境連通、可用,一方面最大程度複用現有的基準測試環境保證資源利用率最大化。

當前已具備一級依賴的判斷,可儘量複用基準測試環境,下一步將進行全鏈路的智能環路判斷,可完整保證測試環境連通、可用,同時資源利用率相對最大化。

五、測試環境建設標準明確

面對各業務測試環境錯綜複雜的現狀,一步到位完成高質量的測試環境搭建可行性較低,再綜合考慮測試環境的治理目的是解決項目測試的block問題,我們制定了QA測試環境成熟度:

  1. 環境搭建能力(不具備,部分可搭建,全部自主搭建)
  2. 數據管理能力(不具備,部分可搭建,全部自主搭建)
  3. 問題定位與恢復能力(天級,小時級,分鐘級,秒級)
  4. 環境安全程度(與線上混用,邏輯隔離,物理隔離)

環境成熟度一方面可以幫助各業務QA摸清現狀,一方面可以幫助更準確的制定測試環境治理的短、中、長期目標,同時我們聯合端QA,從上到下倒退關鍵鏈路系統的測試環境治理。

經過以上內容的講解,我們將環境平臺的整體架構呈現如下:

平臺功能簡介

平臺初期定位是解決QA同學的測試環境高成本問題,當前也有部分RD同學在使用,實際上,同一個系統,無論是RD還是QA,只要有一方接入環境平臺,另一方都可以0成本使用,此處關鍵的功能就是模板,即一次性組裝應用,可重複使用0成本搭建多套測試環境,如下圖:

未來規劃

目前環境平臺日均部署次數約1000次,部署成功率高於95%,平均部署耗時4分鐘,支撐了愛奇藝會員、播放、支付等關鍵業務線QA的100+系統、700+應用的日常測試環境部署。

測試環境管理平臺初見成效,最重要的是實現了單業務測試環境的快速搭建複製,保證了業務自身的迭代效率和質量。後續規劃主要圍繞跨業務測試環境的快速部署,爲項目聯調、集成測試驗收提供堅實基礎。關鍵要點如下:

  • 基於業務鏈路的交互測試環境一鍵部署;
  • 最小鏈路部署,保證環境聯通性的同時,減少資源使用;
  • 健康檢查,智能運維,自動恢復,進一步保證測試環境的整體可用性和穩定性。

本文轉載自公衆號愛奇藝技術產品團隊(ID:iQIYI-TP)。

原文鏈接

愛奇藝QA測試環境管理平臺初探

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章