數(shù)據(jù)中心的可用性指標(biāo)、數(shù)據(jù)中心的可用性指標(biāo)有哪些
服務(wù)的質(zhì)量最簡單的度量指標(biāo)就是可用性,所謂的可用性有很多定義,例如來自百度、維基等的定義等,也有同學(xué)將這個定義為可靠性,相關(guān)定義如下:
https://baike.baidu.com/item/%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7/909038?fr=aladdin
https://en.jinzhao.wiki/wiki/Availability
https://wiki.mbalib.com/wiki/%E5%8F%AF%E9%9D%A0%E6%80%A7
這里使用這個公式來定義服務(wù)的可用性度量指標(biāo):
參考值表格
如何準(zhǔn)確客觀的定義這兩個時間,并讓服務(wù)與使用者都接受,時常會有一些爭議,因?yàn)閼?yīng)該服務(wù)時間要不要直接按自然時間如年、季度、月,要不要排出一些非工作時間,法定可不服務(wù)時間,以及掛免戰(zhàn)牌的時間;實(shí)際可服務(wù)時間,要不要就按有無客戶反饋而來,還是應(yīng)該有不間斷的巡查來保障,或者要不要增加一些權(quán)重,畢竟忙閑不一樣。
也正基于此,我們定義了一個簡單的模式,避免發(fā)散,其余結(jié)合業(yè)務(wù)再去組合。
觀察者模式用來評價服務(wù)可用性是成立的,所謂我見故我在,我之所見故而其在!當(dāng)一物不為所有存在所感受到時,此物就不存在!有點(diǎn)啰嗦了,其實(shí)就是下圖標(biāo)注【不對外服務(wù)的服務(wù),不應(yīng)該存在】
服務(wù)猶若星辰,不對外服務(wù)的就不應(yīng)該存在
另外我們簡單抽象下模型,如下圖,調(diào)用者到服務(wù)者都可以簡單看作客戶與服務(wù)兩個角色,中間有連接通道。
基本調(diào)用關(guān)系模型
不管多么復(fù)雜的系統(tǒng),最基本的組合單元就是Client-Cloud-Server。從Client調(diào)用Server,什么時間,調(diào)用耗時多少,成功與否......
基本的要素就是此五項(xiàng),每一次調(diào)用都會生成此明細(xì)數(shù)據(jù),然后基于此數(shù)據(jù)進(jìn)行組合匯總,形成需要的報表。例如某服務(wù)的可用性,某調(diào)用關(guān)系的可用性,流量波動,調(diào)用鏈路錯誤原因匯總,故障服務(wù)錯誤原因匯總,耗時超過閥值的調(diào)用鏈路列表等。全景圖如下,結(jié)合閥值對鏈路標(biāo)記出狀態(tài),并結(jié)合鏈路對服務(wù)進(jìn)行狀態(tài)標(biāo)記。
基本模型調(diào)用組合集群
考慮到數(shù)據(jù)分析對業(yè)務(wù)的影響要小,并確保一定的準(zhǔn)實(shí)時性(分鐘級別),所以每個節(jié)點(diǎn)會進(jìn)行分鐘級別的統(tǒng)計,然后結(jié)合節(jié)點(diǎn)的多寡進(jìn)行分級逐層統(tǒng)計。
Agent按照機(jī)器節(jié)點(diǎn)分層部署,對每分鐘產(chǎn)生的明細(xì)數(shù)據(jù),做簡單的匯總,形成如下記錄:
黑體部分為索引,計算步驟如下:
GridV分為統(tǒng)計節(jié)點(diǎn)與中心,統(tǒng)計節(jié)點(diǎn)為分層計算提供分布式能力支持,中心進(jìn)行數(shù)據(jù)的最后存儲。中心還會基于服務(wù)的屬性,進(jìn)一步分發(fā)計算。隨著對服務(wù)單元本身的定義逐漸清晰(服務(wù)歸屬關(guān)系,服務(wù)所在機(jī)器等),關(guān)于服務(wù)的定義屬性會更多,更具體。數(shù)據(jù)也會按此進(jìn)一步梳理匯總。
關(guān)于服務(wù)的定義如下:
動態(tài)的數(shù)據(jù),動態(tài)的呈現(xiàn),動態(tài)的策略,無為而為不為,迅乎其所不滯,天網(wǎng)恢恢!
方案的設(shè)計需要每個節(jié)點(diǎn)支持每秒幾十萬次的上報,并對這些上報數(shù)據(jù)按照時間維度進(jìn)行統(tǒng)計,一種開源的解決方案如下,可以相對比較廣泛的支持各類終端的可用性上報,服務(wù)側(cè)的上報。內(nèi)部系統(tǒng)使用日志記錄在本地,然后通過filebeat上報到kafka;遠(yuǎn)程系統(tǒng)則使用http協(xié)議上報給nginx,nginx記錄日志,filebeat上報到kafka;然后kylin分析流式數(shù)據(jù),按照設(shè)定的cube統(tǒng)計,最后通過superset呈現(xiàn)出報表。
一種開源實(shí)現(xiàn)