Categories
程式開發

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台


2020年4月7日,阿里媽媽技術質量團隊開源了線上測試平台MagicOTP和性能測試平台ACP。兩個平台經過阿里巴巴廣告業務的長期錘煉,在大規模廣告搜索、推薦系統的線上測試和性能測試上深耕多年,內置了面向廣告搜索、推薦領域的工業級線上測試和性能測試解決方案。

一、ACP(alimama-common-performance-platform)

概述

ACP(alimama-common-performance-platform)平台是阿里媽媽的全鏈路智能性能測試平台。區別於業界一些開源的工具和平台,ACP平台將有監督建模、無監督建模、混沌工程等智能化技術引入到性能測試領域;並將其打造為高性能通用的基礎組件。平台提供了壓測query智能抽取、壓測流程智能調控、系統指標智能監控三大智能化功能;在阿里媽媽實現了無人值守的智能化性能測試。

(github地址:https://github.com/alibaba/alimama-common-performance-platform-acp )

系統核心能力

  1. C++高性能壓測工具

ACP提供了SYNC同步壓測和ASYNC異步壓測兩種模式;同步壓測的工作模式是阻塞式發送,異步壓測採用非阻塞並發模式,目前開源版本支持同步壓測模式。

Chain-Line鍊式的線程管理系統,智能調整內部線程和並發數,最終快速達到指定的qps。

基於Linux內核的消息隊列的監聽服務,在不需要重啟進程的情況下做到實時調整qps。

組件:

  • 智能壓測調控框架
  • Chain-Line鍊式的線程管理組件
  • Adaptive Auto Control實時流量調控組件
  • Kernel-queue消息隊列讀寫組件

壓測Client工作模式圖:

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台 1

  1. 大規模分佈式調度服務

性能測試的一個難點是如何高效利用測試資源,在壓測機器有限,壓測機器規格不一致,壓測任務消耗硬件資源不一的情況下;如何高效調度成千上萬個agent是我們要解決的問題。 ACP平台利用zookeeper,使用DFS深度優先的搜索算法,實現了資源分配粒度達到內核級別,並開源了其產品化的能力。

  1. 基於歷史樣本的有監督學習建模及預估能力

傳統性能測試更多需要人來手工操作,測試效率普遍不高,我們提供了基於隨機森林( random Forest)、線性模型、非線性等多種算法建模組件;用建模、預估技術代替人力手動調壓等操作,用戶可以根據業務場景定制自己的建模方案,此外,我們也提供了多種樣本處理組件。

  1. 特徵樣本歸一化,對於歷史監控數據,我們將樣本(sample)進行歸一化處理(normalization),將不同量綱、不同單位的樣本進行加權處理,保證後續建模的精度。

  2. 特徵樣本去噪,歷史監控數據有很多噪聲,如作弊流量,異常流量,而這些噪聲會直接影響模型的預估表現,減少無效樣本對模型的影響。

  3. 特徵樣本轉換,feature transformer是將多維特徵轉為單維(Single-Demension)特徵的過程,如服務器帶寬和qps有著強關聯,我們將二者做除法得出新特徵,即每個請求佔用的帶寬(bytes per query),而這種特徵能夠直觀反映系統表現。

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台 2

  1. 基於實時樣本的無監督學習建模及預估能力

我們提供了基於arima模型的無監督學習建模預估能力(差分整合移動平均自回歸模型,又稱整合移動平均自回歸模型)。和上述有監督建模預估相比,無監督建模預估准入門檻低,相比於之前的用歷史監控數據建模的方案,arima不需要人為的收集歷史數據和打標。

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台 3

  1. 性能測試用例智能生成

Netflix提出了Chaos Engineering,我們基於混沌工程和fuzz思想進一步探索了query智能組合構造方案,分鐘內智能構造千萬級數據樣本;解決了壓測數據樣本單一,異常場景構造成本高,覆蓋率低的問題,從而可以充分驗證系統穩定性,魯棒性。

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台 4

後續開源計劃

  1. 歷史樣本有監督學習建模及預估能力
  2. 實時樣本無監督學習建模及預估能力
  3. 基於fuzz的性能測試用例智能生成方案

歡迎通過郵件組 [email protected]和github issue聯繫和反饋

二、MagicOTP — 線上測試平台

概述

廣告搜索推薦業務上,線下功能測試的覆蓋和線上實際場景總是有一定的gap,深層次的原因是因為業務和算法模型強相關,線下不可能覆蓋所有業務場景。鑑於此我們通過使用線上的數據,實時trace和智能化技術打造了線上智能測試平台MagicOTP,通過線上測試很好彌補了線下功能測試覆蓋和實際業務場景之間的gap,實現了全場景的測試覆蓋保障,同時在阿里媽媽落地了智能化的無人值守的發布閉環。

(github地址:https://github.com/alibaba/online-test-platform

系統核心能力

  1. 多種線上數據採集技術(時序、分佈、規則採樣、基因變異算法等),節省人工構造測試數據的成本,提高測試效率。
  2. 健壯的規則校驗引擎,測試數據通過規則進行多維度校驗,相比傳統冒煙的單點固定驗證,具有更高的場景覆蓋度。

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台 5

  1. 精準的規則智能推薦技術和智能化驗證技術,基於大數據分析和字段關聯關係(Association Rules)建模,利用推薦算法和異常數據檢測(K-sigma等)實現了智能化的規則推薦和校驗。

阿里媽媽技術質量開源面向廣告搜索推薦系統的線上測試和性能測試平台 6

  1. 高效的多業務接入能力,在平台配置完任務,任務執行過程中自動推薦出基礎校驗規則,減少開發成本。當業務變更時維護只需簡單修改規則即可。

開源Roadmap

目前一期提供了基礎的線上請求回放能力和規則引擎服務,以及基於此的完整的線上測試方案,後續我們會開源規則智能學習推薦功能和無人值守的發布驗證方案。

歡迎通過郵件組[email protected]和github issue聯繫和反饋

ACP:

github地址:https://github.com/alibaba/alimama-common-performance-platform-acp

MagicOTP:

github地址:https://github.com/alibaba/online-test-platform

研發成員:朱藻、橦錄、翰龍、鳳暄、凝珂

本文轉載自公眾號阿里巴巴技術質量(ID:AlibabaTechQA)。

原文鏈接

https://mp.weixin.qq.com/s/bxQqfAfsKCGQ_5rp18UWGA