如何運營億級QPS的Redis系統

歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~數據庫

做者:馮偉源,高級工程師,騰訊雲Redis系統運維負責人。6年DBA經驗,一直從事SQL優化、實例調優、數據庫架構、海量數據庫集羣運維、運營平臺建設和管理等工做。爲 QQ、Qzone、QQ音樂、微雲、騰訊雲等業務提供數據庫服務。

導語:騰訊雲Redis自2015年誕生以來,爆發時增加,爲上萬家客戶提供服務。做者做爲惟一的運維負責人,面對三大挑戰是如何破解?緩存

  • 元信息的一致性管理
  • 萬臺設備高效運維
  • 如何實現智能調度

解讀騰訊雲Redis

騰訊雲Redis是基於騰訊內部分佈式緩存領域在QQ、音樂、Qzone、微雲等業務多年的技術沉澱,爲客戶打造除的一款高可用、高可靠的Redis服務平臺。其業務發展迅速,目前有上萬臺設備QPS已達億級微信

騰訊雲Redis目前分別提供主從版、集羣版、新一代三個版本。在使用上,基本兼容 Redis 協議,支持字符串、鏈表、集合、有序集合、哈希表等多種數據類型,能幫助客戶完成不一樣類型的業務場景開發。騰訊雲Redis支持主從熱備,提供自動容災切換、數據備份、故障遷移、實例監控、在線擴容、數據回檔等全套的數據庫服務。網絡

img

img

運營問題

咱們在運營Redis的過程當中,遇到各類各樣的問題總結以下:數據結構

  1. 環境:網絡、TCP參數設置的問題;
  2. 設計:作持久化時,頁表複製形成的卡頓;
  3. 開發者:慢查詢,鏈接風暴,缺流控等;
  4. 最終用戶:好比電商的秒殺活動,訪問陡增致使處理能力到極限。

總的來講,是服務運行過程當中,資源的需求供給不匹配。架構

img

三大挑戰

在應對這些運營難題過程當中,咱們陸續地翻越三座大山:框架

挑戰一:元信息的一致性管理

img

元信息的混亂致使一些運維故障在平常運營中常常碰到?最基本的四類元信息是集羣、設備、實例和配置。 咱們解決這類問題的時候定3條原則。運維

  • 「全」---元信息梳理統計全;
  • 「準」---和現網各類信息保持一致;
  • 「一」---統一的入口,提供統一的API,來進行數據的讀取與修改,讓元數據的變動能夠被審計。

首先對全部元信息進行梳理,提取各類元信息的公共特徵,分類建模,而後抽象出模板對象的屬性與方法,定義數據結構,最後設定數據同步與消費的方式,對外提供API接口。這樣一套基本的DB-CMDB子系統就建成了。也就是數據庫層統一元信息管理系統。機器學習

設計思路上,採用通用框架,能夠管理不一樣數據庫類型的信息,也爲後面的運維自動化奠基基礎。分佈式

img

挑戰二:萬臺設備的做業方式

系統提供服務之初,總體運維規模還不大,不少運維工做能夠經過手工解決。在客戶量爆發後,1~2個DBA是沒法經過手工解決萬臺設備運營?更沒法面對億級QPS性能衝擊?

爲了應對規模化的運營,咱們打造「做業平臺」的系統,來承載咱們的運維邏輯。

  • 平臺化---原子操做,工具託管在平臺上
  • 流程化---工具串成流程,流程化,可複用
  • 可視化---各種運維操做可視化,簡單明瞭

首先將腳本編輯做爲工具,託管在平臺上。這種工具的原則是原子操做,只有失敗與成功兩種狀態。工具串起來成爲流程,每一個工具能夠被多個流程複用,這樣大部分運維操做,包括上下架機器,Redis的遷移,擴縮容均可以經過流程來實施。同時各種操做均經過可視化來展現,簡單明瞭。

目前騰訊雲Redis做業平臺已建成數百種場景化的工做流程,日調用次數達上千次,覆蓋大部分的運維場景,變動致使的事故減小,服務更爲穩定可靠,場景化運維工做效率提高300%。經過平臺化、可視化、流程化的「做業平臺」,整個團隊的工做協同,積累,傳承作得更好。

img

img

img

挑戰三:如何實現智能調度

手工觸發的運維流程,只能算是半自動化。咱們該如何把總體的運營工做打形成全自動化呢?

  • 自動化調度系統
  • 決策系統

自動化調度系統:對於按事件和時間調度系統異常時觸發的告警,第一是按時間調度,好比每週三下午3點重啓一個服務,經過時間來觸發。第二是按事件調度,咱們把每一種告警,都做爲一種事件,註冊到調度系統中。調度系統捕獲到事件後,能夠調用做業平臺的任務或者流程去完成一些工做,這就造成一個運維的閉環。

決策系統:在處理一個事情以前,咱們還須要獲取各類信息,如何根據信息作決策?一個決策系統,先發起決策請求,過程當中可能會涉及到一些決策樹,或者AI決策等,根據決策的結果,再肯定調哪些做業流程,或者是否調做業流程。

img

img

img

img

總結運營之道

運維成熟度的衡量

運維成熟度在騰訊雲的成熟度衡量:從比較原始的方式,到實現一些標準的工具。再到可視化、流程化、平臺化,以及實現能基於時間與事件觸發的自動調度平臺,實現全自動化的運維閉環。智能化解讀,經過機器學習,深度學習的方法能幫助咱們更好地作一些決策,好比說數據庫自動調參,智能分析實現數據的冷熱沉降;最後,經過業務畫像,數據分析,成本優化等爲業務帶來更多的價值。

總結:技術支持業務,技術推進業務,技術引領業務。

img

雲時代下對DBA的全面要求

雲時代下,DBA應該對自身能力提出更高更全面的要求。咱們不但要保證系統高效穩定,協助好使用者,還要在產品打造方向、架構設計的細節上,組件的源碼,社區的跟進甚至是引領,咱們都須要有本身的積累與影響力。

咱們既是運維,也是開發,也是產品。這也是雲時代下,服務化、DO合一的一個趨勢!

此文已由做者受權騰訊雲+社區發佈,原文連接:https://cloud.tencent.com/dev...

歡迎你們前往騰訊雲+社區或關注雲加社區微信公衆號(QcloudCommunity),第一時間獲取更多海量技術實踐乾貨哦~

相關文章
相關標籤/搜索