3分鐘學會如何排程運營海量Redis系統

騰訊雲加社群發表於2019-02-27

本文由雲+社群發表

作者:馮偉源

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

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

  • 元資訊的一致性管理
  • 萬臺裝置高效運維
  • 如何實現智慧排程

解讀騰訊雲Redis

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

騰訊雲Redis目前分別提供主從版、叢集版、新一代三個版本。在使用上,基本相容 Redis 協議,支援字串、連結串列、集合、有序集合、雜湊表等多種資料型別,能幫助客戶完成不同型別的業務場景開發。騰訊雲Redis支援主從熱備,提供自動容災切換、資料備份、故障遷移、例項監控、線上擴容、資料回檔等全套的資料庫服務。搜尋關注“騰訊雲資料庫TencentDB"官方微信,最新最熱資料庫前沿知識和手把手實戰教程等你來約,更可在移動端一鍵管理資料庫。

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

總結運營之道

運維成熟度的衡量

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

總結:技術支援業務,技術推動業務,技術引領業務。 搜尋關注“騰訊雲資料庫TencentDB"官方微信,最新最熱資料庫前沿知識和手把手實戰教程等你來約,更可在移動端一鍵管理資料庫。

img

雲時代下對DBA的全面要求

雲時代下,DBA應該對自身能力提出更高更全面的要求。我們不但要保證系統高效穩定,協助好使用者,還要在產品打造方向、架構設計的細節、元件的原始碼,社群的跟進甚至是引領上進行沉澱,並建立個人影響力。

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

此文已由騰訊雲+社群在各渠道釋出

獲取更多新鮮技術乾貨,可以關注我們騰訊雲技術社群-雲加社群官方號及知乎機構號

相關文章