自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文了解字節(jié)跳動如何解決 SLA 治理難題

原創(chuàng) 精選
運維
在海量數(shù)據(jù)任務(wù)開發(fā)場景中,因業(yè)務(wù)多樣化、數(shù)據(jù)量大、數(shù)據(jù)任務(wù)復雜等問題,導致數(shù)據(jù)任務(wù)鏈路依賴復雜、鏈路長、跨團隊節(jié)點依賴多,因此,在實際開發(fā)運維過程中,任務(wù)負責人為保證自身數(shù)據(jù)準時產(chǎn)出,會遇到一些困難。

作者 | 開發(fā)套件團隊

基于字節(jié)跳動分布式治理的理念,數(shù)據(jù)平臺數(shù)據(jù)治理團隊自研了 SLA 保障平臺,目前已在字節(jié)內(nèi)部得到廣泛使用,并支持了絕大部分數(shù)據(jù)團隊的 SLA 治理需求,每天保障的 SLA 鏈路數(shù)量過千,解決了數(shù)據(jù) SLA 難對齊、難保障、難管理的問題。

一、背景介紹

SLA(Service Level Agreement):服務(wù)級別協(xié)議,對互聯(lián)網(wǎng)公司來說是網(wǎng)站服務(wù)可用性的保證。數(shù)據(jù) SLA,即數(shù)據(jù)可用性保證,一般以數(shù)據(jù)產(chǎn)出時間作為 SLA。

在海量數(shù)據(jù)任務(wù)開發(fā)場景中,因業(yè)務(wù)多樣化、數(shù)據(jù)量大、數(shù)據(jù)任務(wù)復雜等問題,導致數(shù)據(jù)任務(wù)鏈路依賴復雜、鏈路長、跨團隊節(jié)點依賴多,因此,在實際開發(fā)運維過程中,任務(wù)負責人為保證自身數(shù)據(jù)準時產(chǎn)出,會遇到如下困難:

  • 溝通成本高:任務(wù)負責人嘗試與上游任務(wù)負責人約定 SLA,但由于上游任務(wù)數(shù)多(可至上千個),且跨越多個團隊,溝通成本非常高
  • 權(quán)責不清晰:由于鏈路復雜,如何制定 SLA?誰來負責保障 SLA?
  • 運維壓力大:無法及時發(fā)現(xiàn)上游任務(wù)延遲,導致下游任務(wù)負責人承擔絕大部分運維壓力,且運維效果較差,往往發(fā)現(xiàn)延遲已經(jīng)錯過了補救的時間。

為解決上述問題,字節(jié)跳動數(shù)據(jù)平臺通過自研的 SLA 保障平臺,規(guī)范并推進各業(yè)務(wù)團隊進行任務(wù)鏈路治理,有效保障數(shù)據(jù)的 SLA,數(shù)據(jù) SLA 達標率達到 99.1%。

理想的一組任務(wù)的完成時間與對應(yīng) SLA 之間的關(guān)系如下圖所示,即各個任務(wù)及其上游任務(wù)都在對應(yīng)的 SLA 之前完成,這也是平臺的治理目標。

二、應(yīng)用場景

SLA 保障平臺除了解決上文的困難外,對不同的用戶還有以下使用場景:

  • 數(shù)據(jù)業(yè)務(wù)方:“我們團隊的業(yè)務(wù)很依賴一份重要數(shù)據(jù),希望能對其進行保障,希望上游能承諾 SLA”
  • 數(shù)據(jù)負責人:“我們團隊有很多對外承諾 SLA 的數(shù)據(jù),希望能有一個平臺對 SLA 進行集中管理,并能提供一些統(tǒng)計大盤、風險分析等內(nèi)容”
  • 數(shù)據(jù)治理方:“我們希望能提升團隊內(nèi)核心數(shù)據(jù)的數(shù)據(jù)質(zhì)量,對齊進行 SLA 管理,及時發(fā)現(xiàn)風險,并進行事故復盤和改進,最終不斷優(yōu)化數(shù)據(jù)質(zhì)量”

根據(jù)以上不同角色需求,SLA 保障平臺提出自身解決方案。針對團隊數(shù)據(jù)治理需求,平臺提供完善的治理看板能力;針對任務(wù)鏈路復雜導致的 SLA 難達成,平臺通過各項優(yōu)化,簡化了 SLA 達成流程;針對下游任務(wù)運維壓力大的問題,平臺優(yōu)化通知體系,及時播報 SLA 狀態(tài)。

那么,SLA 保障平臺有哪些核心模塊?平臺是如何運轉(zhuǎn)的呢?

三、核心概念介紹

3.1 角色:

目前 SLA 保障平臺的核心角色有三類,分別是:

  • 申報人:即 SLA 提申報的人,一般是數(shù)據(jù)業(yè)務(wù)方,其提申報的目的是保障業(yè)務(wù)數(shù)據(jù)的 SLA;
  • 管理員:滿足數(shù)據(jù)治理方的需求設(shè)置的角色,負責申報的審核、批準、管理、統(tǒng)計、登記、復盤等,其目的是不斷優(yōu)化所屬團隊的數(shù)據(jù)質(zhì)量。
  • 任務(wù)負責人:即待保障 SLA 數(shù)據(jù)鏈路中的任務(wù) owner,負責確定及簽署所負責任務(wù)的 SLA,平臺會按照其簽署的 SLA 進行保障;

3.2 任務(wù):

即產(chǎn)出數(shù)據(jù)的任務(wù),通過數(shù)據(jù)任務(wù)的元信息,可構(gòu)建整條數(shù)據(jù)生產(chǎn)鏈路的完整 DAG。在本平臺中,所涉及的任務(wù)元信息一般需要包含以下內(nèi)容:

3.3 申報單

申報人提起的一次申報內(nèi)容,被稱為一個“申報單”,一個申報單一般包含的核心內(nèi)容如下:

四、申報簽署流程詳解

SLA 保障的前提是先達成 SLA 協(xié)議。在 SLA 保障平臺中,以申報單簽署的形式達成 SLA 協(xié)議。平臺核心特點是優(yōu)化了 SLA 達成的流程,先通過 “系統(tǒng)卡點計算” 減少待簽署任務(wù)的數(shù)量,再通過 “SLA 推薦計算” 自動簽署部分任務(wù),最后為剩下的待簽署任務(wù)智能提供合適的 SLA,進一步降低簽署成本。

在申報簽署環(huán)節(jié)中,各個環(huán)節(jié)的變化將通過通知模塊傳遞信息給相應(yīng)負責人,實時通知降低信息交流成本,加速了 SLA 的達成。

4.1 流程簡介

上圖為申報簽署的一般流程,在實際操作時,如任務(wù)鏈路變化、SLA 時間商討待確認等特殊情況,申報簽署流程會有微調(diào)。

首先需要申報人填寫申報單,在申報人提交后,系統(tǒng)會根據(jù)申報單中的申報任務(wù)拉取上游的所有任務(wù),構(gòu)成一個完整的 DAG,并進行任務(wù)鏈路分析。鏈路分析的結(jié)果是后續(xù)算法的前提,也是管理員審批時的重要參考因素,可以讓用戶快速了解到自身任務(wù)在鏈路中所處的位置及上下游運行情況。

在理想情況下,為保證申報任務(wù)順利推進,需要該任務(wù)的所有上游任務(wù)都簽署 SLA 才算完成簽署。而鏈路復雜導致的上游任務(wù)多、跨團隊溝通成本高、SLA 難以確定等問題,成了整體 SLA 達成的最大阻礙。通過“卡點計算”與“SLA 推薦計算”可以跨越此阻礙。

4.2 卡點計算

本系統(tǒng)采取一定的“卡點策略”,計算出此 DAG 中的部分需要被簽署的任務(wù),此類任務(wù)稱為“卡點任務(wù)”,這個過程稱之為“卡點計算”。計算得到卡點任務(wù)后,在簽署過程中可以忽略其他任務(wù),從而大大降低簽署成本。

一個申報單會關(guān)聯(lián)多個任務(wù)(即該申報任務(wù)及其上游的卡點任務(wù)),同理一個任務(wù)也會關(guān)聯(lián)多個申報單,因為在一個 DAG 中,申報任務(wù)可能從任意節(jié)點起,因此二者是 N:N 的關(guān)系。

當兩個申報單有部分任務(wù)列表重合時,如 Task4 關(guān)聯(lián)了兩個申報單,該任務(wù)的申報方、治理團隊等數(shù)據(jù)是兩個申報單的去重合集,而等級則取所有申報單中最高者。

4.3 SLA 推薦計算

利用任務(wù)及其上下游任務(wù)的歷史運行信息,再結(jié)合推薦算法,得到該任務(wù)的推薦 SLA,這個過程稱之為SLA 推薦計算。

在負責人簽署 SLA 之前,SLA 推薦算法會智能計算每個任務(wù)的推薦的 SLA,并以此進一步通過算法自動簽署部分待簽署的任務(wù),進一步降低簽署成本。據(jù)平臺數(shù)據(jù)統(tǒng)計,此功能可以自動簽署近40% 的 SLA,是最核心的功能之一。

而對于剩余的待簽署任務(wù),會將算法推薦的 SLA 提供給任務(wù)負責人。任務(wù)負責人可以直接選擇直接用這個 SLA 簽署,也可以自行決定 SLA。一般情況下,智能推薦的 SLA 已經(jīng)能滿足絕大多數(shù)的需求,通過推薦 SLA,任務(wù)負責人更快的做出簽署決定,再次降低了簽署成本。

4.4 系統(tǒng)保障監(jiān)控

當一個申報單完成簽署之后,平臺將對申報單中的任務(wù)進行保障服務(wù)。保障服務(wù)的核心就是通過監(jiān)控 SLA 的狀態(tài)變化及時播報消息通知,為相應(yīng)負責人及時提供一手資料,以此降低運維成本。對于一個離線任務(wù),評價其 SLA 主要是依據(jù)其完成時間和其所承諾的 SLA 來判斷,SLA 的狀態(tài)分為四種,分別是:

  • 未到 SLA:即當前時間,任務(wù)未產(chǎn)出,且還未到 SLA 時間(繼續(xù)監(jiān)控);
  • 已達成:即任務(wù)已完成,且完成時間在所承諾的 SLA 之前(發(fā)送就緒通知);
  • 已延遲:即任務(wù)未完成,且當前時間已在所承諾的 SLA 之后(發(fā)送延遲通知);

已延遲(產(chǎn)出):即任務(wù)已完成,但完成時間在所承諾的 SLA 之后(發(fā)送延遲產(chǎn)出通知);

從下圖可以看到在任務(wù)達成、未達成兩種情況下,隨著時間的推移,其 SLA 狀態(tài)的變化。

SLA 的實時狀態(tài)是數(shù)據(jù)業(yè)務(wù)方所需要的重要信息,因此平臺會所有任務(wù)的 SLA 進行監(jiān)控,并在 SLA 狀態(tài)變化時實時對相關(guān)人員發(fā)送通知,相關(guān)人員根據(jù)收到的通知知曉 SLA 的具體情況,并能做出應(yīng)對措施。

五、復盤管理詳解

復盤管理是本平臺提供的響應(yīng)式治理服務(wù)的實現(xiàn)方式,是數(shù)據(jù)治理方的重點關(guān)注對象。復盤管理又分為問題管理與事故管理,問題管理側(cè)重于“為什么”——即整理分析 SLA 破線的原因,事故管理側(cè)重于“怎么做”——即 SLA 破線事故之后該怎么治理。

5.1 問題管理

問題管理模塊的整體目標是滿足數(shù)據(jù)治理團隊對 SLA 問題的登記管理,支持對登記后的問題數(shù)據(jù)進行不同維度根因數(shù)據(jù)分析,輔助用戶對問題根因進行治理,沉淀治理問題經(jīng)驗。

平臺在進行系統(tǒng)保障監(jiān)控時,會在 SLA 延遲時進行通知播報,并持續(xù)提醒負責人進行問題登記。在問題登記時,平臺提供了一組根因樹輔助登記,明確問題根因類別,方便統(tǒng)計分析。任務(wù)負責人進行問題登記后,累積數(shù)據(jù)展示在問題看板上,數(shù)據(jù)治理方由此做問題分析歸納總結(jié)。

平臺保證了 SLA 延遲記錄與問題之間是一一對應(yīng)的關(guān)系,并在問題看板上關(guān)聯(lián)了 SLA 詳情信息,包括任務(wù)鏈路、負責人、任務(wù)起止時間等。

問題登記往往是一個從多到少的過程,前期出現(xiàn)的問題在逐一治理解決后,將對后期的治理起到很好的參考警示作用,它的數(shù)據(jù)價值如下:

  • 不同 SLA 問題類型的趨勢分布,針對性的治理問題
  • 相同根因引發(fā)了多少 SLA 問題,涉及影響多少數(shù)據(jù)資產(chǎn)
  • 哪些數(shù)據(jù)資產(chǎn)經(jīng)常出現(xiàn) SLA 問題,問題的分類以及是什么根因造成的
  • SLA 問題經(jīng)驗總結(jié),方便類似問題發(fā)生后,后期做推薦輔助快速定位根因

根據(jù)平臺運營的記錄顯示,常見的問題有資源隊列阻塞、上游任務(wù)故障、數(shù)據(jù)傾斜等。某數(shù)據(jù)團隊雙月問題登記總結(jié)如下,問題數(shù)量和問題根因種類得到了有效的收斂:

5.2 事故管理

事故管理用于記錄 SLA 破線事故的復盤與改進管理,每個事故至少對應(yīng)一條 SLA 問題記錄,而每個 SLA 問題不一定會造成事故。

事故可以在任意節(jié)點進行,一般在 SLA 破線并造成實際的業(yè)務(wù)影響之后,需要進行事故登記,事故登記同樣會關(guān)聯(lián)相關(guān)的 SLA 信息。一個事故的處理流程如下所示:

如圖所示,事故主要包含 SLA 事故明細、SLA 事故根因、改進計劃及 SLA 消耗這幾部分,在這其中可以關(guān)注以下幾點:

  • 事故在登記時,會根據(jù)事故明細確認事故根因,并讓相應(yīng)負責人提出改進計劃
  • 用戶可以訂閱事故,在事故的復盤狀態(tài)及其改進計劃的完成狀態(tài)變化時,都會通知訂閱人
  • 任務(wù)的改進計劃在完成前,每日都會提醒計劃負責人,直到計劃完成為止

SLA 事故管理平臺的數(shù)據(jù)是數(shù)據(jù)治理方治理成果的重要依據(jù),也是整個 SLA 保障平臺使用效果的體現(xiàn),它的數(shù)據(jù)價值如下:

  • 對事故的復盤歸檔管理,方便后期隨時查閱,定位相關(guān) SLA 信息
  • 針對不同數(shù)據(jù)團隊發(fā)生 SLA 事故的整體情況進行對比查看,互相借鑒
  • 對事故的改進計劃管理跟蹤,驗收 SLA 的治理效果

以下是某個團隊的雙月事故統(tǒng)計:

通過上述數(shù)據(jù)可知,本平臺有效保障了核心任務(wù)的穩(wěn)定產(chǎn)出,輔助降低了穩(wěn)定性事故發(fā)生的概率,現(xiàn)在每雙月該類型事故數(shù)量長期維持在個位數(shù)。

六、平臺架構(gòu)總結(jié)

平臺整體主要分為基礎(chǔ)組件、規(guī)劃式治理服務(wù)、響應(yīng)式治理服務(wù)三大塊,系統(tǒng)組件架構(gòu)圖如下:

6.1 規(guī)劃式治理服務(wù)

所謂“規(guī)劃式治理”,即在問題發(fā)現(xiàn)前治理,通過主動規(guī)劃約定 SLA 的形式保障任務(wù)產(chǎn)出。規(guī)劃式治理是 SLA 相關(guān)問題發(fā)現(xiàn)的過程。

規(guī)劃式治理服務(wù)即“提供以申報單簽署的方式達成 SLA 協(xié)議的服務(wù)”,包括在此過程中申報單的生命周期管理操作,申報任務(wù)的鏈路分析,以及達成 SLA 之后的系統(tǒng)保障監(jiān)控,服務(wù)于“申報簽署流程”。

6.2 響應(yīng)式治理服務(wù)

響應(yīng)式治理是指通過復盤管理模塊對 SLA 相關(guān)的事故/問題進行登記、管理、復盤的過程。在發(fā)現(xiàn) SLA 相關(guān)問題之后,需要對問題進行處理,形成一個完整的閉環(huán),在發(fā)現(xiàn)問題后進行的治理成為響應(yīng)式治理。

響應(yīng)式治理服務(wù)模塊抽象出問題登記和事故管理兩個模塊,更加靈活的服務(wù)于數(shù)據(jù) SLA 的問題歸因與事故統(tǒng)計。

6.3 基礎(chǔ)組件

基礎(chǔ)組件提供了配置、播報、看板等基本功能模塊服務(wù),為規(guī)劃式、響應(yīng)式治理服務(wù)提供了必要支撐,是整體 SLA 保障服務(wù)不可或缺的一環(huán)。

6.3.1 系統(tǒng)配置

治理團隊配置

治理團隊為 SLA 的管理團隊,每個申報單都需要綁定一個治理團隊,治理團隊主要負責審批申報單。

數(shù)據(jù)團隊配置

數(shù)據(jù)團隊為數(shù)據(jù)的歸屬方,一個數(shù)據(jù)團隊對應(yīng)一個業(yè)務(wù)團隊,數(shù)據(jù)團隊的設(shè)計保障了各個業(yè)務(wù)團隊獨立治理的需求。平臺通過對數(shù)據(jù)團隊的靈活配置支持,可以更細粒度的劃分數(shù)據(jù)與任務(wù)的歸屬,解決權(quán)責不清的問題。

訂閱配置

訂閱管理是配置訂閱信息的平臺,本平臺的訂閱為 SLA 監(jiān)控的通知播報,通過訂閱管理可以將通知指定發(fā)動到個人或者群組。訂閱管理是 SLA 監(jiān)控保障服務(wù)不可或缺的一環(huán)。

6.3.2 通知播報

通知播報是本平臺所提供的基礎(chǔ)通知能力,是降低溝通成本、實現(xiàn)保障服務(wù)、提升用戶體驗的重要手段。在重要節(jié)點變更、用戶操作、SLA 狀態(tài)變化等情況下,都會進行通知播報。通知播報形式多樣,根據(jù)不同的場景,有普通文本消息、加急消息、卡片通知、郵件通知、電話通知等。

6.3.3 SLA 大盤展板

SLA 大盤展板是數(shù)據(jù)治理方最為關(guān)心的部分,展板提供當日 SLA 整體統(tǒng)計信息、SLA 延遲趨勢分析信息、SLA 等級分布明細、任務(wù)健康度明細、團隊 SLA 達成信息統(tǒng)計等豐富信息,是很多團隊數(shù)據(jù)治理指標重要參照來源。

七、未來展望

未來字節(jié)跳動數(shù)據(jù)治理團隊將持續(xù)打磨 SLA 保障平臺,在卡點策略優(yōu)化、SLA 推薦算法優(yōu)化、基于 SLA 的任務(wù)管理機制上持續(xù)提升技術(shù)能力:

  • 卡點策略優(yōu)化:卡點計算作為優(yōu)化簽署流程中核心一環(huán),卡點策略優(yōu)化代表著簽署流程進一步的簡化,未來可以探索利用更多有效的信息優(yōu)化卡點策略。
  • SLA 推薦算法優(yōu)化:SLA 推薦算法是本平臺的核算算法之一,已經(jīng)申請了專利。隨著業(yè)務(wù)的拓展,以及不同種類任務(wù)的支持,此算法還有廣闊的提升空間,如進一步提升自動簽署率,進一步提升準確率等。
  • 基于 SLA 的任務(wù)管理機制:任務(wù)簽署 SLA 信息之后,即可依托 SLA 信息進行資源調(diào)度優(yōu)化,并進行資源分配傾斜。

同時,文中闡述的部分能力已經(jīng)通過火山引擎 DataLeap 產(chǎn)品向企業(yè)客戶開放,歡迎關(guān)注。

責任編輯:未麗燕 來源: 字節(jié)跳動技術(shù)團隊
相關(guān)推薦

2022-08-06 08:50:13

埋點驗證埋點數(shù)據(jù)鏈路

2020-07-16 13:21:54

人工智能

2020-11-30 13:55:23

去中心化區(qū)塊鏈治理

2020-08-27 07:34:50

Zookeeper數(shù)據(jù)結(jié)構(gòu)

2023-01-10 09:08:53

埋點數(shù)據(jù)數(shù)據(jù)處理

2022-02-25 07:34:36

MQTT協(xié)議RabbitMQ

2022-06-08 08:11:56

威脅建模網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2023-11-06 08:16:19

APM系統(tǒng)運維

2022-11-11 19:09:13

架構(gòu)

2023-11-20 08:18:49

Netty服務(wù)器

2023-04-26 15:43:24

容器編排容器編排工具

2015-07-01 09:47:38

2023-03-31 08:16:53

Flutter優(yōu)化內(nèi)存管理

2024-07-26 00:00:10

2024-01-19 11:53:29

文件系統(tǒng)操作系統(tǒng)存儲

2023-10-27 08:15:45

2022-02-24 07:34:10

SSL協(xié)議加密

2023-08-26 20:56:02

滑動窗口協(xié)議

2023-11-08 08:15:48

服務(wù)監(jiān)控Zipkin

2024-02-01 11:57:31

this指針代碼C++
點贊
收藏

51CTO技術(shù)棧公眾號