0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Facebook(Meta)應(yīng)用定義服務(wù)的SLI和SLO實(shí)踐

馬哥Linux運(yùn)維 ? 來(lái)源:jianshu ? 2023-05-08 12:35 ? 次閱讀

定義服務(wù)的SLI和SLO,通過(guò)全局系統(tǒng)呈現(xiàn)、處理所有服務(wù)的SLI/SLO,從而幫助SRE實(shí)踐在系統(tǒng)中的落地。本文介紹了Facebook(Meta)在這方面的實(shí)踐。原文:SLICK: Adopting SLOs for improved reliability

788b5e00-ed4d-11ed-90ce-dac502259ad0.png

我們需要與使用我們的應(yīng)用程序和產(chǎn)品的人們和社區(qū)不斷保持聯(lián)系,從而為他們提供足夠的支持。我們希望將可靠性方面的經(jīng)驗(yàn)提供出來(lái),與我們支持的更大的社區(qū)建立信任關(guān)系。在像Meta(Facebook的新名字)這樣大規(guī)模、快速發(fā)展的環(huán)境中,有成千上萬(wàn)的工程師在頻繁部署代碼、創(chuàng)建特性原型,并對(duì)更改進(jìn)行迭代,因此保障可靠性的工作尤其具有挑戰(zhàn)性。我們需要對(duì)每個(gè)產(chǎn)品、功能和服務(wù)有明確的期望,從而可以更好的為使用我們服務(wù)的用戶提供可視化的體驗(yàn),并分析系統(tǒng)之間的任何瓶頸或復(fù)雜的交互。

我們開(kāi)始研究服務(wù)水平指標(biāo)(SLIs,service-level indicators)和服務(wù)水平目標(biāo)(SLOs,service-level objectives),將其作為期望的設(shè)置,并根據(jù)這些期望度量服務(wù)的性能。為了提供工具支持,我們構(gòu)建了SLICK,這可以看作是一個(gè)專門的SLO商店。有了SLICK,我們能夠集中SLI和SLO定義,從而輕松找到和理解另一個(gè)服務(wù)的可靠性。SLICK可以利用高留存率,以及其他工具無(wú)法找到的關(guān)鍵服務(wù)指標(biāo)的完整粒度數(shù)據(jù),為服務(wù)開(kāi)發(fā)團(tuán)隊(duì)提供洞見(jiàn),并將SLO與公司的其他各種工作流集成起來(lái),以確保SLO成為日常工作的一部分。

在SLICK出現(xiàn)之前,SLO和其他性能指標(biāo)存儲(chǔ)在定制的儀表板、文檔或其他工具中。如果想要定位團(tuán)隊(duì)的SLO,可能需要花費(fèi)一個(gè)小時(shí)的時(shí)間來(lái)搜索或要求人們找到相關(guān)的數(shù)據(jù)。此外,之前的系統(tǒng)并沒(méi)有以完整的粒度長(zhǎng)時(shí)間(超過(guò)幾周)保留這些指標(biāo),這使得對(duì)SLO進(jìn)行更長(zhǎng)時(shí)間的分析幾乎是不可能的。有了SLICK,我們現(xiàn)在能夠:

以一致的方式為服務(wù)定義SLO

精度高達(dá)分鐘級(jí)別的度量數(shù)據(jù),最多可保留兩年

對(duì)SLI/SLO指標(biāo)有標(biāo)準(zhǔn)的可視化和洞見(jiàn)

定期向內(nèi)部小組發(fā)送可靠性報(bào)告,允許團(tuán)隊(duì)基于這些報(bào)告進(jìn)行可靠性檢查

可發(fā)現(xiàn)性(Discoverability)

SLICK定義了一個(gè)標(biāo)準(zhǔn)的模型,幫助公司里的每個(gè)人用同樣的術(shù)語(yǔ)討論可靠性。這使得新的服務(wù)開(kāi)發(fā)團(tuán)隊(duì)能夠無(wú)縫遵循公司范圍的標(biāo)準(zhǔn),在服務(wù)的早期設(shè)計(jì)階段就考慮到服務(wù)需要達(dá)到的可靠性期望。

只要知道服務(wù)名,SLICK就可以幫助我們定位特定服務(wù)的可靠性指標(biāo)和性能數(shù)據(jù)。SLICK通過(guò)構(gòu)建內(nèi)置的服務(wù)索引來(lái)實(shí)現(xiàn)這一點(diǎn),該索引鏈接到帶有標(biāo)準(zhǔn)可視化的儀表板,以分析和評(píng)估服務(wù)的可靠性。因此,只需單擊一下,就可以知道服務(wù)當(dāng)前是否滿足用戶的期望,如果有任何問(wèn)題,就可以馬上開(kāi)始尋找答案。

78a4d5e2-ed4d-11ed-90ce-dac502259ad0.png

上圖是SLICK的SLO索引搜索示例

長(zhǎng)期洞察(Long-term insights)

服務(wù)可靠性的問(wèn)題非常復(fù)雜。在某些情況下,單個(gè)錯(cuò)誤的部署或某一段代碼的變更可能就會(huì)導(dǎo)致服務(wù)突然退化。而在其他情況下,有可能隨著服務(wù)的發(fā)展,不斷累積微小的不可靠因素。

SLICK允許服務(wù)所有者使用最長(zhǎng)可達(dá)兩年的完整粒度的度量和性能數(shù)據(jù)。SLICK中的存儲(chǔ)過(guò)程每小時(shí)運(yùn)行一次數(shù)據(jù)管道,捕獲所有SLI時(shí)間序列數(shù)據(jù),并將它們存儲(chǔ)在分片的MySQL數(shù)據(jù)庫(kù)中。然后分析這些內(nèi)容,形成可消費(fèi)的洞見(jiàn)。這使得每個(gè)人——從工程師到TPM到領(lǐng)導(dǎo)——都能夠了解隨著時(shí)間的推移,可能會(huì)出現(xiàn)的服務(wù)可靠性的退化,而這些信息在之前很有可能會(huì)被忽視。

工作流(Workflows)

為了放大價(jià)值并幫助我們使用新的長(zhǎng)期洞見(jiàn)來(lái)推動(dòng)決策,SLI和SLO需要使用一種人人都能理解和使用的語(yǔ)言來(lái)規(guī)劃和評(píng)估影響。為了實(shí)現(xiàn)這一點(diǎn),我們將SLO集成到公共工作流中。

當(dāng)大規(guī)模事件發(fā)生時(shí),通過(guò)查看實(shí)時(shí)工具中的SLO,服務(wù)開(kāi)發(fā)團(tuán)隊(duì)可以評(píng)估其對(duì)整體用戶體驗(yàn)的影響。另一方面,當(dāng)發(fā)生重大事件時(shí),也可以基于SLO來(lái)驅(qū)動(dòng)處理流程。我們首先使用SLO作為公司內(nèi)部事件的標(biāo)準(zhǔn),其他系統(tǒng)可以使用這些標(biāo)準(zhǔn)來(lái)獲得用戶看到的問(wèn)題的警報(bào)。

從本質(zhì)上說(shuō),將SLI和SLO集成到其他工具中,可以方便的將尚未引入的服務(wù)引入到SLICK中,從而以易于訪問(wèn)和易于使用的方式獲得有效的見(jiàn)解。

SLICK引入(SLICK onboarding)

服務(wù)開(kāi)發(fā)團(tuán)隊(duì)通過(guò)UI或者編寫(xiě)一個(gè)簡(jiǎn)單的配置文件來(lái)支持SLICK,該文件遵循帶有服務(wù)名稱等信息的DSL,可以查詢SLI時(shí)間序列以及相應(yīng)的SLO。

78cf911a-ed4d-11ed-90ce-dac502259ad0.png

在用戶測(cè)試并提交配置之后,SLICK會(huì)自動(dòng)將服務(wù)添加到索引中,然后生成特定于服務(wù)的指示板,并開(kāi)始收集數(shù)據(jù)以進(jìn)行長(zhǎng)期觀測(cè)。除了這個(gè)配置文件,其他所有集成都是開(kāi)箱即用的。

使用SLICK

1)儀表板

SLICK儀表板為服務(wù)開(kāi)發(fā)團(tuán)隊(duì)提供了監(jiān)控實(shí)時(shí)SLI數(shù)據(jù)以及基于高留存率、長(zhǎng)期數(shù)據(jù)的歷史趨勢(shì)的能力。

78ee7404-ed4d-11ed-90ce-dac502259ad0.png

上圖:左邊以完整的粒度說(shuō)明了SLI時(shí)間序列。右側(cè)顯示基于時(shí)間的SLI值的每周聚合和SLO的相對(duì)差距。

2)周期性報(bào)告

SLICK為工程師提供了SLO性能總結(jié)報(bào)告的能力,這些報(bào)告會(huì)定期發(fā)布給內(nèi)部團(tuán)隊(duì)。報(bào)告為服務(wù)開(kāi)發(fā)團(tuán)隊(duì)提供了一種簡(jiǎn)單的方法來(lái)關(guān)注回歸并進(jìn)行回顧,我們經(jīng)??吹椒?wù)開(kāi)發(fā)團(tuán)隊(duì)在這些帖子的評(píng)論中討論可靠性問(wèn)題。

792231c2-ed4d-11ed-90ce-dac502259ad0.png

3)CLI

SLICK提供了命令行接口,使服務(wù)所有者能夠執(zhí)行某些操作,比如回填數(shù)據(jù)、根據(jù)需要生成報(bào)告,或者測(cè)試對(duì)SLICK配置的更改的效果。

SLICK架構(gòu)

總體架構(gòu)

796cafea-ed4d-11ed-90ce-dac502259ad0.png

SLICK配置(SLICK CONFIGS):使用SLICK的DSL編寫(xiě)的配置文件,由用戶提交到SLICK配置存儲(chǔ)區(qū)。

SLICK同步器(SLICK SYNCER):將對(duì)SLICK配置所做的更改同步到SLICK配置元數(shù)據(jù)存儲(chǔ)的服務(wù)。

SLICK UI:為每個(gè)服務(wù)生成的SLICK儀表板,SLICK UI還提供了前面提到的索引。

SLICK服務(wù)(SLICK SERVICE):提供API的服務(wù)器,能夠回答諸如“如何為特定的可視化計(jì)算SLO?”這樣的問(wèn)題。服務(wù)器允許我們抽象出關(guān)于數(shù)據(jù)存儲(chǔ)和分片的所有細(xì)節(jié),使調(diào)用者能夠輕松找到所需數(shù)據(jù)。

SLICK數(shù)據(jù)流水線(SLICK DATA PIPELINES):周期性運(yùn)行的流水線,以便長(zhǎng)期獲取SLI數(shù)據(jù)。

數(shù)據(jù)獲取詳細(xì)設(shè)計(jì)(Zooming in on the data ingestion)

799aa17a-ed4d-11ed-90ce-dac502259ad0.png

SLICK每小時(shí)運(yùn)行一次數(shù)據(jù)流水線,這些流水線通過(guò)查詢SLICK的配置元數(shù)據(jù)來(lái)查找所有SLI。流水線對(duì)被監(jiān)控的數(shù)據(jù)集執(zhí)行所有需要的查詢,以獲得以分鐘為粒度的當(dāng)前時(shí)刻每個(gè)SLI的原始時(shí)間序列數(shù)據(jù)。

然后,流水線參考SLICK分片映射確定每個(gè)SLI的數(shù)據(jù)應(yīng)該存儲(chǔ)在哪里,然后將數(shù)據(jù)批量插入到適當(dāng)?shù)姆制小?/p>

此外,可以執(zhí)行數(shù)據(jù)質(zhì)量檢查,從而使我們對(duì)數(shù)據(jù)流水線的操作方式充滿信心,并快速捕獲真正的錯(cuò)誤。數(shù)據(jù)質(zhì)量檢查針對(duì)一組確定性測(cè)試時(shí)間序列運(yùn)行,用處理真實(shí)SLI序列同樣的方式處理這些確定性時(shí)間序列,也就是說(shuō),對(duì)它們執(zhí)行流水線,將它們插入到分片數(shù)據(jù)庫(kù)中,最后,將數(shù)據(jù)庫(kù)中的行與預(yù)期的時(shí)間序列進(jìn)行比較,以驗(yàn)證系統(tǒng)的行為。

Meta應(yīng)用SLICK的SLO的當(dāng)前狀態(tài)

在2019年創(chuàng)建了SLICK后,我們發(fā)現(xiàn)到2021年,全公司已經(jīng)有超過(guò)1000個(gè)服務(wù)接入了SLICK。我們還看到其他許多公司在可靠性方面的成功案例,下面會(huì)分享其中的一部分。請(qǐng)注意,出于保密原因,下面圖表使用了模擬數(shù)據(jù),我們刪除了日期并略微修改了數(shù)值,但圖表的整體形狀保持不變。

LogDevice:回歸檢測(cè)和修復(fù)示例

LogDevice是我們的分布式日志存儲(chǔ)系統(tǒng)。服務(wù)開(kāi)發(fā)團(tuán)隊(duì)可以通過(guò)SLICK對(duì)讀可用性進(jìn)行回歸檢查,并且可以基于這些數(shù)據(jù)修復(fù)回歸發(fā)現(xiàn)的問(wèn)題,并通過(guò)SLICK確認(rèn)修復(fù)恢復(fù)了讀取可用性的服務(wù)級(jí)別。

79c282ee-ed4d-11ed-90ce-dac502259ad0.png

上圖:LogDevice可靠性(讀可用性)。此圖不按比例繪制,僅供討論之用。

后端ML服務(wù)可靠性示例

2020年,Meta公司一個(gè)關(guān)鍵后端ML系統(tǒng)開(kāi)始出現(xiàn)顯著的可靠性退化,而這是一個(gè)影響到我們終端應(yīng)用用戶的ML服務(wù)。

SLICK數(shù)據(jù)顯示,該服務(wù)始終沒(méi)有達(dá)到SLO要求,服務(wù)開(kāi)發(fā)團(tuán)隊(duì)能夠識(shí)別這種回歸,并幫助啟動(dòng)了可靠性評(píng)估,從而幫助他們調(diào)查、發(fā)現(xiàn)和修復(fù)可靠性問(wèn)題的根本原因。團(tuán)隊(duì)解決了根本原因,服務(wù)回到了滿足SLO的狀態(tài)。

79d51d5a-ed4d-11ed-90ce-dac502259ad0.png

上圖:后端ML服務(wù)可靠性(可用性)。此圖不按比例繪制,僅供討論之用。

我們的收獲

在推進(jìn)SLO的過(guò)程中,我們走過(guò)了很長(zhǎng)的一段路,并從中吸取了一些經(jīng)驗(yàn)教訓(xùn):

長(zhǎng)期跟蹤能力非常有價(jià)值,能夠幫助我們了解趨勢(shì),從而使我們可以計(jì)劃一段更長(zhǎng)時(shí)間的可靠性工作。

SLO必須處于工程文化的中心,無(wú)論是在戰(zhàn)略可靠性規(guī)劃還是日常溝通中。

引入SLO有助加強(qiáng)我們服務(wù)的整體可靠性。

SLICK團(tuán)隊(duì)將繼續(xù)致力于平臺(tái)的發(fā)展以提供更多的價(jià)值。我們特別希望在以下領(lǐng)域進(jìn)行投資:

使服務(wù)的SLO與其依賴項(xiàng)的SLO保持一致。這將允許團(tuán)隊(duì)理解他們的依賴關(guān)系如何影響他們的性能,還能幫助我們揭示調(diào)用棧中服務(wù)之間不匹配的期望值,而這些不匹配因素有可能觸發(fā)級(jí)聯(lián)失敗。

為服務(wù)開(kāi)發(fā)團(tuán)隊(duì)提供如何提高服務(wù)可靠性的反饋和建議。我們希望利用在提高可靠性方面的經(jīng)驗(yàn),為服務(wù)開(kāi)發(fā)團(tuán)隊(duì)提供可操作的見(jiàn)解,以幫助他們提高可靠性并滿足SLO。

進(jìn)一步發(fā)展SLICK的覆蓋范圍。我們希望在SLICK上搭載更多的團(tuán)隊(duì)和服務(wù),為了做到這一點(diǎn),SLICK需要保持可靠性和可擴(kuò)展性(滿足我們自己的SLO)。

編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Facebook
    +關(guān)注

    關(guān)注

    3

    文章

    1429

    瀏覽量

    54474
  • Meta
    +關(guān)注

    關(guān)注

    0

    文章

    231

    瀏覽量

    11256

原文標(biāo)題:Facebook基于SLO的可靠性保障實(shí)踐

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    #硬聲創(chuàng)作季 【科技】Meta前身竟是Facebook ! [ #536]

    Facebook行業(yè)芯事時(shí)事熱點(diǎn)
    Mr_haohao
    發(fā)布于 :2022年09月29日 22:46:19

    Facebook背后的軟件揭秘

    )◆Facebook的照片量比其他所有圖片網(wǎng)站加起來(lái)還多(包括Flickr等網(wǎng)站)◆每個(gè)月超過(guò)30億張照片被上傳◆Facebook的系統(tǒng)服務(wù)每秒處理120萬(wàn)張照片,這不包括CDN服務(wù)
    發(fā)表于 07-16 06:48

    Facebook后臺(tái)背后的技術(shù)

    今天我們一起來(lái)了解Facebook背后的軟件,看看作為當(dāng)今世界上訪問(wèn)量最大的網(wǎng)站之一,Facebook是如何保證5億用戶的系統(tǒng)一直穩(wěn)定可靠的運(yùn)行。Facebook的擴(kuò)展性挑戰(zhàn)
    發(fā)表于 07-17 06:18

    首屆META2021元宇宙大會(huì)暨頒獎(jiǎng)盛典上海引爆

    首屆META2021元宇宙大會(huì)暨頒獎(jiǎng)盛典上海引爆 META2021元宇宙元年頒獎(jiǎng)盛典META2021 Metaverse First Year AwardsCeremonyMETA2021元宇宙產(chǎn)業(yè)
    發(fā)表于 11-25 11:03

    首屆META2021元宇宙大會(huì)暨頒獎(jiǎng)盛典上海引爆

    等場(chǎng)景變革的巨大機(jī)遇,蘋果、亞馬遜、Alphabet、微軟和 Facebook等企業(yè)押注元宇宙,網(wǎng)易、華為、騰訊、字節(jié)跳動(dòng)等國(guó)內(nèi)巨頭也宣布入局元宇宙。 META2021大會(huì)概述META元宇宙探索大會(huì)
    發(fā)表于 11-25 11:08

    大時(shí)代、大融合、大未來(lái)--META元宇宙頒獎(jiǎng)盛典

    大時(shí)代、大融合、大未來(lái)--META元宇宙頒獎(jiǎng)盛典META元宇宙元年頒獎(jiǎng)盛典META2021 Metaverse First Year Awards CeremonyMETA2021元宇宙產(chǎn)業(yè)發(fā)展探索
    發(fā)表于 12-06 17:30

    如何將自定義配方添加到meta-st-stm32mp層?

    你好 ,我正在嘗試在meta-st-stm32mp層中添加自定義配方。下面是我的 swupdate_1。0.0.bb文件:DESCRIPTION = "Swupdate
    發(fā)表于 12-15 06:30

    nVIDIA的SLI技術(shù)

    nVIDIA的SLI技術(shù) SLI的全稱是Scalable Link Interface(可升級(jí)連接界面),它是通過(guò)一種特殊的接口連接方式,在一塊支持雙PCI Express X16插槽(注意這里只是插槽
    發(fā)表于 12-26 16:01 ?758次閱讀

    Facebook將公司名改為Meta

    近日,Facebook公司在一年一度的Connect大會(huì)上,首席執(zhí)行官馬克·扎克伯格正式宣布:公司名將改為“Meta”,公司股票代碼將從12月1日起變更為“MVRS”。
    的頭像 發(fā)表于 10-29 09:14 ?2330次閱讀

    Facebook改名Meta_轉(zhuǎn)型元宇宙領(lǐng)域

    10月28日,扎克伯格宣布Facebook改名為Meta,轉(zhuǎn)型元宇宙領(lǐng)域。扎克伯格展示了在元宇宙中的工作場(chǎng)景,即可以隨時(shí)召喚同事面對(duì)面討論,在任何地方都能構(gòu)建虛擬會(huì)議室,告別通勤并可以在虛擬工作室里工作。
    的頭像 發(fā)表于 10-29 16:07 ?2015次閱讀

    facebook元宇宙概念

    上周,國(guó)外社交媒體巨頭Facebook公司突然宣布改名為Meta全力發(fā)展元宇宙概念,Facebook將未來(lái)全部押注于虛擬現(xiàn)實(shí)和增強(qiáng)現(xiàn)實(shí),徹底引發(fā)了元宇宙概念的爆發(fā),國(guó)內(nèi)外的優(yōu)秀企業(yè)也紛紛爭(zhēng)相入局元宇宙,元宇宙到底是什么呢?
    的頭像 發(fā)表于 11-08 10:43 ?6105次閱讀

    Meta再臨訴訟 西班牙媒體組織提起6億美元訴訟

    Meta再臨訴訟 西班牙媒體組織提起6億美元訴訟 Facebook母公司Meta再次面臨訴訟;這次是來(lái)自西班牙媒體組織的6億美元訴訟,因?yàn)檎J(rèn)為Facebook開(kāi)展不公正廣告營(yíng)銷活動(dòng),造
    的頭像 發(fā)表于 12-04 09:16 ?417次閱讀

    Facebook開(kāi)源StyleX如何在JavaScript中寫(xiě)CSS呢?

    Meta(原 Facebook)開(kāi)源了全新的 CSS-in-JS 庫(kù) StyleX。
    的頭像 發(fā)表于 12-14 10:03 ?538次閱讀

    Meta服務(wù)器宕機(jī)逾3小時(shí),馬斯克調(diào)侃:“此刻正閱讀的你……”

    3 月 6 日?qǐng)?bào)道,今日多家 Meta 旗下服務(wù),如Instagram和Facebook遭遇嚴(yán)重全球服務(wù)中斷,超過(guò)三小時(shí)無(wú)法正常運(yùn)作。
    的頭像 發(fā)表于 03-06 13:53 ?387次閱讀

    Meta面臨巨額歐盟反壟斷罰款

    Meta(原Facebook母公司)正面臨歐盟反壟斷調(diào)查的嚴(yán)峻挑戰(zhàn),因其被指控試圖通過(guò)其Marketplace服務(wù)主導(dǎo)分類廣告市場(chǎng)。布魯塞爾方面正積極推動(dòng)打擊全球科技巨頭的反競(jìng)爭(zhēng)行為,Meta
    的頭像 發(fā)表于 09-19 16:16 ?76次閱讀