鄭昀 創建於2015/12/2 最后更新於2015/12/2
關鍵詞:數據庫,MySQL,自動化運維,AutoDDL,刷庫,帳號授權,審核,回滾
提綱:
- 數據庫自動化運維什么?別人家是怎么玩的?
- 我們打算做哪些特性?
- 我們的iDB
iDB 是劉勤紅部門推出的數據庫自動化運維平台,它其實已經斷斷續續開發了幾個月了,線上也跑了一段時間,最近又發布了新版本。版本迭代的主力是王曉華同學,李世傑也參與了一部分開發工作,曹富志和張永奎是需求方。
iDB 的主要目的是解決絕大部分重復、復雜的數據庫運維工作 ,滿足業務對數據庫信息查詢和快速變更需求,借此提升研發效率,保證數據庫操作符合審計要求,有可追溯的變更和審核日志。20151208Updated:更多技術細節請閱讀iDB是如何運轉的 一。
0x00,數據庫自動化運維什么?別人家是怎么玩的?
當數據庫越來越多時,比如按業務垂直分庫了,10個,50個,100個……
當數據庫關系越來越復雜時,比如 Cobar 水平拆庫,從庫分組,級聯從庫,合並庫,比如某些索引要求只建在特定從庫上……
DBA 的日常管理,手速再快,也不得不希望有系統來幫忙,畢竟數據庫拓撲建立起來后,很多操作都可以自動化完成。
舉個例子,工程上線前要開數據庫訪問帳號和權限。沒有平台的話,那就得 DBA 一個一個去建,寫庫是 M 打頭的帳號,讀庫是 S 打頭的帳號,密碼強度還得高。有了平台之后,DBA 只需要審核研發人員提的需求即可,系統自動化生成帳號密碼,然后發郵件給申請人,或者將密碼生成對稱加密后的密文展示給申請人。
再比如,刷庫。DBA 刷庫之前為安全起見,都會先備份,然后刷庫,一旦刷庫有問題需要回滾數據,至少有東西恢復。有了平台之后,研發人員提刷庫腳本,DBA 審核,並設定執行時間,系統會自動備份數據,一旦有問題,DBA 點擊回滾按鈕,系統自動將數據刷回去。
那么,別人家的數據庫自動化運維平台都有什么特性呢?
我們先來看一下美團,它的數據庫自動化運維包括如下內容:
圖1 美團的功能點
可以看到,上圖一些功能點如慢查,Processlist 等,我們是放在天機系統里的。
同樣是 AutoDDL(建庫、建表及更改表字段定義和屬性)功能。
趕集的邏輯是:
圖2 趕集的AutoDDL
美團的邏輯是:
圖3 美團的AutoDDL
新浪則:
圖4 新浪的AutoDDL
對於線上數據訂正(即刷庫)功能。
圖5 趕集的訂正邏輯
對於線上數據查詢功能。
阿里的 iDB 界面如下所示:
圖6 阿里iDB的線上數據查詢
對於備份還原功能。
圖7 阿里iDB的備份管理
還有人把數據庫監控和報警做到這種系統里了。
圖8 新浪的數據庫監控
大致如此,各個公司八仙過海各顯其能,DBA 和研發運維的生產力大大提升。
0x01,我們打算做哪些特性?
我們的 iDB 有如下特性:
- 已經上線的:
- 線上帳號申請、審核和管理
- 線上數據查詢
- 線上數據訂正
- AutoDDL
- 着手在做的:
- 自動識別數據庫拓撲關系(記得嗎,我們在天機系統里曾經做過)
- 新建數據庫實例
- 備份管理
- ……
0x02,我們的 iDB
首先,iDB 的用戶角色分為研發人員和 DBA。首頁會有一個任務導航,如下圖所示:
圖9 雲縱iDB首頁-工程師的任務看板
我作為 Engineer,登錄 idcenter,跳到 iDB 后,可以:
發起訂正申請,個人帳號申請,工程帳號申請,DDL 申請,
還可以:
線上數據查詢。
我如果是 DBA,任務看板就變為:
圖10 雲縱iDB首頁-DBA任務看板
相對 Engineer,增加了:
訂正審核,帳號審核,DDL 審核,數據庫組管理,任務管理等。
簡單介紹這么多,以后再介紹一些更高級的特性。再次感謝王曉華、劉勤紅、曹富志、張永奎和李世傑!
