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