分布式緩存平臺(tái)建設(shè)實(shí)踐
?一、引言
Redis作為一款簡(jiǎn)潔、高效的鍵值型內(nèi)存數(shù)據(jù)庫(kù),2015年在G行引入,應(yīng)用于多個(gè)業(yè)務(wù)系統(tǒng),為高頻次、大并發(fā)交易提供了有效的熱點(diǎn)數(shù)據(jù)訪問(wèn)加速方案。
隨著部署數(shù)量的加大,面臨著資源快速供給、規(guī)范化部署、軟件版本統(tǒng)一、集中運(yùn)維管理等諸多挑戰(zhàn)。為此,G行啟動(dòng)了分布式緩存平臺(tái)建設(shè)項(xiàng)目,旨在打造一個(gè)具備快速部署、集中管理、彈性伸縮、服務(wù)高可用的緩存服務(wù)化平臺(tái)。
二、建設(shè)目標(biāo)
01快速部署?
基于G行全棧云IaaS層敏捷特性,通過(guò)對(duì)計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等資源的統(tǒng)一調(diào)度編排,實(shí)現(xiàn)緩存服務(wù)的快速部署和彈性伸縮,推出分布式緩存PaaS服務(wù),助力應(yīng)用系統(tǒng)敏捷開(kāi)發(fā)。
02服務(wù)化輸出?
通過(guò)統(tǒng)一控制臺(tái),實(shí)現(xiàn)Redis服務(wù)跨云集中管理;提供運(yùn)行狀態(tài)分析、慢查詢分析、內(nèi)存分析、統(tǒng)計(jì)數(shù)據(jù)展示、日常巡檢等功能,協(xié)助運(yùn)維人員進(jìn)行緩存性能優(yōu)化、故障快速定位和日常運(yùn)維管理。實(shí)現(xiàn)運(yùn)維向運(yùn)營(yíng)轉(zhuǎn)型,提升精細(xì)化管理水平和服務(wù)化輸出能力。
03服務(wù)高可用?
將Redis高可用架構(gòu)與全棧云架構(gòu)深度融合,感知底層架構(gòu),打造可用區(qū)容災(zāi)能力,實(shí)現(xiàn)故障快速感知和自動(dòng)切換,提升Redis服務(wù)的高可用性和可維護(hù)性。
三、設(shè)計(jì)與實(shí)現(xiàn)
1功能架構(gòu)設(shè)計(jì)
分布式緩存平臺(tái)定位于服務(wù)開(kāi)發(fā)、測(cè)試、運(yùn)維人員,滿足用戶各種場(chǎng)景的使用需求:支持開(kāi)發(fā)和測(cè)試人員自助申請(qǐng)服務(wù)資源,查看服務(wù)運(yùn)行狀態(tài)和資源使用情況,定位性能瓶頸;支持運(yùn)維人員實(shí)現(xiàn)緩存全生命周期管理,包括配置變更、故障定位與處置、性能分析等;同時(shí),支持對(duì)緩存服務(wù)整體情況進(jìn)行多維度展示。基于此,分布式緩存平臺(tái)包括七大功能模塊:
門(mén)戶模塊:展示業(yè)務(wù)系統(tǒng)及納管服務(wù)的整體情況,包括系統(tǒng)健康度、告警匯總、重點(diǎn)監(jiān)控等內(nèi)容。
監(jiān)控模塊:提供完善的監(jiān)控告警能力,包括:將采集的運(yùn)行指標(biāo)進(jìn)行多維度分析展示;支持用戶自定義監(jiān)控項(xiàng)及調(diào)整閾值;支持差異化告警策略的制定;支持歷史告警詳情查看。
運(yùn)維和管理模塊:將常規(guī)運(yùn)維操作自動(dòng)化,通過(guò)平臺(tái)頁(yè)面進(jìn)行標(biāo)準(zhǔn)化操作,最大限度減少手工命令輸入,預(yù)防誤操作和減少不當(dāng)操作的風(fēng)險(xiǎn)。
審計(jì)和日志模塊:提供平臺(tái)用戶登錄次數(shù)統(tǒng)計(jì)及操作記錄審計(jì)功能。
統(tǒng)計(jì)模塊:對(duì)日常關(guān)注的運(yùn)營(yíng)數(shù)據(jù)進(jìn)行匯總展示,幫助運(yùn)維人員快速了解服務(wù)整體運(yùn)行情況和資源使用情況。
后臺(tái)管理模塊:實(shí)現(xiàn)平臺(tái)的權(quán)限控制、定時(shí)任務(wù)管理、以及與關(guān)聯(lián)系統(tǒng)的統(tǒng)一對(duì)接管理等。
技術(shù)支持模塊:支持查閱用戶手冊(cè)和技術(shù)文檔,提供問(wèn)題反饋渠道,提升用戶體驗(yàn)。
圖1.功能架構(gòu)圖
2關(guān)鍵功能實(shí)現(xiàn)
2.1服務(wù)高可用
服務(wù)高可用從自動(dòng)故障切換和物理容災(zāi)兩方面進(jìn)行設(shè)計(jì)。首先,通過(guò)Redis Sentinel和Redis Cluster支持緩存節(jié)點(diǎn)的故障感知和故障切換能力;同時(shí),采用3AZ(可用區(qū))物理部署方式,將同一組副本均勻部署在3個(gè)AZ中,提供AZ級(jí)別的高可用容災(zāi)能力。
2.2自動(dòng)化部署?
用戶自助提交Redis服務(wù)需求,經(jīng)管理員審批完成后,實(shí)現(xiàn)分鐘級(jí)緩存服務(wù)交付。自動(dòng)化部署打破了傳統(tǒng)交付模式,覆蓋了需求溝通、服務(wù)器資源申請(qǐng)、網(wǎng)絡(luò)資源申請(qǐng)、安裝部署、服務(wù)交付等流程。實(shí)現(xiàn)了Redis服務(wù)的快速和標(biāo)準(zhǔn)部署,同時(shí)大幅減少了人工運(yùn)維成本,提升了整體運(yùn)維效率和服務(wù)質(zhì)量。
2.3運(yùn)行分析?
一方面,對(duì)Redis運(yùn)行指標(biāo)進(jìn)行實(shí)時(shí)采集和分類(lèi)展示,便于運(yùn)維人員發(fā)現(xiàn)服務(wù)運(yùn)行風(fēng)險(xiǎn)、進(jìn)行服務(wù)性能優(yōu)化及故障原因快速定位。
圖2.監(jiān)控指標(biāo)項(xiàng)
另一方面,從業(yè)務(wù)系統(tǒng)維度展示Redis服務(wù)健康度。通過(guò)服務(wù)可用性、內(nèi)存使用、連接數(shù)、慢日志等性能指標(biāo),建立服務(wù)健康度評(píng)分模型,方便運(yùn)維人員全面掌握Redis運(yùn)行情況、提高管控能力和管理效率。
圖3.健康度分析
2.4智能化運(yùn)維?
智能化運(yùn)維集成了實(shí)例管理、參數(shù)修改、主從切換、系統(tǒng)巡檢等功能,使常規(guī)運(yùn)維操作自動(dòng)化,復(fù)雜操作流程化,提升了運(yùn)維操作、跟蹤審計(jì)和執(zhí)行能力。
實(shí)例管理支持對(duì)實(shí)例節(jié)點(diǎn)進(jìn)行增加、刪除、重啟、命令查詢操作。
參數(shù)修改支持對(duì)maxmemory、maxclients、requirepass等參數(shù)的在線修改,同時(shí)支持實(shí)例間的參數(shù)一致性對(duì)比校驗(yàn)。
主從切換支持一鍵完成主從切換,并支持批量操作和查看切換狀態(tài)。
系統(tǒng)巡檢通過(guò)每天定時(shí)任務(wù)生成業(yè)務(wù)系統(tǒng)巡檢報(bào)告,包括資源使用情況、容量風(fēng)險(xiǎn)情況、基線合規(guī)情況等,并主動(dòng)推送給相關(guān)人員。
2.5權(quán)限控制?
分布式緩存平臺(tái)主要面向數(shù)據(jù)庫(kù)管理員、應(yīng)用管理員、開(kāi)發(fā)和測(cè)試人員,權(quán)限控制需要保證用戶只能訪問(wèn)其負(fù)責(zé)的業(yè)務(wù)系統(tǒng),同時(shí)保證具備合理的操作權(quán)限。平臺(tái)基于RBAC(Role-based access control)模型實(shí)現(xiàn)權(quán)限控制,用戶登錄平臺(tái)后,后臺(tái)通過(guò)查詢CMDB,獲取用戶關(guān)聯(lián)的業(yè)務(wù)系統(tǒng)信息,為用戶分配業(yè)務(wù)系統(tǒng)權(quán)限,同時(shí)查詢用戶角色信息,通過(guò)對(duì)不同角色授予對(duì)應(yīng)權(quán)限,實(shí)現(xiàn)平臺(tái)權(quán)限控制體系。
四、總結(jié)與展望
分布式緩存平臺(tái)建設(shè)從G行實(shí)際出發(fā),是實(shí)現(xiàn)技術(shù)服務(wù)化、運(yùn)維向運(yùn)營(yíng)轉(zhuǎn)型的重要舉措,為業(yè)務(wù)快速發(fā)展提供了敏捷化、高可用的緩存服務(wù),同時(shí)提升了緩存服務(wù)的運(yùn)維效率和交付效率,降低了運(yùn)維管理成本。未來(lái),分布式緩存平臺(tái)將在云原生方向持續(xù)探索,提供更高效可靠的緩存服務(wù)能力,為G行業(yè)務(wù)高質(zhì)量發(fā)展提供更有力的支撐和保障。