1. 程式人生 > >SQL審核 Inception 中小團隊快速構建SQL自動審核系統

SQL審核 Inception 中小團隊快速構建SQL自動審核系統

查看 現在 源碼開發 clas 後臺 一個 手冊 詳情 mys

SQL審核與執行,作為DBA日常工作中相當重要的一環,一直以來我們都是通過人工的方式來處理,效率低且質量沒辦法保證。為了規範操作,提高效率,我們決定引入目前市面上非常流行的SQL自動審核工具Inception。
花了一周看了inception官方文檔並搭建了測試環境簡單測試,又花了3天寫了webui(內部起名叫overmind,以下也簡稱overmind),目前正在進行各種測試以及手冊的編寫,還未正式跟我們的流程結合起來投入使用,後續正式使用後再更新使用經驗。

Inception

  • github:https://github.com/mysql-inception/inception
  • 官方文檔:http://mysql-inception.github.io/inception-document

Inception是一個開源的Mysql自動化工具,具有SQL審核、執行、回滾等實用的功能,由國內大神基於mysql源碼開發,可以很明確的,詳細的,準確的審核Mysql的SQL語句,工作模式與Mysql完全相同,可以直接使用mysql客戶端來連接。但遺憾的是2年前已停止更新,不過兼容大部分的mysql版本,仍然是開源SQL審核工具的翹楚。

Inception的架構如下:

技術分享圖片

inception架構圖

Overmind

審核流程

我們的審核流程現在主要分兩部分:

1.Dev和Qa等線下測試環境:為了簡化流程,開發測試環境,可以由開發直接通過overmind系統進行審核或執行

2.Prod生產環境:生產環境以安全為主,在Dev和Qa環境執行成功後詳情頁面會有個“申請上線”按鈕,點擊申請上線自動發送郵件給DBA,待DBA審核通過後方可上線

系統介紹

  • 基本配置頁面:可以直接在頁面上配置inception的信息,方便遷移

技術分享圖片

基本配置頁

  • 數據庫信息錄入:相當於一個簡單數據庫的cmdb系統,可以管理數據庫信息

技術分享圖片

數據庫信息錄入

  • 審核任務提交:支持審核和執行兩種模式,審核模式只給審核結果,執行模式在執行之前會先審核

技術分享圖片

審核任務提交

  • 審核結果展示:詳細展示SQL審核的所有信息,包括提交用戶、執行操作、審核結果等等

技術分享圖片

審核結果展示

  • 任務列表頁面:可以很方便只查看自己提交的任務,或者查看固定項目的,固定環境的任務

技術分享圖片

任務列表頁

關於開源

開源在我看來是一件很隆重的事情,之前剛學python的時候開源了自己寫的一個簡單後臺sadmin(github或gitee可以搜索到),因為一些原因停止更新了。目前沒有時間和精力來做長久的支持和維護,所以暫時不打算把源代碼放到github上。另外同類型的已經有一個非常棒的開源產品Yearning了,可以github搜索安裝學習。

寫在最後

    1. 先說感謝!感謝大神開發的Inception,絕對是DBA界的福音
    2. 之所以能就花了3天時間寫了overmind,主要還是借助了之前已寫好的其他項目框架,在此基礎上做修改,還是很快的
    3. 工具部署與頁面編寫都是比較簡單的,團隊內部都可以搞定,要把工具推出去,融入到現在的流程中是一件比較困難的事情,給團隊內定的規則就是a.完善的文檔,用戶在審核前就知曉哪些sql通不過,在審核失敗時知曉如何修改能成功,b.對用戶的感知應降到最低,不要因為用了overmind而造成額外的麻煩,要讓用戶用的爽
    4. 希望作者或其他大神能持續更新Inception,繼續造福廣大DBA

SQL審核 Inception 中小團隊快速構建SQL自動審核系統