競品分析很關鍵,雲時代如何科學地做競品?

  • 2019 年 12 月 3 日
  • 筆記

關於作者

尹國高,騰訊CSIG品質部專項測試技術中心專項測試三組員工

導語I競品評測是一件對產品很有幫助的事情,知己知彼,百戰不殆。尤其在雲計算服務上的競品,在2B的大背景下,顯得更為重要。但云時代的競品並沒那麼好做,而且做不好容易勞民傷財,付出人力並為友商財報做貢獻。

背景

競品評測是一件對產品很有幫助的事情,知己知彼,百戰不殆。尤其在雲計算服務上的競品,在2B的大背景下,顯得更為重要。但云時代的競品並沒那麼好做,而且做不好容易勞民傷財,付出人力並為友商財報做貢獻。

競品測評中的問題

回顧了一下以前做競品評測的路程,發現主要會存在3個問題:

  1. 只關注性能,而忽略了價格 很多時候容易只盯著性能看,忘記了價格。尤其是雲服務,價格是非常重要的一點。往往我們無法對齊所有配置(比如cvm使用的os,硬體參數),所以性價比成了客戶考量雲服務非常重要的一點。
  2. 冰冷的數據,如何變得鮮活 我們很容易變成只是為了做競品而去做競品,或來自老闆的訴求,得到一堆數字,比較了一下大小,似乎就完成「任務」了。單純的測量數據非常冰冷,是否可以考慮某些方式來直觀的呈現差距?另外,如何佐證測量的指標是可靠的?比如測出來A>B,那為什麼呢?能下鑽到更微觀的角度進行測評來輔助分析?能有其他的測試數據作為支撐?單純就競品這個事情,我們是不是可以再思考多一點點?
  3. 游擊戰?持久戰? 一時興起的競品,它的價值是有限的,當你的郵件報告漸漸埋沒於茫茫「郵海」中,大家便也忘記了這件事情。而且這個現象還有可能周而復始的發生。競品是場」持久戰「,價值最大化就需要自動化、資料庫存儲以及前端展示。可能很多人都比較喜歡郵件報告的方式,因為它確實可以做到圖文並茂重點突出。但正如前面所說,價值容易丟失,也不能日後來做對比分析。

基於這三點,下面給出了在競品上的一些思考和實踐。

我們的競品思路

此方案對於各種雲服務無差別,適合任何對象。比如IaaS層的CVM,PaaS層的資料庫服務,甚至SaaS的人臉識別服務。簡單來說,這種方案基於兩種維度:分層評測 * 特徵評測

分層評測

頂層為服務的總體得分,下層可以用來輔助分析上一層。或者說上層為宏觀維度,下層為微觀維度。下面以評測CVM服務舉例:

  1. 第1層,我們可以用一個總體得分來給人直觀的感受,並量化差距。這總體得分依據下層的得分進行計算。
  2. 第2層,我們可以用業務基準來評測CVM。比如Kafka、nginx在CVM上的表現,同樣我們用一個分數來量化這個表現,這個分數由基準工具得分轉換計算後得到。
  3. 第3層,我們可以用微基準工具來評測CVM。比如SPECCPU for cpu、stream for記憶體、netperf for網路等。同樣我們可以用一個分數來量化這些工具的得分。這個得分用基準工具測出來的數值,用某種演算法轉化一下便可得到。

這樣分層評測,不僅直觀,而且相互佐證。當我們對某服務在不同產商中的性能差距感到疑惑時,進一步可以去看下一層的數據。不僅知道差距是多少,我們還有途徑去分析導致差距的可能原因。比如,假設kafka在阿里雲的雲伺服器上表現較好?我們就可以去下一層的微基準查看fio和netperf工具的表現,來初步分析是磁碟性能差距還是網路性能差距導致Kafka得分差距。

特徵評測

被評測的對象,要取哪些特徵來進行打分呢?吞吐量和時延是衡量系統性能的最常用的特徵了,別忘了我們在說雲計算,服務的穩定性和價格也是非常重要的。總結一下就是,每一層的評測對象都可以從這4個特徵去打分:

  • 吞吐量
  • 時延
  • 穩定性
  • 價格

畫個圖的話:

打分方式

打分主要會遇到兩個問題:

  • 給定層級給定特徵,有多個決定因素
  • 這多個決定因素的計量單位可能不一樣

我們主要用平均值和百分等比縮放方法來解決這些問題。

  • 平均值 對於給定層級給定特徵,如果有多個決定因素,暫時假設這些決定因素的權重都是相等的,我們可以通過平均值來計算該層級該特徵的分數。這裡有兩種情況: 1)一個工具可能有多個指標來衡量一個對象的某個特徵。比如netperf的PPS和bandwidth都是衡量網路的吞吐量,磁碟的iops和頻寬也都是衡量磁碟的吞吐量,再上到Kafka業務基準,RPS和頻寬,producer和consumer性能,等等等等。這類情況,我們可以將工具測量的值進行百分等比縮放(參考下面)後,求平均值即可 2)一個對象可能有多個工具來評測,比如unixbench、speccpu都可以測評cpu。同樣,我們算出unixbench工具得分,speccpu工具得分後,可以通過平均值來得出該對象得分。
  • 百分等比縮放 benchmark工具測出來的數值是抽象的,對於沒有接觸過這個工具的人而言,只是冷冰冰的數字沒有意義。而轉換為分數後這個數據就是鮮活的了,可以非常直觀感受到差距。那怎麼進行這個轉換?假設2個產商的ServiceA用ToolO測得指標MericR的值分別為1.2, 2.4。則百分等比縮放後,MetricR的得分分別為50分,100分

覺得很抽象?沒關係,我們來看個例子。

例子

我們要對ServiceA在產商CloudX,CloudY進行競品,包括:

  • ServiceA的吞吐量
  • ServiceA的時延
  • ServiceA的穩定性
  • ServiceA的性價比

這裡我們僅舉例吞吐量分數的計算方式。其他類似。 假設用兩個工具來衡量ServiceA的吞吐量的工具(你也可以只用一個,這裡只是舉例),分別是ToolM, ToolN。另外ToolM描述吞吐量的指標有:TM1, TM2;ToolN描述吞吐量的指標有TN1,TN2 於是ServiceA的吞吐量得分便可以這樣算:算出每個產商在每個工具上的得分,然後將這兩個工具的得分求平均值,即可得到產商在ServiceA上的吞吐量得分。 怎麼算產商在某工具上得分呢?對該工具的每個指標上的值進行百分等比轉換得出分數,再對所有指標得分求平均值。具體是: 1)假設CloudX,CloudY在TM1指標上的值分別為3、6,則轉換後的分數為50、100分;在TM2指標上的值分別為2、5,則歸一化後的分數40、100;於是CloudX的ServiceA的吞吐量在工具ToolM上的得分就是ave(50, 40) = 45分,CloudY便是ave(100, 100) = 100分 2)用同樣方式我們可以算出CloudX、CloudY的ServiceA在工具ToolN上的得分,假設分別為 10分、90分,於是CloudX的ServiceA的吞吐量得分便為:ave(30,10)=20, CloudY的得分是:ave(70,90)=80分

硬廣

有了這樣一個思路,結合我們現有成熟好用的雲馭前後端,大家可以快速地將一個雲服務的競品測評接入到雲馭競品系統中來。接入過程非常簡單,你只需要提供一份清單,分多少層,用什麼工具來衡量服務的什麼特徵,用工具中的哪些指標來參與計算特徵,即可

雲馭競品系統的優點:

  • 對應競品方案的分層展示,清晰直觀全面地展現它在各產商上的表現
  • 我們集成自動獲取雲產商服務的按量價格,定期更新
  • 前端採用流行的開源Grafana前端
  • 資料庫存儲,保留歷史測評數據,可以觀察趨勢,也可以方便各維度對比

當然了,我們還有其他好用的產品:

  • 雲馭 ==> 大而全的騰訊雲IaaS性能數據平台
  • PerfTuner ==> 面向工具的伺服器性能自動化測試框架,集成Intel的VTune和perf的分析能力,自動參數調優,數據配置存儲到資料庫並可在雲馭展示。現已經有接近30個涵蓋CVM各場景性能(計算網路存儲等)的benchmark工具的封裝
  • 雲馭SDK ==> 上報性能數據以在雲馭前端展示

程式設計師開發效率神器匯總!

騰訊設計師告訴你,如何從用戶體驗角度將文案與視覺融合

「我有故事,你要聽嗎?」 | 18個案例全盤解析中國跨文化傳播創