云數(shù)據(jù)庫(kù)FinOps實(shí)戰(zhàn)復(fù)盤(pán)

歷時(shí)三個(gè)多月的HBase成本優(yōu)化項(xiàng)目按照預(yù)期交付了,HBase云數(shù)據(jù)庫(kù)月度成本下降了32.5%,超出預(yù)期達(dá)成目標(biāo)。
我們對(duì)本次HBase成本優(yōu)化項(xiàng)目進(jìn)行深度復(fù)盤(pán),并進(jìn)一步嘗試總結(jié)云數(shù)據(jù)庫(kù)的FinOps之道。
希望能夠賦能mysql、redis、mongo等其他云數(shù)據(jù)庫(kù)產(chǎn)品實(shí)現(xiàn)降本增效,進(jìn)而給互聯(lián)網(wǎng)寒冬環(huán)境下的企業(yè)IT降本增效,提供一個(gè)參考思路。
本文將從4個(gè)方面進(jìn)行展開(kāi):
- 云數(shù)據(jù)庫(kù)成本挑戰(zhàn)
- 什么是FinOps
- HBase成本優(yōu)化實(shí)踐
- 云數(shù)據(jù)庫(kù)FinOps之道
1、云數(shù)據(jù)庫(kù)成本挑戰(zhàn)
在早期,云計(jì)算被視為企業(yè)降低IT管理成本、提高業(yè)務(wù)敏捷性的重要途徑。尤其是云數(shù)據(jù)庫(kù),高性能、高可用、彈性使用等特性,“數(shù)據(jù)庫(kù)上云”是降本增效的一個(gè)重要途徑。
但是,隨著云數(shù)據(jù)庫(kù)大規(guī)模使用,云產(chǎn)品的成本問(wèn)題開(kāi)始顯現(xiàn)。比如我們使用的雙集群HBase,在投入使用2年后,已經(jīng)成為所有云數(shù)據(jù)庫(kù)類別中,成本占比最大的組件。
如何解決云數(shù)據(jù)庫(kù)成本優(yōu)化問(wèn)題?尤其在這樣的互聯(lián)網(wǎng)寒冬下,是擺在很多技術(shù)團(tuán)隊(duì)面前的首要問(wèn)題。
常見(jiàn)的成本優(yōu)化挑戰(zhàn)包括四種情況:
- 挑戰(zhàn)一:無(wú)法準(zhǔn)確衡量數(shù)據(jù)庫(kù)資源是否存在浪費(fèi)
- 挑戰(zhàn)二:縮容、降配等手段效果不明顯,沒(méi)啥別的優(yōu)化措施
- 挑戰(zhàn)三:基礎(chǔ)架構(gòu)團(tuán)隊(duì)很著急,一線業(yè)務(wù)團(tuán)隊(duì)不care
- 挑戰(zhàn)四:“運(yùn)動(dòng)式”成本優(yōu)化,無(wú)法形成長(zhǎng)效機(jī)制
為了系統(tǒng)化解決這些問(wèn)題,就需要引入FinOps(云成本優(yōu)化)的概念了。
2、什么是FinOps
FinOps 是“Finance”和“DevOps”的綜合體,也被稱為“云財(cái)務(wù)管理”、“云成本管理”或“云財(cái)務(wù)優(yōu)化”等。
FinOps有一個(gè)權(quán)威組織——FinOps 基金會(huì),F(xiàn)inOps 基金會(huì)是Linux 基金會(huì)發(fā)起的項(xiàng)目,致力于通過(guò)最佳實(shí)踐、教育和標(biāo)準(zhǔn)來(lái)推動(dòng)實(shí)踐云財(cái)務(wù)管理學(xué)科。
FinOps基金會(huì)對(duì)FinOps定義如下:
FinOps is an evolving cloud financial management discipline and cultural practice that enables organizations to get maximum business value by helping engineering, finance, technology and business teams to collaborate on data-driven spending decisions.
(Definition Updated: November 2021 by the FinOps Foundation Technical Advisory Council
這里有三點(diǎn)非常關(guān)鍵:
- cultural practice文化建設(shè):FinOps的準(zhǔn)測(cè)與文化需要建設(shè)推廣。(自上而下)
- collaborate 跨團(tuán)隊(duì)協(xié)作:工程、財(cái)務(wù)、技術(shù)和業(yè)務(wù)團(tuán)隊(duì)。(FinOps絕不只是任意一個(gè)團(tuán)隊(duì)的工作)
- data-driven 方式:數(shù)據(jù)驅(qū)動(dòng)。(如何推動(dòng)協(xié)作的關(guān)鍵)
此外,F(xiàn)inOps還有幾個(gè)非常重要的維度,包括六大原則、角色、循環(huán)方法論、成熟度模型。

3、HBase成本優(yōu)化實(shí)踐
參考FinOps六大原則,我們來(lái)看看 HBase成本優(yōu)化項(xiàng)目 中如何落地。
(1)團(tuán)隊(duì)協(xié)作
原則1:Teams need to collaborate
原則2:Everyone takes ownership for their cloud usage
這兩條原則非常具有現(xiàn)實(shí)意義,成本優(yōu)化很難由單一團(tuán)隊(duì)負(fù)責(zé),必須各個(gè)團(tuán)隊(duì)都把 成本 作為一個(gè)關(guān)鍵指標(biāo),持續(xù)優(yōu)化,提高效率和創(chuàng)新能力。
在HBase成本優(yōu)化項(xiàng)目的 立項(xiàng)之初,我們就提前和各個(gè)業(yè)務(wù)團(tuán)隊(duì)進(jìn)行深入溝通,對(duì)HBase成本優(yōu)化的 現(xiàn)狀、價(jià)值、實(shí)施路徑 充分對(duì)齊。
業(yè)務(wù)團(tuán)隊(duì) | 目前成本 | 優(yōu)化成本 | 優(yōu)化方案 | 預(yù)計(jì)人力投入 |
A團(tuán)隊(duì) | xxx | 5k/月 | 降低副本數(shù) | 20人日 |
B團(tuán)隊(duì) | xxx | 8k/月 | 業(yè)務(wù)降級(jí),取消災(zāi)備 | 30人日 |
C團(tuán)隊(duì) | xxx | 4k/月 | 替換云原生數(shù)據(jù)庫(kù) | 25人日 |
D團(tuán)隊(duì) | xxx | 10k/月 | 冷熱分離 | 40人日 |
因此,在項(xiàng)目開(kāi)展過(guò)程中,各個(gè)團(tuán)隊(duì)能結(jié)合各自的業(yè)務(wù)特點(diǎn),采用 業(yè)務(wù)架構(gòu)優(yōu)化、數(shù)據(jù)架構(gòu)優(yōu)化、云原生技術(shù) 等手段,共同朝著HBase成本優(yōu)化的大目標(biāo)前進(jìn)。
(2)中心化驅(qū)動(dòng)
原則3:A centralized team drives FinOps
專門(mén)有一個(gè)團(tuán)隊(duì)來(lái)推動(dòng)FinOps的開(kāi)展,包括各項(xiàng)流程的推進(jìn)、基礎(chǔ)設(shè)施的搭建等。
本次HBase成本優(yōu)化項(xiàng)目中,采用 項(xiàng)目制 的形式,由基礎(chǔ)架構(gòu)團(tuán)隊(duì)進(jìn)行推進(jìn),提供了諸如 成本優(yōu)化目標(biāo)、資源使用狀況、數(shù)據(jù)增長(zhǎng)變化、業(yè)務(wù)改造方案支持 等指標(biāo)與工具。
后續(xù),我們會(huì)開(kāi)發(fā)一個(gè)統(tǒng)一的 FinOps平臺(tái)產(chǎn)品,由一個(gè) 中心化產(chǎn)品,進(jìn)行長(zhǎng)效持久地推進(jìn)云數(shù)據(jù)庫(kù)成本優(yōu)化。
(3)可視化數(shù)據(jù)與報(bào)告
原則4:Reports should be accessible and timely
HBase目前是集群模式運(yùn)作,各個(gè)集群都存在業(yè)務(wù)團(tuán)隊(duì)共用集群的情況。另外,業(yè)務(wù)數(shù)量眾多(近百個(gè)敏捷組),如何快速識(shí)別成本大頭進(jìn)行優(yōu)化,也是一個(gè)重點(diǎn)問(wèn)題。
因此,本次HBase成本優(yōu)化項(xiàng)目中,充分踐行了 數(shù)據(jù)驅(qū)動(dòng) 的理念。
- 大數(shù)據(jù)量識(shí)別篩選出單副本大于5T的業(yè)務(wù),共15個(gè)敏捷組,占總存儲(chǔ)80%以上
- 高增速識(shí)別篩選出增速較快的業(yè)務(wù)。
- 優(yōu)化效果指標(biāo)評(píng)判采用腳本統(tǒng)計(jì)的方式記錄數(shù)據(jù),跟蹤目標(biāo)業(yè)務(wù)的優(yōu)化情況。
這些數(shù)據(jù)驅(qū)動(dòng)的能力,后續(xù)會(huì)沉淀為FinOps平臺(tái)上的通用組件能力。
(4)因地制宜,業(yè)務(wù)架構(gòu)優(yōu)化
原則5:Decisions are driven by business value of cloud
獲得成本相關(guān)數(shù)據(jù)后,根據(jù)實(shí)際業(yè)務(wù)價(jià)值和使用情況進(jìn)行成本優(yōu)化決策。
本次HBase成本優(yōu)化項(xiàng)目中,各個(gè)業(yè)務(wù)團(tuán)隊(duì)充分利用各自業(yè)務(wù)特點(diǎn),進(jìn)行相關(guān)業(yè)務(wù)優(yōu)化。
減少副本數(shù)
以HBase為例,本身存儲(chǔ)在本地盤(pán)的HDFS上,通過(guò)三副本機(jī)制保證數(shù)據(jù)不丟失。
為了提高應(yīng)用穩(wěn)定性,降低單HBase不可用帶來(lái)的風(fēng)險(xiǎn),我們核心服務(wù)都配備了雙集群主備架構(gòu)的HBase。這樣導(dǎo)致了一份數(shù)據(jù)會(huì)存在六個(gè)副本,造成了磁盤(pán)空間使用率的極速膨脹。

在多副本災(zāi)備架構(gòu)下,可以對(duì)主備集群內(nèi)數(shù)據(jù)都調(diào)整為兩副本(去掉replica3、replica6),整體變?yōu)樗母北荆梢越档?0%的磁盤(pán)空間使用。
某業(yè)務(wù)團(tuán)隊(duì)單副本140T數(shù)據(jù),六副本840T,磁盤(pán)使用率不斷上漲,造成巨大成本壓力。我們通過(guò)調(diào)整副本數(shù)量為四副本(從原來(lái)的六副本),有效降低了280T數(shù)據(jù)的磁盤(pán)使用空間。
數(shù)據(jù)冷熱分離
如果數(shù)據(jù)量過(guò)大,一般可以考慮根據(jù)數(shù)據(jù)生命周期特點(diǎn),實(shí)施冷熱分離、無(wú)效數(shù)據(jù)清理。

關(guān)鍵邏輯
- 客戶端寫(xiě)熱存儲(chǔ)
- 客戶端查詢時(shí),根據(jù) 業(yè)務(wù)冷熱劃分邏輯 進(jìn)行路由查詢。
- 遷移任務(wù)根據(jù) 業(yè)務(wù)冷熱劃分邏輯(一般為生產(chǎn)時(shí)間或修改時(shí)間)進(jìn)行 查詢&過(guò)濾 ,將符合條件的冷數(shù)據(jù)寫(xiě)入冷存儲(chǔ),并且從熱存儲(chǔ)中刪除
- 對(duì)賬任務(wù)根據(jù)遷移任務(wù)的記錄日志log,進(jìn)行定時(shí)校驗(yàn),確保數(shù)據(jù)不丟失,校驗(yàn)無(wú)誤后清理log
做好數(shù)據(jù)壓縮,減少存儲(chǔ)量
對(duì)于單value比較大的數(shù)據(jù),可以通過(guò)數(shù)據(jù)壓縮算法,如snappy、lz4、gizp等,提高數(shù)據(jù)壓縮比,降低存儲(chǔ)。
HBase、mongo等數(shù)據(jù)庫(kù)服務(wù)端可以做自動(dòng)壓縮的配置,如果服務(wù)端不支持自動(dòng)壓縮的,可以采用客戶端壓縮后再寫(xiě)入。
(5)充分利用云產(chǎn)品
原則6:Take advantage of the variable cost model of the cloud
充分利用好不同的云產(chǎn)品計(jì)費(fèi)模型。這個(gè)目前其實(shí)做得比較多了,比如選擇不同云廠商的不同產(chǎn)品、根據(jù)不同場(chǎng)景選擇不同計(jì)費(fèi)模式( 包年包月、按量付費(fèi)、serverless等)等。
本次HBase成本優(yōu)化項(xiàng)目中,典型的就是在某個(gè)特定業(yè)務(wù)場(chǎng)景下,引入了 HBase serverless方案 作為災(zāi)備集群,降低了普通集群作為災(zāi)備集群的低效支出。
4、云數(shù)據(jù)庫(kù)FinOps之道
前面聊了HBase成本優(yōu)化實(shí)踐的若干原則與具體操作,比較偏重“術(shù)”的層面。
下面,我們?cè)俳Y(jié)合FinOps的循環(huán)治理方法論,來(lái)更全面地思考云數(shù)據(jù)庫(kù)的FinOps之道。

FinOps 基金會(huì)建議采用迭代方法來(lái)管理云服務(wù)的可變成本。最佳實(shí)踐包括應(yīng)持續(xù)管理的三個(gè)環(huán)節(jié):通知、優(yōu)化和運(yùn)營(yíng)。
(1)通知(Inform)
核心在于 數(shù)據(jù)可視化 與 可分配。
業(yè)務(wù)團(tuán)隊(duì)和財(cái)務(wù)利益相關(guān)者能夠確保他們?cè)诳刂祁A(yù)算和準(zhǔn)確預(yù)測(cè)支出的同時(shí)提高ROI,避免意外。
同時(shí),也能作為一個(gè)業(yè)務(wù)團(tuán)隊(duì)的基礎(chǔ)指標(biāo),來(lái)衡量并提升團(tuán)隊(duì)成本優(yōu)化效率。
數(shù)據(jù)可視化
俗話說(shuō),It you can’t measure it, you can’t manage it。
數(shù)據(jù)驅(qū)動(dòng)理念在FinOps中同樣處于核心地位。
包括但不限于:
- 資源(CPU/內(nèi)存/磁盤(pán))使用率
- 資源增長(zhǎng)速率
- 資源預(yù)算
- 資源實(shí)際使用超額比例
- 資源使用預(yù)測(cè)
準(zhǔn)確而全面的可視化,可以較好解決成本優(yōu)化的挑戰(zhàn)一,精準(zhǔn)衡量是否存在資源浪費(fèi)的情況。
可分配
對(duì)于所有云上資源,都要盡可能精細(xì)化、準(zhǔn)確 分配到各個(gè)實(shí)際使用團(tuán)隊(duì)上。
目前在微服務(wù)架構(gòu)下,單實(shí)例類型的組件比較容易跟上游應(yīng)用綁定,進(jìn)而分配到具體業(yè)務(wù)團(tuán)隊(duì)。但是集群類型的組件(如HBase),仍然需要做進(jìn)一步細(xì)粒度的計(jì)算與分配。
(2)優(yōu)化(Optimize)
一旦資源優(yōu)化指標(biāo)準(zhǔn)確綁定到 實(shí)際使用團(tuán)隊(duì)后,就可以開(kāi)展各項(xiàng)優(yōu)化工作。
最基礎(chǔ)的方式,是根據(jù)數(shù)據(jù)使用率指標(biāo),對(duì)空閑資源進(jìn)行降配、縮容等方式。
更深度的優(yōu)化,需要結(jié)合實(shí)際業(yè)務(wù)場(chǎng)景,參考3.4的內(nèi)容,實(shí)施 減少副本數(shù)、冷熱分離、數(shù)據(jù)壓縮、充分利用云產(chǎn)品 等手段。(解決挑戰(zhàn)二)
(3)運(yùn)營(yíng)(Oprate)
文化建設(shè)
通過(guò)FinOps進(jìn)行成本優(yōu)化的文化建設(shè)是首要條件。必須自上而下推行這種意識(shí)和相關(guān)的獎(jiǎng)懲制度。
讓基礎(chǔ)團(tuán)隊(duì)、業(yè)務(wù)團(tuán)隊(duì)認(rèn)識(shí)到這項(xiàng)工作不是某個(gè)人、某個(gè)團(tuán)隊(duì)的事情,而是各個(gè)團(tuán)隊(duì)在架構(gòu)設(shè)計(jì)、技術(shù)優(yōu)化、績(jī)效達(dá)成中的關(guān)鍵任務(wù)。(解決挑戰(zhàn)三)
如果沒(méi)有自上而下推行這種文化,F(xiàn)inOps肯定無(wú)法落地,更不用談長(zhǎng)期機(jī)制了。
自動(dòng)化流程與機(jī)制
為了使FinOps成為一種長(zhǎng)期機(jī)制,除了文化建設(shè)外,必須將人工流程自動(dòng)化。
從 數(shù)據(jù)化、成本問(wèn)題識(shí)別、任務(wù)分配、優(yōu)化完成、數(shù)據(jù)追蹤 等環(huán)節(jié)入手,將一整套流程以平臺(tái)產(chǎn)品的形式沉淀下來(lái)。
轉(zhuǎn)變”運(yùn)動(dòng)式“優(yōu)化的困境,形成真正的長(zhǎng)期機(jī)制。(解決挑戰(zhàn)四)
5、小結(jié)
本文從云數(shù)據(jù)庫(kù)成本挑戰(zhàn)引入FinOps的概念,結(jié)合HBase成本優(yōu)化項(xiàng)目闡述了FinOps的具體原則與實(shí)踐案例。
最后總結(jié)了云數(shù)據(jù)庫(kù)FinOps之道,形成數(shù)據(jù)庫(kù)成本優(yōu)化真正的閉環(huán)解決方案,形成長(zhǎng)效機(jī)制,徹底解決四種常見(jiàn)成本優(yōu)化挑戰(zhàn)。






























