DMS前後端技術揭秘及最佳實踐
摘要: 不同於一般的存儲和計算產品,雲上DMS上屬於操作類產品,目的是為用戶提供更高更強的資料庫訪問能力,減少成本以提高效率。
本文中,來自阿里巴巴資料庫事業部的鐘隱分享《DMS前後端技術揭秘及最佳實踐》,介紹雲上DMS,即資料庫管理服務的整體應用和實踐。
DMS最佳實踐
雲上DMS從2013年年底上線,從最初僅支持MySQL基本功能,已覆蓋了多種RDBMS、NoSQL及部分分析型資料庫在內的13種數據源,同時在多種資料庫中逐步提供了傳統資料庫軟體所不具有的專業功能,時間有限,我們僅列舉4個不同角度的最佳實踐:SQL窗口、數據追蹤、命令終端、E-R圖及生成文檔,希望通過4個最佳實踐讓大家了解到DMS現有的功能中有很多您常用功能中有不少您沒有發現的非常實用的細節,也有很多資料庫專業的功能可以降低您的人力成本及提升您解決問題的速度,同時還有很多實用工具可以讓您的研發整體效率得以提升。
SQL窗口
SQL窗口是DMS中用戶最常使用的功能。除去日常工作中所接觸到的,SQL窗口還有許多隱藏工具,藉助這些工具,能幫助減輕操作負擔,簡化工作。
- SQL編輯&智能提示;
- 批量SQL操作;
- 會話一致性;
- 工作現場保留 我的SQL ;
- 可視化編輯數據;
- 生成報表;
- 語法模板;
- 其它實用功能:如單行詳情、SQL格式化、執行計劃、打開表。
視頻鏈接地址:
http://cloud.video.taobao.com/play/u/2776704142/p/1/e/6/t/1/50022818108.mp4
數據追蹤
數據追蹤是DMS專業級功能的代表之一。也許您還沒有用過,也許您還用得不錯,但是它可以實實在在幫您解決很多問題,且處理的速度非常快。當發生以下情況時,數據追蹤功能可以提供極大的裨益:
- 當你發現數據丟失;
- 當您發現數據被誤修改;
- 當你想閃回某個表;
- 當你想回放某條數據的變化過程;
- 當你想自定義回滾數據。
總結:
- 正常情況下您要去找回丟失的數據,全量拷貝實例的成本是非常高的;
- 一個專業的DBA的人力成本也非常高,同時由於Binlog文件較大且同時包含了一個實例上多個庫、多個表、所有數據的日誌,在人工定位上速度非常緩慢,DMS在這方面做了很多提速的處理,可以快速精準定位到庫、表的日誌甚至於某一行,並將其解析為可視化SQL,這樣在降低人力成本的基礎上也同時提升了解決問題的速度;
- 數據追蹤這個功能本身也是在初步階段,在DMS中還有很多類似的功能已經存在或正在研發,例如數據趨勢可以幫助您定位表級別或庫級別的數據行變化、資料庫克隆可以幫助您建立表級別或庫級別的表結構及資料庫的拷貝等等。未來這些功能將會更加強大,也會有更多專業級功能出來幫助大家解決更多的問題。
視頻鏈接地址:
http://cloud.video.taobao.com/play/u/2776704142/p/1/e/6/t/1/50022818099.mp4
命令終端
DMS在可視化上不僅僅有資料庫,還有Linux,DMS所提供的Linux可視化其WEB上的性能非常接近於客戶端,且兼容95%以上的Linux命令(包含圖形化命令),也同時單主機分屏、多主機終端等。您無需將您的主機暴露在公網,也無需通過一個中間機去訪問其他主機,通過DMS就可以高體驗地完成對這些主機的訪問,且在雲端會有更多的安全驗證。DMS之所以在OS級別進行突破,是希望在後續自建資料庫的支持上結合OS的詳細開銷及空間使用為您提供更為強大的功能。
- Linux可視化命令終端;
- 交互命令;
- 圖形命令;
- 單機分屏終端;
- 多機多屏終端。
視頻鏈接地址:
http://cloud.video.taobao.com/play/u/2776704142/p/1/e/6/t/1/50022812203.mp4
E-R圖及生成文檔
E-R圖及生成文檔的功能,是實用功能的典型代表。目前用戶對其了解較少,不過後續會有類似的功能推出。在以下一些情況中,E-R圖及生成文檔能夠有效減少成本,提高效率:
- 資料庫表建立好了,需要文檔Review評審;
- 生成word文檔;
- 生成Excel文檔;
- 生成PDF文檔。
視頻鏈接地址:
http://cloud.video.taobao.com/play/u/2776704142/p/1/e/6/t/1/50022822015.mp4
總結:
- DMS有很多實用工具可以幫助您更快地完成工作,減少繁雜的重複勞動,例如:批量操作表、InnoDB鎖診斷等。
- DMS在後續也將在實用工具上繼續拓展和升級,例如後續將會為大家提供代碼生成器(您可以自定義代碼模板),測試數據自動構建等。
最佳實踐總結
除去以上提到的最佳實踐,DMS還有很多的功能等待挖掘。後續產品也會越做越細,功能精確到對象級別,為用戶帶來更巨大的價值。
- 安全審計;
- 數據趨勢;
- 非同步導入導出;
- 會話管理分組;
- SQL優化;
- 空間碎片分析;
- InnoDB鎖等待;
- 實時性能;
- E-R圖;
- 安全審計;
- 功能授權;
- 存儲過程錯誤行定位;
- 資源大盤;
- …
以安全審計為例,目前DMS個人版您可以定義用戶的實例許可權及功能許可權,也可以定義實例的訪問來源地址,在事後您也可以查看及導出所有被授權的用戶的操作日誌用以審計,如下圖:
DMS與雲上安全認證體系
雲計算時代,越來越多的用戶選擇把數據放在公有雲上,但是資料庫您在日常工作中是必須要使用的,無論您放在VPC還是私有網路,都需要一個入口區訪問。您可以通過一台中間機去訪問,但這台中間機器無疑是最大的隱患,也可以搭建類似於phpmyadmin這樣的開源產品去訪問,但這類產品除無法支持多種資料庫外,在其研發之初更多是定位於內網使用,在互聯網的安全和大量用戶同時使用時的場景考慮非常少,將其暴露在公網上很容易被利用和攻破。DMS在雲上安全方面做了很多的工作,積累了非常之多的內容,解決過不少問題。同時由於DMS就是基於互聯網環境下而生的,能夠有效支持關係型/非關係型資料庫以及各種熱門的大數據操作。在雲DMS平台上,用戶可以擁有統一的准入介面和更為專業的服務,提升效率,降低成本。
上圖展示了利用DMS伺服器構建雲通道的過程。在用戶瀏覽器中,往往存在阿里雲會話、資料庫會話、瀏覽器認證、XSS及CRSF等安全需求。為了保障性能,DMS在伺服器中保有非常多的認證級別,包括:
- 雲賬號認證;
- 資料庫訪問認證;
- 用戶資料庫許可權認證;
- 授權信息確認;
- 密碼記憶認證;
- 來源地址認證;
- 功能許可權驗證;
- 訪問審計報告。
對於連接池,會做驅動問題處理、流量控制、連接數控制等處理。
另外,對於安全性要求較高以及有一定規模的公司,DMS還針對性地推出了企業版,在安全、風控、協同、流程、效率等方面做得更加細化,實現了細粒度許可權、安全訪問、DDL難題、研發流程等更專業的功能。
- 所有的許可權、超時、並發、流程步驟、研發規範均由企業自定義;
- 常規的資料庫風險從發現到執行由DMS企業版自動完成,配置中的風險也由DMS企業版自動完成;
- 所有並發調度和環境一致性由DMS企業版內部處理。
DMS整體服務架構
下圖是目前的DMS整體架構圖,支持RDS、ECS自建庫、ADS、萬網以及其他公網庫。
DMS訪問架構圖(示例)如下所示,大大縮小了用戶與DB之間的距離。您可能經常出差,可能去外地旅遊,但是我們希望您在全球任何地方對DMS有最佳的網站體驗,因此我們將在全球部署DMS站點,同域名就近訪問;其次,在您異地訪問資料庫的時候,我們希望資料庫的操作足夠穩定,批量數據處理的時候效率足夠高(例如數據導入),所以我們會在全球各地部署本地連接池去訪問資料庫,網站與連接池之間通過批量、壓縮等方式減少交互次數,減少整體鏈路的RT,讓您在全球任何地方通過DMS去訪問異地的資料庫有一個最佳的體驗效果。
DMS後續的計劃
DMS企業版目前已經開邀測,預計11月份會正式公測,它會給您提供的是具有20人以上研發規模的研發協同,除DMS這些基礎功能及專業功能外,還會為您提供企業級敏感數據分級、研發流程、風險預判、精確審計、多環境發布、分庫分表邏輯化等一系列的企業級功能。此外,在移動端設備上也有一些設想,在8月31日我們將正式發布第一個移動版本,後續還會不斷迭代來提供更為強大的功能。智能優化、構建數據、數據可視化以及數據追蹤回放,都需要進一步地研發完善,以滿足用戶更全面的需求。
原文鏈接:DMS前後端技術揭秘及最佳實踐-博客-雲棲社區-阿里雲
更多技術乾貨敬請關注云棲社區知乎機構號:阿里云云棲社區 - 知乎
推薦閱讀: