節(jié)省數(shù)億IT成本,B站FinOps實(shí)踐
本期作者

01.背景
當(dāng)前,降本增效是各大互聯(lián)網(wǎng)公司的重要方向,IT成本則占據(jù)了互聯(lián)網(wǎng)公司成本的大頭。如何有效的降本?如何推動各業(yè)務(wù)線配合?如何平衡成本、質(zhì)量和效率?本文將介紹B站的IT成本管理和優(yōu)化的思路,介紹B站通過落地FinOps,推進(jìn)成本洞察、技術(shù)優(yōu)化和運(yùn)營優(yōu)化,提升資源效率的經(jīng)驗(yàn)。2022年,在B站DAU穩(wěn)步增長的情況下,IT成本花費(fèi)金額低于21年同期,為公司節(jié)省了數(shù)億成本。項(xiàng)目團(tuán)隊(duì)也獲得了公司2022年度技術(shù)突出貢獻(xiàn)獎。
02.歷史
IT的成本管理主要是針對預(yù)算的管理,每財年開始的時候完成整個財年的預(yù)算編制。在預(yù)算編制的過程中,將業(yè)務(wù)目標(biāo)轉(zhuǎn)化為成本,結(jié)合技術(shù)優(yōu)化方案,定下來降本目標(biāo)。業(yè)務(wù)增長目標(biāo)加上降本目標(biāo)得出成本目標(biāo)。

預(yù)算定好了,降本目標(biāo)也定好了,那是不是按部就班的執(zhí)行就好了?這中間暴露出來幾個問題:
??預(yù)算過程中技術(shù)中臺參與不夠,業(yè)務(wù)直接提預(yù)算,技術(shù)中臺最后被告知資源需求。
??預(yù)算內(nèi)的需求變成白名單,采購流程時直接pass,預(yù)算控制力度不夠,容易造成浪費(fèi)。
??缺乏業(yè)務(wù)視角的全域賬單,業(yè)務(wù)對成本無感知,預(yù)算外的優(yōu)化動力不足,成本控制很難超預(yù)期,甚至可能不達(dá)預(yù)期。
其中最重要的是最后一個問題,業(yè)務(wù)對資源效率和成本無感知,那么降本的收益也就難以評估,業(yè)務(wù)的降本動力就會不足。
03.效能大盤——感知資源利用率
既然降本目標(biāo)已經(jīng)下達(dá),行動就迫在眉睫。
一開始我們延續(xù)傳統(tǒng)思路,提到降本增效,第一反應(yīng)就是各類資源利用率。與所有互聯(lián)網(wǎng)公司的敏捷性相同,我們基于內(nèi)部的平臺和資源,整合監(jiān)控系統(tǒng)、資產(chǎn)管理系統(tǒng)、混合云HCRM系統(tǒng)等基礎(chǔ)數(shù)據(jù),使用數(shù)據(jù)平臺的數(shù)倉能力,快速搭建了資源數(shù)倉、數(shù)據(jù)看板與告警機(jī)制?;跉v史數(shù)據(jù),希望支持業(yè)務(wù)資源預(yù)估和制定降本目標(biāo)等活動。
根據(jù)B站的成本占比數(shù)據(jù),我們重點(diǎn)設(shè)立了核心關(guān)注的是帶寬資源和計算資源的利用率相關(guān)指標(biāo)。
??帶寬資源涵蓋各類CDN帶寬、云帶寬和IDC帶寬;
??計算資源則涵蓋自有服務(wù)器、云虛擬機(jī)、租賃裸金屬服務(wù)器等資源。
當(dāng)前我們已經(jīng)實(shí)現(xiàn),針對對不同供應(yīng)商,將同類資源的不同指標(biāo)進(jìn)行歸一化,例如多云場景下不同云廠商的指標(biāo)對齊。對于GPU這類資源,還會考量訓(xùn)練、推理等不同場景下的利用率等。
為了更好的聯(lián)動其他團(tuán)隊(duì),我們還給公司內(nèi)各類技術(shù)中臺建立效能模型,注重計算、存儲等各類平臺模型都有不同,以容器平臺為例:

關(guān)注以上指標(biāo),可有效評估容器平臺的資源效能,支持平臺做資源水位線管理,度量使用效率和技術(shù)優(yōu)化空間。
經(jīng)過一段時間的實(shí)踐,盡管拉著資源使用者聊利用率、巡檢各部門空閑機(jī)器、甚至定期制作各類排名榜單,我們還是發(fā)現(xiàn)降本工作推進(jìn)緩慢。技術(shù)中臺與業(yè)務(wù)部門間難以聯(lián)動、研發(fā)人員缺乏成本意識、無法量化降本產(chǎn)出等核心問題依舊難以解決。
那段時間,碰上行業(yè)內(nèi)越來越多公司開始重視降本增效,在與其他公司的相關(guān)從業(yè)者多次交流討論后,一個概念逐漸出現(xiàn)到我們眼前——FinOps(Financial Operations)。
04.FinOps概念——確定行動步驟
按照FinOps Foundation給出的定義,F(xiàn)inOps是一種不斷發(fā)展的云財務(wù)管理規(guī)范和文化實(shí)踐,通過幫助工程、財務(wù)、技術(shù)和業(yè)務(wù)團(tuán)隊(duì),基于數(shù)據(jù)驅(qū)動,在支出決策上展開合作,使得組織能夠獲取最大的業(yè)務(wù)價值。
當(dāng)前云原生成為技術(shù)選型的共識,B站內(nèi)部平臺和系統(tǒng)也大多選擇了云原生的道路。B站的云原生是搭建在私有云、公有云的多云環(huán)境上的,其中私有云底層資源為租賃IDC和自有服務(wù)器資產(chǎn)。FinOps的整個框架不僅適用于公有云上的資源和成本管理,也同樣適用于私有云,整體的工作思路和邏輯是一致的。

從上面FinOps Framework可以看到,參與Finops的角色很多:
??企業(yè)高管
??業(yè)務(wù)負(fù)責(zé)人
??工程和運(yùn)維團(tuán)隊(duì)
??財務(wù)和采購
??FinOps實(shí)踐者
做為FinOps實(shí)踐者,需要聯(lián)合業(yè)務(wù)、平臺、運(yùn)維、基礎(chǔ)工程、財務(wù)和采購團(tuán)隊(duì)一起,對IT成本進(jìn)行有效管理和優(yōu)化。
FinOps的生命周期分為三個階段:
??成本洞察
??成本優(yōu)化
??成本運(yùn)營
在反復(fù)研究相關(guān)理論后,我們定下了B站基于FinOps視角下降本的實(shí)驗(yàn)路徑:
??成本量化打基礎(chǔ),通過賬單提升業(yè)務(wù)對成本的感知。
??技術(shù)降本和運(yùn)營降本“雙駕馬車”并行推進(jìn)。
??通過事前計劃、事中控制、事后分析多項(xiàng)舉措,將成本的指標(biāo)納入業(yè)務(wù)方案和商務(wù)采購的考量,成本控制貫穿在整個資源生命周期的管理。

05.引入財務(wù)視角——洞察技術(shù)成本
所有技術(shù)需求的開展都離不開其底層資源,而各類IT資源的成本,需要納入財務(wù)對各業(yè)務(wù)線的ROI考核中。但在之前很長一段時間內(nèi),業(yè)務(wù)線可能只有一個預(yù)算的大概數(shù)字,并不了解細(xì)節(jié),自然也不能引起重視。也就沒有量化分析的基礎(chǔ),很難明確優(yōu)化的目標(biāo)和方向。
為了更好的衡量技術(shù)成本,將每一筆IT資源的采購成本,折算到每個業(yè)務(wù)甚至每次活動中,為了讓每個業(yè)務(wù)線都能清楚錢花到哪里去了,了解其IT成本及具體構(gòu),我們首先引入財務(wù)中的兩個概念。
?5.1?CAPEX和OPEX
? CAPEX(Capital Expenditure,即資本性支出):對應(yīng)預(yù)算現(xiàn)金流口徑,指實(shí)際支出的金額。
? OPEX(Operating Expense,即運(yùn)營支出):硬件一次性支出按照會計科目折舊計算,帶寬服務(wù)類非一次性支出和CAPEX一致。
想要將CAPEX轉(zhuǎn)化為OPEX,就需要計算TCO(Total Cost of Ownership),將采購硬件資產(chǎn)的一次性成本分?jǐn)偟皆撡Y產(chǎn)的生命周期里。以一臺服務(wù)器為例,直接采購成本即為CAPEX,將采購成本分?jǐn)偟浇窈笫褂玫拿總€月,再增加服務(wù)器每月配套使用的其他資源成本,即可得到TCO模型:

(1)? 其中Server_Tco-month為一臺服務(wù)器每月的TCO金額。
(2)? Depreciation為按照標(biāo)準(zhǔn)會計準(zhǔn)則,單臺機(jī)器的每月折舊金額。
(3)? Net為租賃IDC中所有網(wǎng)絡(luò)設(shè)備的每月折舊。
(4)? Idc為當(dāng)月IDC中發(fā)生的所有成本,含機(jī)柜、電力、維護(hù)等。
(5)? Line為連接IDC間內(nèi)網(wǎng)專線線路的每月費(fèi)用。
(6)? f_1是單臺服務(wù)器分?jǐn)偤瘮?shù),以算出除折舊外,單臺服務(wù)器的每月其他成本。
?5.2 定價
B站的業(yè)務(wù)搭建在公有云和私有云上,想要各個業(yè)務(wù)了解成本,需要公有云和私有云都能計費(fèi)和拆帳。將IT資源和對應(yīng)的成本掛鉤。技術(shù)中臺想要和公有云一樣具備計費(fèi)、出賬和對賬的能力,則需要統(tǒng)一設(shè)計和升級。各技術(shù)中臺需設(shè)計計費(fèi)的SKU(即平臺售賣的產(chǎn)品),定好價格策略,然后統(tǒng)計各業(yè)務(wù)的資源用量,最終實(shí)現(xiàn)向內(nèi)部業(yè)務(wù)計費(fèi)出賬。
SKU設(shè)計時即考慮和公有云平臺對齊,以便和公有云成本對比。又需要兼顧公司的實(shí)際業(yè)務(wù)場景需求。例如,容器平臺的一種CPU產(chǎn)品定價模型如下:


(7)? Cost_total是該類容器平臺SKU對應(yīng)自有服務(wù)器的總成本,n為該SKU對應(yīng)的所有服務(wù)器。
(8)? Price_cpu為CPU定價。
(9)? Ratio_cpu為CPU成本系數(shù),用于折算服務(wù)器中CPU關(guān)聯(lián)的成本。
(10)? Cpu_total是對應(yīng)所有機(jī)器的總邏輯核數(shù)。
(11)? loadfactor為利用率水位線,參考值為近期該SKU對應(yīng)物理服務(wù)器的合理水位線。
(12)? (Cpu_total*loadfactor)就為理論上的總服務(wù)量。
對于其他技術(shù)中臺的SKU,基本適用以上“單價=SKU對應(yīng)TCO/理論總服務(wù)量“的模式。由于技術(shù)中臺沒有盈利壓力,賬單只是為了合理的反應(yīng)業(yè)務(wù)成本,推動業(yè)務(wù)提升使用資源的效率,所以平臺資源利用率的提升讓可售賣的資源更多了,降低了單個資源的單價,業(yè)務(wù)從成本上也能受益。
?5.3 計費(fèi)
成本=單價*用量。單價有了,接下來需要確定業(yè)務(wù)各SKU的計費(fèi)用量了。我們大致將用量的統(tǒng)計方式分成了兩類,共享與獨(dú)占。還是以容器平臺的上述SKU為例:


(13)? t為資源使用時長。
(14)? Usage_shared為共享類資源用量統(tǒng)計方式,Limit是該服務(wù)申請容器的CPU資源限制。
(15)? Usage_exclusively為獨(dú)占類資源用量統(tǒng)計方式,Capacity為該服務(wù)所在pool的所在物理資源上限,loadfactor為該資源利用使用率上限。
在實(shí)際計算中,即使A(獨(dú)占類)、B(共享類)兩個服務(wù)實(shí)際消耗的CPU相同,A的計費(fèi)用量也會高于B的。因?yàn)锳所在資源池就算無服務(wù)運(yùn)行,其獨(dú)占的特性也使其他服務(wù)無法調(diào)度進(jìn)來,造成浪費(fèi)。因此在成本量化上,按其資源池理論最大使用量進(jìn)行收費(fèi)。相對的,共享資源池內(nèi)的空閑節(jié)點(diǎn)可調(diào)度其他服務(wù),按服務(wù)實(shí)際申請容器的limit進(jìn)行收費(fèi)。
通過區(qū)分獨(dú)占、共享用量統(tǒng)計邏輯,更多的業(yè)務(wù)方選擇收費(fèi)更低的共享類資源,服務(wù)器資源的歸屬逐漸從業(yè)務(wù)方,轉(zhuǎn)向技術(shù)中臺,這使得中臺承擔(dān)更多的容量管理工作。原本在公司采購服務(wù)器流程中:預(yù)估業(yè)務(wù)目標(biāo)->轉(zhuǎn)化機(jī)器數(shù)量->提出采購需求->中臺交付資源,技術(shù)中臺不會過多參與整機(jī)數(shù)量評估,業(yè)務(wù)需求采買多少服務(wù)器,中臺最終就交付、托管多少臺的服務(wù)。
而現(xiàn)在,整個流程改進(jìn)為:預(yù)估業(yè)務(wù)目標(biāo)->中臺轉(zhuǎn)化算力需求->評估全局算力缺口->提出采購需求。中臺會收集各業(yè)務(wù)需求,再結(jié)合自身存量資源,提出缺口算力對應(yīng)的采購需求,從而減少資源采買。
?5.4 賬單
“成本=單價*用量”,可以從折舊(Opex)的角度,客觀反映出平臺空閑與超賣情況,推動技術(shù)中臺和業(yè)務(wù)協(xié)同優(yōu)化,并量化成本收益。
??技術(shù)中臺:角色轉(zhuǎn)變?yōu)閷蝺r負(fù)責(zé),通過提升資源利用率、技術(shù)架構(gòu)升級,減少平臺底層資源采買,多供應(yīng)商的議價能力,降低各類SKU的單價,各優(yōu)化項(xiàng)目可以明確的轉(zhuǎn)化為成本收益,讓技術(shù)中臺的成本更具競爭力。
??業(yè)務(wù)方:通過治理應(yīng)用實(shí)例的數(shù)量/存儲量、規(guī)模、使用時長、共享與獨(dú)占方式切換,降低SKU的用量。
雙方齊頭并進(jìn),合作共贏,優(yōu)化IT成本。

賬單生成好了,下個主要問題是讓業(yè)務(wù)負(fù)責(zé)人了解賬單并Review成本,從而確定后續(xù)優(yōu)化方向。賬單的確認(rèn)流程由統(tǒng)一的出賬系統(tǒng)實(shí)現(xiàn),具體成本分?jǐn)偟囊?guī)則、資源定價和出賬的流程都在系統(tǒng)里定義。系統(tǒng)里還有各類資源IT成本模型,能夠量化資源與成本關(guān)系,最終將每一種IT成本以統(tǒng)一的形式發(fā)送給業(yè)務(wù)方。
依托于出賬系統(tǒng),公有云和私有云成本都能在統(tǒng)一的賬單里展示,業(yè)務(wù)查看賬單就能知道完整的IT成本構(gòu)成。每月各業(yè)務(wù)技術(shù)負(fù)責(zé)人在收到系統(tǒng)推送的賬單后,需完成對賬Review,并在系統(tǒng)中確認(rèn)賬單。如對賬單細(xì)節(jié)有疑問可在系統(tǒng)中標(biāo)注反饋,出賬平臺將修正賬單。
這里其實(shí)包含了很多的溝通成本,業(yè)務(wù)剛開始收到一份賬單,是很難看懂賬單的,需要有人"翻譯"一下。業(yè)務(wù)是業(yè)務(wù)視角,賬單是資源視角,一個業(yè)務(wù)或者一個功能對應(yīng)到哪些資源上,各類資源的含義都需要解釋和說明。
對賬中最困難的其實(shí)是“資源歸屬業(yè)務(wù)”的準(zhǔn)確性問題。挑戰(zhàn)來自公司組織架構(gòu)的各種調(diào)整,業(yè)務(wù)和資源的不斷變化,還有歷史包袱,有些歷史資源歸屬不清等等。
為確保歸屬的準(zhǔn)確性,歸屬映射關(guān)系從服務(wù)樹(CMDB)同步。每一個微服務(wù)應(yīng)用都有自身的APPID(Application Identification)。出賬系統(tǒng)通過APPID來進(jìn)行應(yīng)用的唯一定位與關(guān)聯(lián)相關(guān)資源的項(xiàng)目、部門和負(fù)責(zé)人等信息。基于CMDB的APPID(服務(wù)/應(yīng)用粒度)=>項(xiàng)目=>組織架構(gòu)=>業(yè)務(wù)的關(guān)系,實(shí)現(xiàn)多維度的成本視角,應(yīng)用視角,部門視角或者業(yè)務(wù)視角。
非服務(wù)樹(CMDB)支持的資源,則通過各平臺自身維護(hù)的歸屬映射,以實(shí)現(xiàn)多種方式的成本歸屬。例如大數(shù)據(jù)平臺基于工作空間的歸屬關(guān)系。
與此同時,成本數(shù)據(jù)的實(shí)時性也影響到成本監(jiān)測和優(yōu)化分析的有效性。日級別或者更加實(shí)時的賬單,能協(xié)助業(yè)務(wù)快速發(fā)現(xiàn)和定位成本問題,及時調(diào)整項(xiàng)目投入。提升實(shí)時性也是后續(xù)賬單系統(tǒng)的迭代方向。

總結(jié)一下,整個流程就是:平臺出賬=>業(yè)務(wù)對賬=>賬單分析=>針對性優(yōu)化=>優(yōu)化效果反映到下一出賬周期的資源對賬,這樣一套閉環(huán)流程。通過對賬,將IT成本及時同步給Finops中各類干系人,強(qiáng)化成本責(zé)任制,為IT成本優(yōu)化決策提供數(shù)據(jù)支撐。同時反映IT成本優(yōu)化效果、預(yù)算執(zhí)行情況等指標(biāo)。
06.成本優(yōu)化思路——實(shí)操經(jīng)驗(yàn)總結(jié)
成本賬單有了,效能大盤也有了,接下來該在哪些方向上推進(jìn)成本優(yōu)化呢?如何有效推進(jìn)成本優(yōu)化落地呢?
首先讓我們來分析一下成本數(shù)據(jù)。B站的主要業(yè)務(wù)是點(diǎn)播、直播、電商、游戲等,做為一個以視頻為主的網(wǎng)站,B站的每年IT成本花費(fèi)中,帶寬占比最大,其次是硬件,最后是公有云&其他IT服務(wù)類成本。想要做到成本優(yōu)化的收益最大化,那么在各類成本資源項(xiàng)上都需要投入優(yōu)化。
從業(yè)務(wù)角度看,不同的資源需求有著不同的成本模型。
從資源角度看,不同的計費(fèi)方式有著不同的優(yōu)化思路。
??帶寬計費(fèi):一般云廠商為日95月平均,也有月95,即每5分鐘打點(diǎn),取一個周期打點(diǎn)的95峰值。也有包端口的帶寬計費(fèi)方式??梢酝ㄟ^削峰填谷的方法優(yōu)化成本。
??機(jī)柜計費(fèi):月租為主,也有電柜分離的計算方式,通過機(jī)柜電力合適的配比優(yōu)化成本。
??服務(wù)器:一次性成本,通過維保增加從而減少攤銷成本。通過提升CPU利用率減少硬件采購。
??配件:通過改配,打破硬件的瓶頸,提升硬件性能,節(jié)省成本。
??云服務(wù):按照用量計費(fèi),不同云服務(wù)的計費(fèi)方式差異大,彈性是最大的優(yōu)勢。對彈性需求高的業(yè)務(wù)適用,例如游戲。
?6.1?帶寬成本優(yōu)化
帶寬成本是成本的最大頭,從使用角度可以分為點(diǎn)播帶寬、直播帶寬、Web帶寬。其中Web帶寬又細(xì)分為動態(tài)帶寬和靜態(tài)帶寬。
??點(diǎn)播帶寬:點(diǎn)播業(yè)務(wù)使用的流媒體帶寬。成本最高,優(yōu)化投入最大。
??直播帶寬:直播業(yè)務(wù)使用的流媒體帶寬。成本僅次于點(diǎn)播帶寬,優(yōu)化方向區(qū)別于點(diǎn)播。
? Web動態(tài)帶寬:動態(tài)接口使用的帶寬,CDN回源率100%,不可緩存。
? Web靜態(tài)帶寬:圖片、js、apk等靜態(tài)文件使用的帶寬,可緩存。
6.1.1?點(diǎn)播帶寬成本模型
下面以點(diǎn)播帶寬舉例,點(diǎn)播帶寬的成本模型如下:
點(diǎn)播帶寬成本 = 平均單次播放帶寬 * 點(diǎn)播播放次數(shù) * 帶寬單價。
??平均單次播放帶寬:是用來衡量單次播放的成本,這里的帶寬計算的是95計費(fèi)值,所以不完全等于碼率,但是和碼率趨勢相同。碼率低則單次播放帶寬更低,碼率的優(yōu)化效果會體現(xiàn)在此指標(biāo)上。編碼團(tuán)隊(duì)通過窄帶高清轉(zhuǎn)碼系統(tǒng),AV1等技術(shù)方案優(yōu)化15%的帶寬。
??點(diǎn)播播放次數(shù):和業(yè)務(wù)發(fā)展相關(guān),難以準(zhǔn)確預(yù)測,如超預(yù)期增長,則整體IT成本會有不小的增加,有超預(yù)算的風(fēng)險。
??帶寬單價:點(diǎn)播使用的帶寬資源多樣,既有云廠商提供的點(diǎn)播帶寬,又有自建CDN帶寬,還有PCDN、mCDN等廉價帶寬。不同資源單價不一樣,這些帶寬的占比影響了點(diǎn)播的綜合單價。
6.1.2 點(diǎn)播帶寬優(yōu)化思路
從上述簡化的模型分析可以分析出點(diǎn)播帶寬的優(yōu)化主要是思路是降低碼率和降低單價,實(shí)際推進(jìn)的優(yōu)化項(xiàng)目主要如下:
??通過窄帶高清編碼系統(tǒng),上線并擴(kuò)大AV1覆蓋,進(jìn)一步降低碼率
??基于機(jī)器學(xué)習(xí)做優(yōu)化轉(zhuǎn)碼預(yù)測,提升優(yōu)化碼率的覆蓋
??優(yōu)化視頻播放的清晰度策略
??提升廉價帶寬PCDN、mCDN占比,降低帶寬平均單價
??自建CDN專線互聯(lián),降低回源成本
??內(nèi)容分層,冷的內(nèi)容調(diào)度到聚邊資源,降低回源帶寬量
??削峰填谷,和其他業(yè)務(wù)帶寬共峰復(fù)用
除了點(diǎn)播帶寬,上述的直播、Web動態(tài)、Web靜態(tài)都同步推進(jìn)優(yōu)化,思路也是從成本模型數(shù)據(jù)分析出發(fā),優(yōu)化前核算成本,優(yōu)化后驗(yàn)證收益。
?6.2 服務(wù)器成本優(yōu)化
服務(wù)器硬件優(yōu)化不同于帶寬,主要使用利用率來衡量優(yōu)化效果,同時采用TCO或者Opex來核算和評估技改優(yōu)化方案。
6.2.1?服務(wù)器硬件迭代
??英特爾CPU從Skylake => Cascadelake => Icelake =>Sapphire Rapids,每一代在功耗和單核性能上都有提升。
? AMD CPU從Rome => Milan => Genoa,每一代工藝和性能上都有提升。
? GPU從T4、V100、A10、A100到A800,工藝和性能也在變化。
??網(wǎng)絡(luò)的架構(gòu)也從10Gbps,到25Gbps,再到100Gbps甚至200G。
硬件的迭代速度是飛速的,每一次的硬件迭代,也刷新了單位算力的成本的下限。既然新的硬件更有成本優(yōu)勢,那么應(yīng)該盡量引導(dǎo)業(yè)務(wù)配合硬件升級,每個硬件代次的迭代成本優(yōu)化效果都是非常顯著的。
同時,硬件功耗的增長也是飛速的,機(jī)柜從3KW、4KW、8KW到10KW,機(jī)柜和電力成本優(yōu)化的收益也會非??捎^。在IDC的布局和選擇上,可以選擇更加廉價的資源,將接入的POP點(diǎn)和IDC解耦,以達(dá)到性能和成本的最優(yōu)。
6.2.2 服務(wù)器虛擬化和混部
基于K8S構(gòu)建的私有云容器平臺,是服務(wù)器成本優(yōu)化的主力。平臺也發(fā)表過多篇文章分享混部和VPA技術(shù)。讓我們來整體看下優(yōu)化思路,還記得前面講的效能模型嗎?容器平臺的優(yōu)化就是基于資源的效能模型。

??提升容器總資源量:將服務(wù)器資源盡量都容器化,讓更多的業(yè)務(wù)都搭建在容器之上,不止業(yè)務(wù)應(yīng)用,其他的技術(shù)中臺的應(yīng)用也要盡量接入到容器平臺中。
??提升池化率(可售賣的資源量/總資源量):提高池化率主要是在有限的資源上,盡量增加可售賣的資源量,讓更多的資源都是通過統(tǒng)一的容器調(diào)度。
??提升分配率(已售賣的資源量/可售賣的資源量):不同分配率的資源池可以考慮合并,減少資源碎片和冗余。
??提升利用率(使用資源量/已售賣的資源量):利用率不足將造成資源的極度浪費(fèi),通過建立應(yīng)用畫像,利用超賣、VPA、HPA等有效手段,資源利用率得到大幅提升。
除了以上的手段,混部也是提升利用率的一大利器。利用不同業(yè)務(wù)的潮汐效應(yīng),分時復(fù)用資源。轉(zhuǎn)碼做為算力密集型業(yè)務(wù),最早嘗試混部。目前B站已經(jīng)對離線-離線,在線-離線間進(jìn)行了混部,也有相關(guān)的技術(shù)分享文章。
當(dāng)前在推進(jìn)的主要是AI場景下的混部,也就是推廣搜業(yè)務(wù)的混部。AI業(yè)務(wù)不僅是計算密集型,訪存帶寬也非常高,會觸達(dá)硬件瓶頸,造成雪崩效應(yīng),因此混部策略需要更加謹(jǐn)慎。
?6.3 公有云成本優(yōu)化
不同于服務(wù)器資源,公有云承擔(dān)彈性保障、降低延遲、海外部署等用途。而公有云的成本優(yōu)化,是為在支持業(yè)務(wù)正常發(fā)展的前提下,最大程度使用公有云資源即買即用的特性。
根據(jù)資源類型與其對應(yīng)的計費(fèi)方式,公有云上資源大致可分為網(wǎng)絡(luò)流量、云服務(wù)器等IaaS資源、云上SaaS服務(wù)等資源。不同資源,需對癥下藥。
6.3.1?根據(jù)業(yè)務(wù)特性適配資源
云上項(xiàng)目根據(jù)業(yè)務(wù)特性,會產(chǎn)生波形截然不同的網(wǎng)絡(luò)流量,而云廠商提供的網(wǎng)絡(luò)流量產(chǎn)品也根據(jù)特點(diǎn)還有不同的計費(fèi)方式。需同時考慮此二者關(guān)系,才能做到網(wǎng)絡(luò)成本最優(yōu)。
常見的網(wǎng)絡(luò)類產(chǎn)品計費(fèi)模式有按帶寬計費(fèi)和按流量計費(fèi):
??按帶寬計費(fèi):適用于業(yè)務(wù)流量峰值在不同時間段分布平均,無明顯的流量波動場景
??按流量計費(fèi):適用于業(yè)務(wù)流量波動較大,有突發(fā)的場景。
除計費(fèi)模式外,網(wǎng)絡(luò)線路類型也有不同選擇,例如動態(tài)BGP、靜態(tài)BGP、三大運(yùn)營商單線、公網(wǎng)或混合云專線等,會讓成本有較大差異,同樣需要根據(jù)業(yè)務(wù)的架構(gòu)方案及成本模型進(jìn)行選擇。
??對于帶寬、運(yùn)營商占比穩(wěn)定、且技術(shù)方案可兜底單點(diǎn)故障的項(xiàng)目,優(yōu)先使用三大運(yùn)營商單線。
??對于帶寬波動大、三大運(yùn)營商無法覆蓋、海外部署或流量較小的項(xiàng)目,優(yōu)先使用BGP。
??而跨地域帶寬較高、回源量大的項(xiàng)目則考慮使用混合云專線。
在此基礎(chǔ)上還可考慮其他策略,例如將多個項(xiàng)目的網(wǎng)絡(luò)流量放進(jìn)一個共享帶寬包,可實(shí)現(xiàn)帶寬的共峰收益。
6.3.2 預(yù)先規(guī)劃與定期釋放
IaaS類資源多以實(shí)例*使用時長的形式計費(fèi),因此可在申請階段就控制新增資源量。大型項(xiàng)目的容量、實(shí)例組合和付費(fèi)策略在申請時就要求有明確規(guī)劃。
申請方提交資源需求后,F(xiàn)inOps各方會基于業(yè)務(wù)特點(diǎn)、成本等考慮,確定供應(yīng)商、地域、資源型號等事宜。
6.3.3 自研or公有云
通常情況下,公有云的SaaS類服務(wù)擁有快速部署、簡易維護(hù)等優(yōu)勢,但相較自建乃至云上IaaS產(chǎn)品會有更高的定價。
同類自研產(chǎn)品在公司內(nèi)私有云已投入大量前期成本,擁有較為成熟的技術(shù)積累和專業(yè)運(yùn)維團(tuán)隊(duì),在經(jīng)過一定的標(biāo)準(zhǔn)化改造,可滿足云上同類產(chǎn)品的功能需求。而對于自研暫無法替代或改造收益不高的產(chǎn)品,會通過調(diào)整使用場景、計費(fèi)方式或?qū)ふ覂r格更優(yōu)的同類產(chǎn)品替代。
隨著B站自建機(jī)房節(jié)點(diǎn)與傳輸網(wǎng)絡(luò)建設(shè)程度提升,后續(xù)更多云上項(xiàng)目可復(fù)用基礎(chǔ)服務(wù)和基礎(chǔ)設(shè)施,做到常量私有云+公有云混合部署,突發(fā)公有云彈性兜底,實(shí)現(xiàn)此類服務(wù)的混合云方案。基于上述執(zhí)行辦法的實(shí)踐,B站的自研HTTPDNS域名解析、DSA動態(tài)加速等服務(wù),已節(jié)省超過一半的成本。
?6.4 小結(jié)
如下圖,IT成本除了帶寬、服務(wù)器、公有云,還有很多其他資源成本,各項(xiàng)成本FinOps都需要分析并推動優(yōu)化。在分析和推進(jìn)的過程中,形成了一套完整的成本模型。隨著業(yè)務(wù)不斷的發(fā)展,成本模型和優(yōu)化方案也在不斷進(jìn)步。

07.運(yùn)營優(yōu)化——多方溝通協(xié)同
運(yùn)營優(yōu)化是圍繞兩個方面開展的:
??成本運(yùn)營,依托于預(yù)算、成本賬單和成本模型,及時和各方同步成本情況和問題。
??資源運(yùn)營,依托于資源效能大盤數(shù)據(jù),及時發(fā)現(xiàn)并制止資源浪費(fèi)現(xiàn)象。
?7.1?成本運(yùn)營
??預(yù)算控制:為了降本做到極致,達(dá)到成本最優(yōu),預(yù)算控制需要更加嚴(yán)格。預(yù)算實(shí)際執(zhí)行采購的時間可能和預(yù)算規(guī)劃時間已經(jīng)間隔比較長了,內(nèi)部和外部都發(fā)生了變化,需要及時根據(jù)變化進(jìn)行調(diào)整,盡量減少金額。
??決算分析:每月基于賬單數(shù)據(jù)進(jìn)行成本分析,將超預(yù)算或者其他有改進(jìn)空間的成本項(xiàng)進(jìn)行重點(diǎn)溝通,溝通范圍為業(yè)務(wù)研發(fā)負(fù)責(zé)人、基礎(chǔ)平臺負(fù)責(zé)人、財務(wù)、采購等FinOps各角色。對超預(yù)算的風(fēng)險進(jìn)行預(yù)警,共同商議改進(jìn)措施和策略。
??賬單分析:協(xié)助業(yè)務(wù)理解賬單,從業(yè)務(wù)角度觸發(fā),分析單DAU成本,為業(yè)務(wù)降本提供指標(biāo)和決策依據(jù)。
??成本核算:對于技術(shù)改造的新方案或項(xiàng)目,構(gòu)建成本模型,決策出成本改進(jìn)的最優(yōu)解。
??成本決策:成本的模型搭建不難,難的是如何在追求成本更優(yōu)的情況下,兼顧穩(wěn)定性和效率。成本優(yōu)化通常伴隨著技術(shù)升級和技術(shù)改造,大量的人力投入會影響原來計劃的迭代效率,系統(tǒng)升級也常常會帶來不穩(wěn)定因素。追求廉價資源的使用,也會影響系統(tǒng)的質(zhì)量,需要系統(tǒng)設(shè)計上能考慮到容錯和兜底策略。總的來說,如果沒有強(qiáng)有力的管理層做成本決策,降本增效的效果將會大打折扣。

?7.2 資源運(yùn)營
??公有云主機(jī):結(jié)合利用率監(jiān)控、混合云平臺及供應(yīng)商賬單數(shù)據(jù),需要監(jiān)控資源效能情況,發(fā)現(xiàn)不合理的冗余容量、不再使用的資源,及時推進(jìn)縮容、降配等操作。
??公有云服務(wù):資源巡檢過程中,若發(fā)現(xiàn)無人認(rèn)領(lǐng)、未清退完全的資源,例如閑置未掛載的卻仍在計費(fèi)的云硬盤,歷史悠久的快照等,會定期公示并清退。
? IDC服務(wù)器:對于利用率極低的服務(wù)器,推進(jìn)納入容器的資源池中,盡量容器化。
??其他資源:各服務(wù)使用的合理性也需要運(yùn)營同學(xué)關(guān)注,例如超長短信會拆成多條計費(fèi),合理設(shè)計短信模板,能節(jié)省大量成本。
總結(jié)與展望
B站通過對FinOps的實(shí)踐,實(shí)現(xiàn)了成本洞察=>成本優(yōu)化=>運(yùn)營優(yōu)化的完整閉環(huán)。通過效能數(shù)據(jù)、成本賬單、持續(xù)優(yōu)化和運(yùn)營等關(guān)鍵行動,達(dá)成了業(yè)務(wù)增長而IT成本金額不增長,為公司節(jié)省了數(shù)億成本。后續(xù)FinOps將繼續(xù)在實(shí)時數(shù)據(jù)驅(qū)動決策、成本預(yù)測等方向繼續(xù)探索,追求更加極致的IT成本,提升毛利率。
參考資料
[1]《FinOps Foundation - What is FinOps?》:https://www.finops.org/introduction/what-is-finops/
[2]《從量化到優(yōu)化,詳解有贊離線數(shù)據(jù)降本之路》:https://tech.youzan.com/cong-liang-hua-dao-you-hua-xiang-jie-you-zan-chi-xian-shu-ju-jiang-ben-zhi-lu/
