DBA 降本增效之路——去哪兒網 Redis 自動化運維體系
目錄
背景介紹
Redis使用現狀
面臨的挑戰和問題
去哪兒網Redis自動化運維體系
資源管理
叢集部署
自動化遷移
總結與展望
雷孝龍,去哪兒網資深DBA。2019年8月加入去哪兒網,負責公司的MySQL/Redis運維,以及自動化方案的設計與實施。曾就職於達夢資料庫、映客直播;擅長於資料庫管理、維護及最佳化等工作。
一 背景介紹
(一)Redis 使用現狀
(二)面臨的挑戰和問題
流量快速上漲:整體記憶體用量快速增長,Redis 請求量增加,CPU 負載告警頻繁。 業務上雲:物理距離增加,網路延時變大,業務訪問 Redis 超時變多。 業務容器化:業務容器化之後,機器數變多,Redis 連線數頻繁告警,存在打滿的風險。 業內機房故障:近兩年,業內多次出現的機房級別故障,造成重大損失,給我們敲響了警鐘,需要反思自己維護的服務是否真正具備跨機房容災的能力。
二、去哪兒網 Redis 自動化運維體系
在介紹運維體系之前,首先了解我們的 Redis 叢集架構。
(一)Redis 叢集架構
去哪兒網 Redis 叢集是一個分散式的高可用架構,整個架構主要由以下幾個重要部分組成:
Redis Server 節點:每個節點有一主一從兩個例項,多個節點組成一份完整的叢集資料,其中每個節點只有主庫對外提供服務,從庫僅僅用於節點高可用、資料持久化及定時備份。
Zookeeper 叢集:由五個zk節點組成,儲存Redis叢集名,每個叢集對應一個znode,用於Redis叢集配置變更後,通知客戶端進行重連。
Redis Sentinel 叢集:由五個 Sentinel 節點組成,用於 Reids Server 節點的高可用,主從切換、故障轉移、配置更新等。
配置中心:由五個 MySQL 節點組成的 PXC 叢集,用於儲存 Redis 叢集的分片資訊,即每個節點的 Master 例項資訊及分配 key 的一致性 hash 值範圍。
應用程式客戶端:配置叢集名和 zookeeper 地址,監聽 znode 變化,透過叢集名從配置中心獲取 Redis 拓撲結構。
(二)Redis 自動化體系
Redis資源池管理
dbaAgent
採集機器資訊,實時更新例項部署情況、資源使用情況,業務連線機器。
提供一些運維指令碼,大 key、空閒 key 分析等。
提供介面,實現遠端呼叫,本地執行命令完成一系列的自動化流程。
部署規則 每對主從例項埠相同且唯一。
單例項記憶體不大於10G。
機器部署例項數低於CPU核心數的1.5倍。
機器選擇:使用記憶體不超過總記憶體使用中位數的10%。
同叢集在相同機器部署分片數不允許超過3個。
客戶端分片
如何建立Redis連線
RedisGate
程式碼實現如下:
擴縮容切換
自動化流程
三 總結與展望
以上詳述了去哪兒網 DBA 團隊如何使用和維護 Redis 叢集,並直面遇到的各種挑戰。透過自動化手段,我們實現了許多日常運維操作的規範化和標準化,如部署、遷移、擴縮容等。整個過程幾乎無需人工干預,從而顯著減輕了 DBA 的負擔,真正地達到了降本增效的目標。此外,自動化程式取代了人工操作,使得線上變更流程更為統一規範,消除了人為的不確定性,進而提升了 Redis 服務的整體穩定性。
儘管自動化為我們減輕了大量負擔,但仍面臨諸多挑戰。在我們公司,幾乎所有業務已順利遷移至雲端或具備隨時彈性上雲的能力,但部分敏感業務由於無法容忍雲端到本地機房的延遲,這便要求我們解決 Redis 的跨雲部署和就近訪問的問題。這是我們當前需要攻克的難題。
隨著 AI 技術的迅猛發展和廣泛應用,資料庫運維領域也需緊跟時代步伐。透過運用機器學習和人工智慧技術,我們可以實現更智慧的 Redis 監控和維護。儘管我們的巡檢系統已能提前發現潛在問題,但進一步的深度分析和處理仍需人工介入。為此,我們渴望利用 AI 技術,實現在風險被識別時即刻進行最佳化和自愈,這是我們對未來的憧憬,也是我們未來的工作重心。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70027824/viewspace-3006914/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 降本增效 百TB級Redis自動化運維體系建設Redis運維
- 運維轉型之路 —手工運維到無人值守的自動化運維,從根本實現降本增效運維
- 去哪兒網領域驅動設計(DDD)實踐之路
- IT運維之自動化運維運維
- 專訪鄭東雲:自動化運維時代,DBA命運如何?運維
- 去哪兒網裁員!
- 運維自動化之賬單系統運維
- 自動化運維和普通的運維的區別是什麼?哪個好?運維
- 網路工程師眼中的自動化運維工程師運維
- Ansible自動化運維工具運維
- 乾貨滿滿 | 美團資料庫運維自動化系統構建之路資料庫運維
- QPS降低80%,去哪兒網業務快取體系的升級改造快取
- 什麼是自動化運維?為什麼選擇Python做自動化運維?運維Python
- ansible自動化運維入門運維
- 簡化IT運維工作,就要學會使用自動化運維工具!運維
- 去哪兒網專案學習總結
- 分層運維自動化監控運維
- 自動化運維工具Ansible介紹運維
- 自動化運維的快速演進運維
- ansible自動化運維資料庫運維資料庫
- 指標是構築自動化運維與智慧化運維的基石指標運維
- 去哪兒黃勇:去哪網資料庫架構發展歷程資料庫架構
- 馴服 Kubernetes!網易數帆雲原生運維體系建設之路運維
- Linux Shell互動式自動化運維程式Linux運維
- vue去哪兒複習Vue
- Vue—去哪兒筆記Vue筆記
- 阿里雲釋出ECS自動化運維套件,幫助企業實現自動化運維轉型阿里運維套件
- Python+Django+Ansible Playbook自動化運維PythonDjango運維
- Oracle 自動化運維-Python連線OracleOracle運維Python
- 論IT運維自動化的重要性運維
- Python自動化運維之IPy模組Python運維
- 自動化運維工具之Puppet模組運維
- 自動化運維工具——ansible詳解(一)運維
- 自動化運維工具——ansible詳解(二)運維
- 自動化運維工具ansible的實踐運維
- 專訪新數科技王偉斌:自動化運維時代,DBA的定位是什麼?運維
- IT運維和自動化運維以及運維開發有啥不同?能解釋下嗎?運維
- 想學Linux運維技術,去哪裡好呢?Linux運維