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