日常生活中,我們經常會看到不同的平臺使用不同的評分制度來展示用戶對產品或服務的評價。例如,豆瓣和虎撲采用10分制,而淘寶店鋪和美團點評則選擇5分制。那么,為什么同樣是為了反映用戶評價的功能會有不同的分制呢?這背后是否有著特定的考量?
最近在人人都是產品經理上看到了一個非常有意思的問題。為什么豆瓣、虎撲等用十分制評分,而淘寶店鋪、美團點評等用五分制?(https://wen.woshipm.com/question/detail/8s2csf.html)。這個問題我從來沒有注意過,去app上一看,果然如此。豆瓣、虎撲都是十分制,淘寶、美團都是五分制。
那么問題來了,為啥同樣都是評價性質的功能,還要搞不同的分制呢?是不是可以統一成五分制或十分制呢?如果不能,背后有什么考量嗎?
想探究以上的這些問題,就要搞清楚星級評分的一些基本概念。從本質上講,星級評分是評估產品質量或受歡迎程度的一種算法。在一定意義上,星級評分能夠比較真實地反映用戶對產品的評價或情感,是一種相對客觀的方法。
回想一下,每次去吃一家不太熟悉的餐館,場景是不是先看一下大眾點評上的分數咋樣,然后再決定去不去。這就是星級評分的好處,它不需要用戶很繁瑣地看具體評價,可以通過一個分數,直接獲知一個產品或是店鋪的優劣,大大節省了用戶決策的時間成本。另外,這些數據對于一些有良心的企業,也是監控他們的產品是否得到消費者的信賴和支持的良好指標。
星級評分這種收集用戶反饋的方式非常常見。目前主流的評價方式,都是給一個五顆星,然后把所有人的評價通過一個算法轉化成分數,分數有五分制和十分制之分。其他的星級評價方式,諸如三星級,十星級都見過,但是不較五星級少見。
回到文章開頭的五分制和十分制的問題。既然星級評分就是一種算法,那是不是也可以只給兩顆星星讓用戶去評價,或者一個贊的按鈕,一個踩的按鈕來評價呢?我覺得是沒有問題的,因為這也是一種評價,也反映了用戶比較真實的看法和情感。
所以,是什么東西影響使用的評分方式和分制呢?
從心理測量學角度來說,星級評價可以看做是一種量表。而心理測量學中被廣泛使用的測量方法是李克特量表。這是一種總加量表類型的一種,主要是用來反映填寫者整體的認同程度和主觀評價。一般量表大多采用5級,但是也有7級的,6級的,甚至11級的。
但是從成本角度來說,誤差成本會隨著量表等級的增加逐步降低,回答成本會隨著量表等級的增加而增加。很好理解,回答的星級越多,越能夠真實反應用戶對產品的滿意程度和評價,但是星級越多,讓用戶回答起來就會非常痛苦,最好的就是能夠既讓誤差沒那么大,用戶填寫起來也不太痛苦。這里貼一個網上的圖,圖顯示,星級為5的時候,是最優的。
既然星級評價是一種量表,那就需要考慮一些量表指標,比如,信效度、區分度等。
最近在開奧運會,我用奧運會的一個項目舉例子說明一下信效度。一個射擊運動員,每次都射擊6環,我們可以說他信度高,所以,信度代表的是量表的可靠程度。還有一個運動員,雖然不是每次都能夠射擊同一環數,但是要不就是10環,要不就是9環。我們可以說這個運動員效度比較高。
所以,效度代表的是量表的準確程度。區分度呢,就是這個量表測量的東西,一定能夠把不同水平的人給區別開。如果靶子設定的特別大,槍法好和槍法差的都能很輕松地打出10環,那這個靶子的區分度就非常差。
搞清楚了這幾個概念,我們就看一下,不同星級評價數量對這幾個指標的影響。
曾經有學者做研究表明,7個等級的星級評價要比5個等級的星級評價能得到更可靠的結果,也就是信度會更高些。但是,信度和等級數量之間并不是線性關系。另外的研究表明,等級數量超過9個時,不同等級的差異就沒有意義了,不會再提供更多的有效信息,反而會讓用戶填寫起來非常累和困惑。
通過以上的分析,星級評價的等級數基本錨定在5到9個左右。這和人類短時記憶的容量,7±2個組塊的數量不謀而合。所以,在星級評價數量的選取的時候,也要遵循用戶的使用習慣。
首先用戶是非常不喜歡思考的。對一個事物的評價,最優解就給我一個好還是不好的選項,二極管思維是最受大多數用戶的喜愛了。但是這種評價的區分度又太差。又想評價準,又想有區分度,又想不讓用戶那么累,避免評價數過少,最后分析下來,只有5個等級是最合適的了。
評價都是為了還原用戶對產品整體的認同程度和主觀評價。那么,準確和恰當是非常重要的。
比如,B站上,用戶對視頻的評價就只有頂或者踩。在B站,用戶對視頻的評價,不是一個譜系,而是一個是或否的關系,要不好看,要不難看,沒有稍微不好看,或者稍微好看,這對于用戶來說,區分好看和稍微好看非常有難度,且沒有必要。這種情況下,就可以犧牲區分度,采用兩星級評價。
但是對于電影來說,需要評價的維度特別多,如果僅僅用頂或者踩,準確性會大大折扣。所以,主流的網站,大多采用5等級星級評價。
回到開頭我們討論的那個現象,會發現,不管是十分制的豆瓣、虎撲,還是五分制的點評、美團。都采用的是五等級的星級評價。但是分數最終呈現卻不是一樣的。這有什么講究嗎?
要想知道不同分制的區別,我們就要知道分數是咋算出來的。具體的規則細節肯定是獲取不到,我們也不需要知道的那么詳細。
簡單來說,分數主要還是來自于分數平均(可以看一下豆瓣CEO阿北的回答)。我理解,算法主要是處理評價是否可信的問題,比如,阿北提到的,“和影托或者其他非正常個人意見PK”,“時間和打分這自身的情況”。
這些都是在識別,某一個或某一些評價是否是真實的評價,而不是刷的,或者只是因為個人情緒,惡意給的差評。
算法可以理解是一個門檻,這個門檻只讓真實的評價進去,只要你能進去,那算法就簡單了,就是計算平均分,阿北也說了嘛,“接近和還原普通觀眾最原汁原味的平均觀影意見?!?/p>
其他的平臺也應該是這種考慮和算法。
那么,同樣的五等級評分,有的是五分制,為啥有的十分制呢?
兩種分制的不同,可以理解成,分制越大,區分度越大,越能夠將細微的好壞差別體現出來。所以,分制的不同,要回歸用戶。
如果某個平臺上的用戶,對某個事物具體比較高的了解程度和鑒賞水準,那就需要比較高的分制。如果某個平臺上的用戶,對某個事物沒有高的了解程度,那就需要給用戶一個相對來說較為簡單明了的分數,那就需要一個稍微低一點的分制。
所以,這就是為啥同樣的五等級評分,美團用五分制,而豆瓣用十分制。
問卷設計:量表到底是要用5級還是6級?– 人人都是產品經理
評價體系用什么規則好?豆瓣是5星10分制,時光網是10星10分制,淘寶是5星5分制 – 知乎
量表等級,5分、7分、10分哪種更好?等級量表數據應該如何分析?
為什么豆瓣、虎撲等用10分制評分,而淘寶店鋪、美團點評等用5分制?
本文由 @孟老濕 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自pixabay,基于CC0協議
該文觀點僅代表作者本人,人人都是產品經理平臺僅提供信息存儲空間服務。
著美團到家業務的發展,系統復雜度也在持續增長。測試用例數量近兩年增長約一倍,單端數量超過1萬2千條,而研發人員的工作從大部分時間在開發,轉變成一半時間在開發、一半時間在模擬環境和自測。因此,引入自動化測試就顯得十分有必要,本文介紹了美團外賣在自動化測試方向做的一些探索和實踐,希望對從事相關領域工作的同學能夠帶來一些啟發或幫助。
美團外賣的業務場景比較多元化,除了外賣自身的業務,還作為平臺承接了閃購、團好貨、醫藥、跑腿等其他業務。除此之外,在全鏈路動態化的大基調下,外賣各個頁面的技術形態也變得越來越復雜,除了Native代碼,還包括Mach(外賣自研動態化框架)、React Native、美團小程序、H5等,不同技術棧的底層技術實現不同,渲染機制不同,進而對測試方式要求也有所不同,這也在無形中增加了測試的難度。下圖匯總了美團多業務、多技術、多App的一些典型場景。
圖1 多業務、多技術棧、多App
在產品交付上線的過程中,測試的占比也是非常大的,甚至大于總時長的30%。如下圖所示,整個測試包括了冒煙測試、新功能測試、二輪回歸測試、三輪測試。然而,現在需求測試絕大部分還是采用非自動化的方式,這就使得人力成本變得非常之高。
圖2 外賣迭代模型
另一方面,相比于2018年,2022年的測試用例數量增長近3倍,已經超過1萬2千條(如下圖所示)。同時,外賣的業務是“三端復用”,除了外賣App,還需要集成到美團App和大眾點評App上,這樣一來,測試工作量就翻了3倍,業務測試壓力之大可想而知。如果按照當前的增長趨勢持續下去,要保障外賣業務的穩定,就必須持續不斷地投入大量的人力成本,所以引入能夠支持外賣“多業務場景”、“多App復用”、“多技術?!?特點的自動化測試工具來提升人效和質量,勢在必行。
圖3 近幾年用例增長變化
為了解決外賣面臨的測試困境,我們嘗試去探索一種零學習成本、低維護、高可用的自動化測試方案,能夠支持外賣復雜多變的測試場景,它必須同時滿足下面幾點要求:
自動化測試工具那么多,自研是重復造輪子嗎?
針對終端的UI自動化測試工具/平臺可謂“屢見不鮮”,市面上也有很多相對成熟的方案,相信大家都有用過,或者至少有所耳聞,但這些方案是否能真的滿足我們提效的訴求呢?以下我們挑選了三類非常具有代表性的自動化測試工具/平臺 - Appium、Airtest Project、SoloPi進行了分析,來幫助大家對自動化測試技術建立一個認知:
可以看出,以上這些自動化測試工具/平臺對于數據記錄,環境模擬、維護成本、跨App復用等方面,都是有所欠缺的。所以無論是哪種方案,在易用性、維護成本、穩定性、可擴展性以及最終的測試效果上,都無法滿足我們對自動化測試的需求。我們并不是為了自動化而自動化,而是要解決實際的提效問題。
那么,怎樣才能確定一個自動化工具/平臺的可用性,并長期落地去使用自動化,帶著上述提到的較高門檻的上手成本、操作繁瑣的環境模擬、差強人意的測試成功率、定位模糊的測試缺陷、難以維護的用例腳本等幾大重要痛點,本文我們將介紹美團外賣自研的測試平臺——AlphaTest,都具備哪些能力以及是如何解決這些問題。
一個自動化測試工具/平臺能不能用起來,取決于他的上手成本和穩定性,即使工具的測試穩定性做的再好,使用的門檻高也會讓人望而生卻,反之亦然。所以AlphaTest平臺為了上手簡單,降低使用成本,采用了基于錄制回放的方式進行設計,并且彌補了常規錄制回放無法編輯的痛點,同時在手勢操作的基礎上增加了數據錄制。整合美團系App的特性增加了環境模擬、跨App支持、混合技術棧的支持等能力,在使用簡單的同時,也保障了用例的可維護性、測試的準確性等。
注:這里我們將生成的自動化腳本統稱為指令,將平臺生成的用例統稱自動化用例,將錄制回放變成可視化的腳本指令,讓用例變的易懂、易維護。
錄制回放本身是一連串的操作數據的集合,是連續性的、不可拆分,因此幾乎不具備可編輯性,這也就導致了用例維護成本極高。AlphaTest雖然同樣基于錄制回放的方式生成自動化用例,但是我們將每一步的操作都具化成結構化的指令數據,并提供可視化指令編輯器,以支持查看編輯。
這些可視化的指令,完全通過錄制自動生成,也不依賴于任何腳本語言。通過可視化用例指令編輯器,不僅為用例提供了編輯的可能性,同時大大地提高了用例的可閱讀性,每一條測試用例在測試過程中每一步都做了什么、當時的界面是什么樣的、都有哪些斷言校驗點,是顯而易見的,不會存在像傳統圖文描述的測試用例那樣,出現理解偏差。指令生成演示,手機錄制與平臺遠端錄制雙模式支持:
圖4 指令編輯器
圖5 手機錄制演示
圖6 平臺遠端錄制演示
一鍵環境模擬,解決操作繁瑣的用例執行前的環境準備。
進行一個用例的測試之前,往往需要做大量的準備工作,比如切換API環境,定位到某個地點,登錄指定賬戶等。這些需要準備的環境條件我們統稱為前置條件。我們知道,前置條件的準備操作通常都不是一兩個步驟就可以完成的,比如賬號登錄/切換:我們需要進入登錄頁,填寫手機號+密碼/驗證碼,點擊登錄等一系列動作來完成這個過程,非常繁瑣,并且每次測試我們都需要準備,重復性高。因此,我們給AlphaTest設計了獨立的前置條件模塊,將用例拆成了兩個部分:前置條件 + 操作步驟。
圖7 前置條件
與其它測試框架不同的是,AlphaTest采用了SDK集成,但對業務無侵入的方式,因此可以通過編寫白盒代碼來實現前置條件的自動配置,只需要在平臺添加需要的指令,下發到SDK后,即可根據相關指令完成前置條件的自動配置,不再需要重復進行相關的操作。并且這些前置條件支持復用,也不需要每次進行用例準備時的重復配置。AlphaTest的前置條件,不僅有著基于美團內部服務及底層Hook的默認實現,也提供了API支持業務方自定義實現,比如實現不同的賬號體系。
影響用例執行的不僅是代碼,還有數據。
很多時候,自動化用例無法正常執行完成,可能是因為App回放時的本地數據及網絡數據與錄制時的不一致,從而導致用例執行流程的阻塞或App界面展示的不同。這也是大多數自動化測試工具/平臺測試通過率不高的主要因素,因此要保證測試成功率,我們需要控制變量,排除由數據產生的影響。
圖8 數據一致性
App運行依賴的數據,有兩部分——本地數據和網絡數據:
目標定位的準確性與手勢定位的精準性。
UI自動化測試的本質就是代替人去自動的做一步步的操作(點擊、長按、輸入、滑動等)。錄制與回放過程的操作能否一致,是否精準,直接影響測試的成功率,決定了工具/平臺的可用性。
操作行為是否一致首先需要確認操作目標是否一致。與一般測試工具/平臺不同的是AlphaTest采用了ViewPath + 圖像 + 坐標的多重定位方案。得益于SDK集成的方式,我們的ViewPath可以記錄更多的元素視圖特征和執行不同的匹配策略。定位過程中會優先使用ViewPath進行目標控件檢索,當目標控件查找異常時,會結合圖像匹配和坐標匹配的方式進行兜底查找,來確保界面變化程度不大時,也能準確的查找到目標控件。
圖9 圖像識別示意圖
有了基于控件的目標定位之后,對于一些常用簡單操作手勢,比如點擊、長按、斷言、甚至輸入都可以做到很好的支持,只需要找到對應的控件,在控件所在位置下發相應的觸摸事件即可。我們知道,App真正接收的觸摸事件是屏幕上一個個精準的觸摸點,在系統處理后,分發給當前App窗口,App在接收事件后再繼續分發,直到找到事件的最佳響應者,后續通過響應者鏈對事件消化處理。那我們要還原一個觸摸事件的坐標點要如何確定呢?由于我們確定的只有控件,所以這個點自然而然就成了控件的中心點了。
大多數情況下,這些都可以很好地進行工作,但是對于一些多響應控件重疊的情況,可能會產生預想不到的操作誤差。為了解決這樣的問題,我們把控件定位與坐標定位進行了結合:基于純坐標的定位是一種定位精準度非常高的定位方式,但是穩定性非常差,只有在屏幕分辨率完全一致且回放頁面控件位置完全一致的情況下,才具備足夠的可靠性,但這往往是不現實的,對測試環境機器量要求過高。
基于控件的定位,又存在著精準度不夠的問題。使用坐標定位,如果定位區域足夠小的話,那么受屏幕尺寸的影響就會越小,只需要確定在小范圍內的相對位置即可。而基于控件目標的定位,恰恰可以把目標區域縮小到一個指定區域,我們剛好可以將二者結合起來,同時解決定位精準度和穩定性的問題。
對于復雜手勢的支持,我們同樣可以采用微分的方式,將一個復雜手勢拆成多個簡單手勢的組成,比如我們可以將一個滑動操作的定位拆成兩個部分:起始位置和終止位置,而這兩個位置的定位,就變成了兩個普通的單點手勢操作定位了,可以通過上面提到的一個目標控件+相對坐標的形式進行定位。核心思想都是將基于屏幕坐標點的定位操作,縮小的目標控件的區域范圍內,以達到不受設備分辨率的影響,實現操作行為一致的效果。
圖10 手勢識別示意圖
測試全流程記錄,問題溯源一鍵即達。
測試的目的是保證App運行的穩定,測試過程中出現Bug導致測試未通過時,需要溯源問題原因,發生的場景,乃至具體的執行步驟。這也是大多自動化測試工具/平臺所欠缺的,即使發現了問題,排查工作也很困難;這個問題在手工測試的時候,更為嚴重,往往因為很多缺陷無法復現而難以定位。
AlphaTest的自動化用例最小執行單元是操作指令,我們將測試過程的每一條指令的執行狀況和過程中的界面快照進行了記錄,并在指令執行失敗時,對異常原因進行了初步分析。然后將整個用例的執行組合成了一份完整的測試報告,可快速溯源問題步驟。除此之外,我們還增加大量的日志上報,并將整個用例測試過程進行了視頻錄制,來進一步幫助疑難問題的排查。真正做到了用例回放測試可溯源。
圖11 回放報告-圖文詳情
自動化用例需要持續地投入人力來維護么?架構升級,頁面重構,用例需要全部重新錄制么?
因自動化工具/平臺眾多,阻礙長期落地使用的一大問題是用例維護成本高,很多工具/平臺讓我們即便是使用上了自動化,但還需要持續投入人力維護用例的更新,最終的提效收益微乎其微。對于用例更新維護,我們可以梳理劃分成三個場景:
圖14 指令編輯
圖15 自修復能力
同一份代碼運行在不同的App上,是否需要重新編寫多份用例?
美團系的一些業務可能會復用在多個App上。比如外賣有獨立App,但同時也要復用到美團和點評App上,這些功能,幾乎共用一份代碼,而測試人員卻不得不對每個App上的業務功能都進行測試,維護多份用例。由于業務本身實現是一致的,那我們可以通過適配不同App之間的差異,來讓一個業務Case可以橫跨多個App回放,這便可以將成本縮減好幾倍,這些差異主要體現在:
AlphaTest平臺支持App維度各項差異數據配置,當SDK檢測用例回放環境與錄制環境不一致時,會自動進行映射適配,從而讓用例運行到了不同App上。
除了功能測試,我們在日常開發和測試的工作中,還會面臨另外一個比較重要的問題就是埋點測試。因此,我們在自動化的基礎上擴展出埋點自動化測試。埋點自動化測試的核心思想是,通過對比錄制時期和回放時期的埋點上報時機和上報參數進行判斷。為了保證埋點自動化測試的穩定性,我們主要采用以下的障機制:
圖16 埋點自動化測試示意圖
圖17 埋點上報數據控制臺打印
圖18 埋點校驗流程圖
AlphaTest的核心測試流程始終聚焦在用例的錄制與回放環節,整個流程涉及到自動化任務觸發、回放集群調度、斷言服務、消息推送等核心模塊。
以UI自動化和埋點自動化的流程為例,AlphaTest以業務團隊為基本單元,可以和各團隊的測試用例進行關聯,定時同步狀態。同時利用需求評審線上化做為基礎,將自動化用例和研發流程中的PR、集成打包、二輪回歸等節點相結合,定時觸發自動化用例并將結果報告推送給相關負責人。
圖19 建設自動化測試流程閉環
在整個外賣C端敏捷迭代的流程中,打包平臺主要承接了業務需求發起到需求交付的流程,作為AlphaTest的上游平臺,可以提供打包信息并觸發自動化用例回放任務。以下簡單展示AlphaTest與敏捷協同平臺的交互流程:
圖20 AlphaTest與敏捷協同平臺交互流程圖
整個測試過程真正的解放雙手,才能算的上是自動化。因此,我們著手搭建了自己的自動化機器集群,可以 24小時不間斷的執行測試任務。為了保證任務回放能夠順利完成,我們在不同階段增加了相應的?;畈呗?。在極大程度上提高了任務執行完畢的成功率。
圖21 機器集群
用例斷言是整個自動化用例驗證的核心步驟,我們的斷言服務依據用例的實際情形可以分別進行文字與圖像的斷言。其中圖像斷言服務依托于自建的圖像對比算法服務,可以高效進行錄制回放斷言圖像的對比,圖像對比準確率可以達到99%以上。
圖22 訓練過程
[1] 預訓練過程:resnext50網絡是使用ImageNet的預訓練模型。
[2] 數據增強:為增加數據的豐富性、提高網絡的泛化性能,數據增強的方式主要包括:圖像右下部分的隨機剪切和添加黑色蒙層(相應改變圖像對的標簽)。這種數據增強符合控鍵截圖實際情況,不會造成數據分布的改變。
[3] 對比損失:對比損失函數采用ContrastiveLoss,它是一種在歐式空間的pair based loss,其作用是減少一致圖像對距離,保證不一致圖像對的距離大于margin,其中margin=2。
圖23 訓練過程
[4] 相似度量:相似度量也是采用計算圖像對特征向量的歐式距離的方法,并歸一化到區間[0, 1],作為輸出的圖像對相似度。
消息推送作為回放流程的最終環節,我們依賴于美團內部自建的消息隊列服務與OA SDK消息推送能力,可以進行測試報告的實時推送。在此之上,還可以針對不同團隊的推送訴求,做消息模板的定制化。
外賣C端主要承擔了用戶在App端點餐、下單、配送的所有核心流程,場景繁多、業務復雜,這也給測試人員的版本測試帶來了諸多挑戰,其中最核心也最耗費人力的便是二輪回歸測試環節。目前,C端采用的雙周敏捷迭代的開發方式,每個迭代周期給測試人員用來進行二輪核心流程回歸的時間為三天,為此C端測試團隊投入了許多人力資源,但即便如此,仍難以覆蓋全部流程;而AlphaTest的設計初衷也正是為解決此問題——UI測試流程全覆蓋及自動化驗證。
用例的轉化與維護
[1] AlphaTest 在外賣C端測試團隊的落地初期,我們采用了共建的模式,也就是業務研發人員與對應測試人員共同來進行用例錄制與維護的工作;推薦這種工作模式的核心原因是,在C端功能迭代流程中的二輪周期的原有工作模式為,研發人員進行二輪冒煙測試,完成測試之后提交二輪包交由測試人員進行二輪回歸測試,所以這本來就是一個雙方都需要參與的環節;而二輪測試作為版本上線前的最重要一個測試流程,保證核心流程的正常也是測試人員與研發人員所關心重點。
[2] 經過多輪的使用與磨合之后,這種模式被證明是行之有效的,在整個C端二輪用例的轉化過程中,測試人員主要負責了用例的錄制與迭代流程,研發人員則主要負責版本回放數據的統計及問題用例的發現與解決。
外賣二輪落地情況
[1] 目前,AlphaTest已經在外賣多個業務落地,支持了大于15個版本的二輪回歸測試,用例覆蓋率達到70%。
[2] 覆蓋了Native、Mach、React Native、美團小程序、H5 技術棧的測試工作,能力上可進行支持:UI自動化測試、埋點自動化測試、動態化加載成功率自動化測試、無障礙適配率自動化測試。
未來,我們會朝著“智能化”和“精準化”兩個方向探索,覆蓋更多測試場景的同時,更進一步提升測試人效。
| 本文系美團技術團隊出品,著作權歸屬美團。歡迎出于分享和交流等非商業目的轉載或使用本文內容,敬請注明“內容轉載自美團技術團隊”。本文未經許可,不得進行商業性轉載或者使用。任何商用行為,請發送郵件至tech@meituan.com申請授權。
IOps,最初的定義是Algorithm IT Operations,是利用運維算法來實現運維的自動化,最終走向無人化運維。隨著技術成熟,逐步確定為Artificial Intelligence for IT Operations——智能運維,將人工智能應用于運維領域,基于已有的運維數據(日志、監控信息、應用信息等),通過機器學習的方式來進一步解決自動化運維無法解決的問題。
本文系AIOps在美團的探索與實踐的第一部分,如何自動發現故障問題,其中重點介紹了美團時序數據異常檢測系統Horae的架構與設計。
早期的運維工作大部分是由運維人員手工完成的,手工運維在互聯網業務快速擴張、人力成本高企的時代,難以維系。于是,自動化運維應運而生,它主要通過可被自動觸發、預定義規則的腳本,來執行常見、重復性的運維工作,從而減少人力成本,提高運維的效率。總的來說,自動化運維可以認為是一種基于行業領域知識和運維場景領域知識的專家系統。隨著整個互聯網業務急劇膨脹,以及服務類型的復雜多樣,“基于人為指定規則”的專家系統逐漸變得力不從心,自動化運維的不足,日益凸顯,當前美團在業務監控和運維層面也面臨著同樣的困境。
DevOps的出現,部分解決了上述問題,它強調從價值交付的全局視角,但DevOps更強調橫向融合及打通,AIOps則是DevOps在運維(技術運營)側的高階實現,兩者并不沖突。AIOps不依賴于人為指定規則,主張由機器學習算法自動地從海量運維數據(包括事件本身以及運維人員的人工處理日志)中不斷地學習,不斷提煉并總結規則。AIOps在自動化運維的基礎上,增加了一個基于機器學習的大腦,指揮監測系統采集大腦決策所需的數據,做出分析、決策,并指揮自動化腳本去執行大腦的決策,從而達到運維系統的整體目標。綜上看,自動化運維水平是AIOps的重要基石,而AIOps將基于自動化運維,將AI和運維很好地結合起來,這個過程需要三方面的知識:
美團技術團隊在行業、業務領域知識和運維領域的知識等方面有著長期的積累,已經沉淀出不少工具和產品,實現了自動化運維,同時在AIOps方面也有一些初步的成果。我們希望通過在AIOps上持續投入、迭代和鉆研,將之前積累的行業、業務和運維領域的知識應用到AIOps中,從而能讓AIOps為業務研發、產品和運營團隊賦能,提高整個公司的生產效率。
2.1 AIOps能力建設
AIOps的建設可以先由無到局部單點探索,在單點探索上得到初步的成果,再對單點能力進行完善,形成解決某個局部問題的運維AI學件,再由多個具有AI能力的單運維能力點組合成一個智能運維流程。行業通用的演進路線如下:
所謂學件,亦稱AI運維組件[1](南京大學周志華老師提出),類似程序中的API或公共庫,但API及公共庫不含具體業務數據,只是某種算法,而AI運維組件(或稱學件),則是在類似API的基礎上,兼具對某個運維場景智能化解決的“記憶”能力,將處理這個場景的智能規則保存在了這個組件中,學件(Learnware)=模型(Model)+規約(Specification)。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。