愛奇藝智能內容中臺|無人值守的應用與實踐


本文爲愛奇藝智能內容中臺系列稿件的第一彈,接下來我們還會陸續爲大家帶來愛奇藝在智能內容生產、運營上的一系列探索,敬請期待。


無人值守系統是愛奇藝內容中臺的一個重要智能化組件。


首先,對於業務密度大、流程長、依賴服務多的業務系統而言,在實際運行當中,故障的出現是一種常見現象,某種程度上是一種常態。所以故障出現後,能及時發現、及時處理是對線上運行業務系統的必然要求。常規的方式是報警+人工介入,這種方式導致了必須有人值守,而人工介入的時效性不好保證,同時人工成本也必然增加。


愛奇藝內容中臺同樣面臨上述問題,嘗試通過技術手段解決系統複雜性帶來的問題,是本系統的基本思路,也是中臺智能化的重要方向。對比傳統的監控系統,我們需要更智能化的服務來完成監控的同時,兼顧故障智能化處理,同時又方便其他處理手段介入。無人值守系統是在上述背景下由愛奇藝內容中臺研發團隊設計研發的智能化開放式故障值守系統。


01

   無人值守的目標


無人值守系統的目標是輔助業務系統達到流程自動化、結果可信賴、無需人工值守。


在項目設計之初,我們的初衷是:在愛奇藝中臺節目生產過程中不需要人工盯盤來保障節目生產流程正常、上線準時。在出現問題的時候及時發現、自動修復、風險預警、通知人工處理等以保障節目準時上線。


基於系統的目標,需要系統具有如下能力:



02

   整體架構介紹


概括起來,基本思路是:首先實現業務系統運行情況的監控功能,將業務運行數據和異常收集到無人值守系統,在此基礎上,通過對數據的實時智能分析,實時發現系統運行故障和業務數據異常情況。然後交由故障和業務異常處理模塊進行異常的智能處理,從而達到自動化異常和故障處理,最終實現無人值守和系統智能化恢復的目的。



系統運行流程介紹:


  1. 採集生產環節數據到無人值守系統,這裏主要通過愛奇藝的中臺數據中心採集。業務系統投遞數據到中臺數據中心,無人值守系統從中臺數據中心採集數據。

  2. 由決策引擎對採集的數據進行實時分析,根據SLA、異常、閾值等配置分析出異常數據,形成單獨的事件。

  3. 將事件投遞到事件處理引擎Beacon。

  4. 事件處理引擎根據不同事件配置的處理流程進行處理。事件的處理流程完全配置化,支持故障修復、報警通知、故障恢復檢測、故障統計等。

  5. 訓練引擎使用中臺數據中心的離線數據訓練系統故障分析模型,模型數據再提供給決策引擎用於決策。


03

   核心模塊介紹


下面逐一介紹系統的核心功能模塊:


3.1 運行數據實時採集模塊(基於中臺數據中心)


通過愛奇藝內容中臺團隊實現的OLTP基礎組件(中臺數據中心),實時採集各個功能模塊的運行情況和業務數據進度和狀態。OLTP基礎組件(中臺數據中心)給愛奇藝內容中臺實時分析處理提供支持,中臺運行的各類數據可以很方便的投遞到該組件,並且提供了數據的監聽和查詢功能,能支持TB集海量數據的管理和維護。中臺數據中心繫統會在後續的系列文章中詳細介紹,這裏不再展開。


數據採集流程:



下面以專業內容生產過程(PPC)爲例:


製作投遞:製作服務運行過程中,將製作狀態、成片生產狀態,投遞中臺數據中心。

運營流生產投遞:運營流生產過程中將視頻流生產狀態、音頻生產狀態、字幕生產狀態投遞中臺數據中心。

審覈投遞:審覈系統將審覈狀態、審覈時間等信息投遞中臺數據中心。

發佈投遞:發佈系統將碼流發佈狀態兜底中臺數據中。


中臺數據中心獲取到數據後,發送數據變更通知到RMQ隊列,無人值守系統監聽數據變更,將數據拉取到無人值守系統。從而獲取節目從製作到最終發佈的運行數據,完成數據採集。


3.2 決策引擎


基於採集的數據,實時分析系統和業務運行情況,決策引擎主要提供如下功能:


錯誤探查:實時探測系統和業務錯誤,對錯誤進行統一管理,發送事件。

超時預警:基於業務節點的SLA配置,對超時業務行爲進行探測和統一管理,發送事件。

可配置化策略:主要包括業務功能無人值守接入的配置和業務功能的SLA配置、權限配置、統計通知配置等。

 

決策引擎的運行就是服務邊工作邊收集進度及系統運行信息,不斷check服務進度是否正常、是否有異常狀況或者超時狀況,旨在能夠在出問題時的第一時間發現問題。


按照下圖的邏輯繼續工作:


服務模塊啓動後,發現失敗或者超時後,通知失敗和超時事件給外部,同時,檢測系統業務單元的運行進度,判斷進度是否正常,不正常的通知進度滯後事件給外部。


上面介紹了邏輯流程,下面介紹服務模塊的運行邏輯:


服務模塊的主要概念:


數據源:數據源主要是中臺數據中心,播控的部分數據從RMQ採集。數據源的數據由業務系統投遞到中臺數據中心。

Process:完成數據從數據源採集到無人值守系統,不同的業務分別有不同的process,不同的業務會有不同的採集處理方式。

Filter:完成數據的過濾,採集過來的數據有些是系統不需要的,有些字段是不需要關心的,filter負責把無效的數據過濾掉。

Transform:數據的轉換,統一轉換成決策需要的數據結構。

規則模塊:規則的執行,承接transform過來的數據,執行配置好的規則,輸出成功、失敗、開始三種規則結果。

決策模塊:決策模塊是做超時判斷的,超時判斷和普通的成功、失敗不同,需要不停比較當前時間和進度來判斷任務是否超時。

延遲消息模塊:通過延遲消息,定時未來某個時間來校驗業務的運行是否超時。

Sink回寫:超時、超預期上線時間等結論回寫數據源。

 

服務模塊運行按照上面概念的順序運行,運行中發現的事件投遞給外部。下圖:



3.3 事件處理引擎Beacon


事件處理引擎Beacon是自研的接收決策引擎的事件並進行流程化處理的模塊。對不同的事件,處理方式千差萬別,例如,常見的轉碼異常有50多種,按照不同的處理方式分成好多組,每組有不同的處理流程,通知不同的研發人員,通知模塊內容也不一樣。有些事件有標準化的治癒方式,而有些沒有治癒方式,需要通知業務人員。針對這樣多樣化的需要,無人值守的事件處理設計了專門的事件處理引擎(Beacon)。該引擎支持流程的配置化和定製化,預留了抽象度較高的業務對接接口、處理能力擴展方式和流程配置方式。將支持新業務的代價降到了最低。


常見的故障是通過事件的形式發給Beacon處理引擎。


基本架構:


事件處理引擎主要有以下幾個部分:


上下文功能 :流程執行過程中,上下文參數的獲取和保存。上下文的保存和獲取實現在Step基類中。

執行引擎 :簡單可靠的執行引擎,包含了流程執行、執行延遲、執行日誌等基礎功能,可以執行索引Step類型對象。

流程配置 :JSON格式的流程配置,包括Step,StopStrategy,StepAction,WaitTimeAfter等概念,流程按照StepIndex的順序執行。



Step:步驟,步驟是組成流程的單元,每一步會執行配置的StepAction和StopStrategy。


StopStrategy:流程終止判斷策略,Step類的子類,繼承了上下文功能。根據配置的狀態,判斷事件處理的最終形態,比如故障是否恢復的判斷。

StepAction:要執行的動作,Step類的子類,比如發郵件、發消息、調業務接口等都可以包裝成StepAction。

WaitTimeAfter:本步驟執行完成後,到執行下一步驟的等待時間。



郵件等通知功能對接:對接企業郵件系統等,這是通知功能的基礎組件。

業務功能組件 :業務功能組件是組成處理流程的基本組件,是系統處理能力的載體。流程處理引擎要支持新業務問題的處理,需要在業務功能組件池進行擴展,從而擴展無人值守的處理能力。



下面是一個簡單的流程配置例子



實際使用過程中,針對特定的事件,配置故障處理Action和治癒判斷的StopStrategy,從而實現故障自行恢復和治癒。這裏故障實際是事件的一種,最後系統能並根據運行數據分析出故障數量和治癒百分比。


04

   機器學習應用:生產時間預估


根據無人值守系統的目標設計,無人值守系統要提供對生產過程的預期管理,以實現業務運行可預期的目的。基於採集到的數據,應用機器學習技術,訓練各種預測模型,提供業務運行耗時方面的各種預測能力,改進無人值守體驗。


說明:無人值守系統的預測模型只適用於資源穩定,或者資源有保障的任務,不考慮資源變動對運行耗時的影響。


下面針對其中的生產時間預估進行說明:


問題類型分析 :無人值守系統可以獲取豐富的視頻生產歷史數據,期望形成特徵向量,以歷史數據計算訓練模型,爲編輯預估視頻生產完成時間。



特徵分析 :排除空值數據,篩選有價值特徵。


比如:類別特徵:

'businessType', "channel", 'cloudEncode','trancodeType', "priority", "programType",
"serviceCode", "needAIInsertFrame", "needAudit","bitrateCode", "platform", "resolution"......

數值特徵:'duration’

 

類別特徵取值分佈分析



算法選擇


訓練數據去除異常值,採用XGBoost迴歸模型。


XGBoost:實現了GBDT算法並進行了算法和工程上的許多改進,(GBDT(Gradient Boosting Decision Tree)梯度提升決策樹)。所以叫X (Extreme) GBoosted。


它的基本思路是將基分類器層層疊加,每一層在訓練的時候,對前一層基分類器樣本,調整不同的權重。測試時,根據各層分類器的結果的加權得到最終結果。所有弱分類器的結果相加等於預測值,然後下一個弱分類器去擬合誤差函數對預測值的殘差(這個殘差就是預測值與真實值之間的誤差)。



05

   業務系統反饋


無人值守系統爲所有對接的業務系統生成業務系統運行情況日報,並推送給業務系統,其中數據主要包括錯誤、故障統計數據和明細數據,以及是否滿足SLA等信息。業務系統基於無人值守反饋的運行數據進行業務改進和系統優化。基於這種方式推動業務系統持續升級改造。


下面是運行情況日報的內容示例:



06

   上線效果


在愛奇藝,無人值守系統已經覆蓋了愛奇藝內容中臺的重要生產環節,對每天幾十萬的節目生產提供了可靠性保障,無人值守率達到了99%以上,累積發現問題3000多個,自動化處理2800個以上。極大的節約了人力成本,提供了系統運行穩定性和節目按時上線率。


07

   未來方向


未來,希望基於無人值守的採集數據提供更多智能化分析,主動發現業務系統的問題,提前預警,提前解決。


另外,系統目前只是針對點狀事件進行值守,未來會以節目爲整體進行值守和問題處理,提供由點到線,再到面的全方位值守服務。比如以節目爲粒度,提供斷點續轉,後來居上等更加智能化的能力。

看完心動了嗎?
戳👇“ 閱讀原文”直達招聘頁面
即刻加入愛奇藝!

也許你還想看
關於智能化、精準化測試的一切,這50個問題我們幫你整理好了!
支持頻繁更新、即席查詢:ClickHouse在愛奇藝視頻生產的應用
代碼覆蓋率在敏捷式軟件開發過程中的實踐流量

 關注我們,更多精彩內容陪伴你!

本文分享自微信公衆號 - 愛奇藝技術產品團隊(iQIYI-TP)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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