數據庫DevOps:我們如何提供安全、穩定、高效的研發全自助數據庫服務-iDB/DMS企業版
數據管理DMS企業版地址:https://dms.aliyun.com/
阿裏雲數據管理DMS 企業版已於2017.7.18正式發布,一期我們提供MySQL、ORACLE、SQLServer、PostgreSQL、Mongo這幾種數據庫類型的數據管理服務,支持RDS、ECS自建、其他公網自建類型,支持經典網絡、VPC網絡,提供實例管理、用戶管理、任務管理、安全規則、操作審計、權限管理、數據查詢、數據變更/數據訂正、數據導出、庫表同步、SQL審核/sqlreview等功能。
DMS企業版在集團內部產品代號為iDB,是阿裏巴巴集團從2010年開始逐步積累迭代出來的研發全自助數據庫服務平台。
從最初解決數據安全訪問誕生一個簡單的查詢頁麵(2011,iDB1.0時代-提升數據安全),到解決變更在線提交、滿足既定設計規範的研發全自助線下表結構設計(2012,iDB2.0時代-解決變更在線化),再到sqlreview、研發有限自助變更線上、DMS個人版的上線(2013-2015,iDB3.0時代-提升研發效率),再到規則引擎、工作流引擎、任務調度引擎、CloudDBA、研發全自助變更(2016,iDB4.0時代-靈活、智能管控最大化提升研發效率);
iDB在阿裏內部不斷完善,服務於內部幾萬用戶每天各種各樣的數據庫研發使用的同時;2017年產品提出正式雲化為雲上廣大中小企業提供成熟的企業數據庫管理服務。
我們的目標是:
以下是產品內部分主要功能的詳細講解介紹:
- 賦能研發全自助的數據庫研發設計能力,提升企業的研發效率(不再因為集中管控人員瓶頸導致項目延期);在滿足既定規範內全自助設計與變更,同時輔助CloudDBA性能診斷與優化讓研發主動優化改造問題SQL、回收碎片空間、建立合適索引、刪除無效索引提升研發的數據庫專業技能
- 解放傳統DBA的人肉操作,使其可以將精力轉向諸如數據庫架構設計等領域深挖;管理員、DBA輕鬆管理全局,隻需要事先製定研發設計規範、研發流程即可輕鬆管理大批量實例的使用
- 數據分級、權限管控、操作審計、安全規則、訪問IP白名單等一係列解決方案進一步提升企業的數據安全
普通使用
- 權限管理
- 支持庫、表、列三種對象粒度申請,列是指表上打標為敏感或機密的字段(即數據分級管控)
- 庫權限包含有庫下所有表含後續新增表的非敏感機密字段的權限
- 表權限僅包含表上非敏感機密字段的權限
- 權限申請對應的審批流程由管理員、DBA在【安全規則】按需實例級別進行指定配置
- 支持查詢、導出、變更三種權限類型申請
- 導出、變更,是指可以提交對應的工單;並非直接執行對應操作
- 支持指定有效期,到期自動失效
- 數據owner可以隨時查看對應庫、表的權限開通情況進行回收或者追加授權
- 申請者本人也可以隨時查看所開通權限情況進行主動釋放或者續期申請
- 支持庫、表、列三種對象粒度申請,列是指表上打標為敏感或機密的字段(即數據分級管控)
- 數據查詢
- 開通“查詢”權限後可以進行對應庫、表的結構、數據等進行查詢
- 全局單次查詢返回行數有上限限製(默認200,由管理員按需調整;但不建議過大,過大可能會造成頁麵卡頓)
- 每人每天查詢返回行數有上限限製(默認20000,由管理員按需調整)
- 每人每天查詢次數有上限限製(默認2000,由管理員按需調整)
- 實例級別可指定查詢超時時間(默認60,由管理員、DBA按需調整)
- 全局禁止大表全表掃描查詢(默認10G,由管理員按需調整)
- 允許執行的SQL類型由管理員、DBA在【安全規則】按需實例級別進行指定配置
- 查詢已經顯示在頁麵的結果可導出excel、txt或insert腳本格式
- 邏輯庫下對邏輯表配置路由算法可自動路由查詢返回結果
- 開通“查詢”權限後可以進行對應庫、表的結構、數據等進行查詢
- 數據變更/數據訂正
- 開通“變更”權限後可以進行對應庫、表的結構與數據等進行變更
- 工單提交時
- 會校驗語法正確性(不正確則阻斷不能提交)
- 會校驗影響行數(可以與預期影響行數進行對比,不一致場景要注意SQL邏輯是否正確書寫)
- 工單執行時
- 支持立即執行、指定時間執行(定時調度)
- 支持工單級別開啟事務(不開啟默認串行執行,遇到失敗則終止不回滾;開啟則遇到失敗會全部回滾)
- 支持備份(默認開啟,對update、delete語句影響的整行記錄進行insert腳本的全備;如果變更不符合預期時可快速download附件進行恢複操作)
- 允許執行的SQL類型、不同需求對應工單的審批流程由管理員、DBA在【安全規則】按需實例級別進行指定配置
- 工單提交時
- 安全管控
- 串行調度:多人同時發起同一個實例的不同變更需求時,串行調度避免任務造成過大負載影響業務正常運行
- 並發檢測:執行任務前會探測目標實例的繁忙程度,活躍會話超過指定閥值則退出休眠5秒再重新嚐試;重試5次仍然繁忙則退出失敗
- 執行間隔:每個SQL執行完根據SQL類型以及影響行數進行對應的間隔再調度下一條SQL,防止主備複製延遲
- 鎖檢測:在執行DDL語句時還會額外檢測元數據鎖,設置獲取等待時長超過則重試直至獲取到才執行DDL語句;重試5次仍然繁忙則退出失敗
- 開通“變更”權限後可以進行對應庫、表的結構與數據等進行變更
- 數據導出
- 開通“導出”權限後可以進行對應庫、表的數據等進行導出
- 工單提交時
- 會校驗語法正確性,僅支持select(不正確則阻斷不能提交)
- 會校驗影響行數(可以與預期影響行數進行對比,不一致場景要注意SQL邏輯是否正確書寫)
- 工單執行時
- 可選擇excel、csv、insert腳本三種格式
- 默認按照數據庫字符集導出,部分場景庫表字符集不一致可以指定表的字符集避免亂碼
- 審批通過後24小時內要完成導出,24小時內可反複導出
- 導出成功後可直接下載最後一次成功的結果集(下載文件距離最後一次導出時間必須是一個月內)
- 可選擇excel、csv、insert腳本三種格式
- 不同需求對應工單的審批流程由管理員、DBA在【安全規則】按需實例級別進行指定配置
- 工單提交時
- 開通“導出”權限後可以進行對應庫、表的數據等進行導出
- 庫表同步
- 開通源庫的“查詢”權限、目標庫的“變更”權限後可以進行對應源庫與目標庫表結構的對比與同步
- 支持結構同步、空庫初始化、表一致性修複三種常見場景
- 結構同步:源庫表、目標庫表,對比進行新建表或者修改表達到與源庫表一致結構(表數量1:1對應)
- 適用於測試環境變更同步到其他環境,如生產環境發布等
- 空庫初始化:將源庫表結構完整拷貝至目標庫
- 適用於多套環境的搭建,如測試環境搭建等
- 表一致性修複:將源庫表、目標苦逼,對比進行新建表或者修改表達到與源庫表一致結構(表數量1:N對應)
- 適用於分庫分表場景下,分表結構一致性的保障check
- 結構同步:源庫表、目標庫表,對比進行新建表或者修改表達到與源庫表一致結構(表數量1:1對應)
- 不同需求對應工單的審批流程由管理員、DBA在【安全規則】按需實例級別進行指定配置
- SQL審核/sqlreview
- 開通“查詢”權限後可以進行對應庫表代碼內增刪改查訪問SQL進行審核
- 審核的是增刪改查的SQL,非DDL語句
- 主要審核SQL語法書寫是否正確、合規
- 不通過場景:存在`select * `、動態SQL、SQL注入寫法
- 通過場景:SQL語法正確並且執行計劃可以走上索引、執行計劃走不上索引(會主動建議添加合適的索引,確保每個經過審核後上線的SQL都能有索引可走)
- java語言:支持Ibatis、Mybatis兩種格式的附件
- 其他語言:需要將代碼中的增刪改查SQL按照模板整理後提交附件
- 不同需求對應工單的審批流程由管理員、DBA在【安全規則】按需實例級別進行指定配置
- 屬於應用發布前的事前管控,限製選擇的數據庫是非生產環境(測試階段結構已經變更,但線上結構是發布後才變更的)
- 開通“查詢”權限後可以進行對應庫表代碼內增刪改查訪問SQL進行審核
係統管理
- 實例管理
- 目前支持類型
- 支持MySQL、ORACLE、SQLServer、PostgreSQL、Mongo幾種數據庫類型
- 支持RDS、ECS自建數據庫、其他公網自建數據庫
- 支持經典網絡、VPC網絡
- 實例級別靈活設置進行管理:查詢超時時間、導出超時時間、運維負責人/DBA、【安全規則】
- 默認會在注冊時自動采集實例上schema、表、字段、索引等相關元數據提供普通使用的權限管理及數據分級依據,也可以主動觸發增量的同步
- 對於不需要使用的實例可以進行禁用或者刪除:如大促期間禁用某個實例避免非生產服務壓力
- 在授權後,可以自動同步當前賬號下購買的rds實例列表;但正式使用需要完善相關信息測試賬號可用後進行保存
- 目前支持類型
- 用戶管理
- 目前支持阿裏雲平行賬號、主子賬號兩種形式
- 對於主子賬號,在主賬號作為管路員時可以一鍵同步所有關聯的子賬號
- 對於不需要使用的賬號可以“禁用”
- 任務管理
- 所有從普通使用各個模塊產生的變更SQL任務均會記錄在此模塊
- 管理員、DBA也可以直接對目標庫表進行SQL變更(DML、DDL)任務的部署,區別在工單提交有對應流程審核管控;後台部署因為人員有限可控所以無流程管控
- 任務的執行的安全管控策略,同【數據變更/數據訂正】的“安全管控”一致
- 安全規則
- 由審批節點、審批流程線、安全規則依次組成
- 審批節點:默認的有管理員、DBA(跟隨實例走)、數據owner(跟隨數據庫、表走)三個節點,其他可以按需自定義;如安全管理員、測試負責人、研發負責人等
- 審批流程線:默認有5個組合好的流程線,單向逐一通過處理;同一個節點多個人時任意一個審批通過即通過
- 安全規則:默認有3個組合好的安全規則,高、中、低;可以按照業務實際需要組合新的安全規則或調整已有規則的審批流程達到根據不同的業務重要程度及所處階段靈活管控不同的變更需求
- 由審批節點、審批流程線、安全規則依次組成
- 操作審計
- 平台上產生的所有用戶操作都會詳細記錄,管理員可以便捷的查看、溯源
- 某個用戶某段時間做了哪些操作、針對某個模塊做了哪些操作等
- 某個數據庫、表,在某段時間被做了哪些操作、在某個模塊內做了哪些操作等
- 平台上產生的所有用戶操作都會詳細記錄,管理員可以便捷的查看、溯源
- 訪問IP白名單
- 對於每個企業都是獨立的一套企業版部署,管理員在加入企業的員工、企業的數據庫後,可以決定是否開啟訪問IP白名單限製
- 限製:僅在指定的服務器ip發出的請求才能登錄使用DMS企業版,對於企業寬帶運營商有固定的ip出口,可由管理員進行配置
- 在訪問安全上DMS企業版做了四層管控:
- 1)阿裏雲賬號、密碼正確性校驗
- 2)DMS企業版對應本企業員工校驗:確保本企業員工才可使用
- 3)DMS企業版訪問IP白名單校驗:確保辦公網內才可使用(規避員工流失未及時清理禁用賬號的潛在風險、員工賬號被外部非法盜用的潛在風險)
- 4)目標庫表操作權限的校驗(產品內體係化保障,規避員工接觸數據庫賬號密碼要頻繁變更維護的風險與投入)
- 對於每個企業都是獨立的一套企業版部署,管理員在加入企業的員工、企業的數據庫後,可以決定是否開啟訪問IP白名單限製
在以上這些主要功能之外,我們也提供如owner管理、代碼生成器、配置管理、我的SQL、邏輯庫邏輯表等諸多功能服務。
入口:
數據管理DMS企業版地址:https://dms.aliyun.com/
最後更新:2017-10-09 22:34:59