雲端計算時代,資料庫架構設計有哪些改變?

趙鈺瑩發表於2018-05-07

  雲端計算時代,各大廠資料庫架構設計經歷了哪些改變?在SACC大會第二天下午的資料庫架構設計的前世今生(上)專場,來自京東雲、阿里巴巴、58速運、去哪兒網、京東的技術一線專家分享了各自在雲端計算時代下的資料庫架構設計實踐,遇到過哪些問題?如何解決?如何保證資料庫的高可用和高可靠等等一攬子技術乾貨!

  京東雲資料庫技術負責人張成遠:雲時代的資料庫演變之路

  資料庫戰國時代,往往每家企業使用的資料庫都不止一種。面對市場上眾多SQL、NoSQL以及NewSQL類資料庫,我們該如何選擇?京東雲張成遠表示,首先要從需求出發,梳理基本生命週期管理需求、執行期生存類需求以及隨著資料量增大之後的高階需求。

雲端計算時代,資料庫架構設計有哪些改變?

  雲端計算時代的到來,意味著DBA手工執行的時代已經過去了,DBA可一鍵自動建立,實現分鐘級搭建主/從秒級庫表管理。對於眾多DBA關注的高可用、高可靠主/從秒級庫表管理方案設計,張成遠認為,應該從業務需求出發,瞭解業務可忍受的延遲和資料丟失極限,京東雲目前將資料存於雲端儲存,由於雲端儲存是三副本的,這種方式可以儘可能保證資料不丟。

  對於訪問量過大的情況,資料庫是非常脆弱的,DBA可以層層過濾掉從鏈路打到資料庫上的請求。一般DBA採取的方案是讀寫分離或一主多從,張成遠認為,如果對資料質量要求不高,可以採用讀寫分離。否則,不建議使用讀寫分離方案。

  58速運CTO沈劍:58速運資料庫降壓優化實踐

  一個喜歡寫文章的技術人,這是很多人對沈劍的印象。不單單是文筆過硬,沈劍的技術能力也十分強。作為58速運的CTO,沈劍對DBA進行了很多思考:DBA的定位應該是什麼?DBA的職責又是什麼呢?

雲端計算時代,資料庫架構設計有哪些改變?

  在很多公司內部,DBA和研發之間的關係都非常微妙。DBA往往是執行研發提交過來的工單,而漸漸淪為了工單執行工具。沈劍表示,業務DBA應該從專業的角度帶給業務價值。從專業的角度,幫助研發做好早期設計;瞭解被執行工單的業務背景,來龍去脈,做好把關;結合業務進行優化,給出優化建議。

  隨著近些年業務體量的增大,很多資料庫都面臨著優化問題。DBA應該學會找主要矛盾,針對性優化。效能優化方面,MySQL分析工具還是很多的,比如可用於分析慢查詢的pt-query-digest;調優過程中可以把慢SQL時間設為0,從slowlog中獲取所有SQL的相關資訊,對效能的影響在10%以內;同時,DBA可以獲取總體分析結果,分組排序的分析結果,單Query ID的分析結果。

  京東商城中介軟體技術部負責人丁俊:京東分散式KEY-VALUE儲存設計與挑戰

  目前,很多企業在資料庫架構設計上還面臨著諸多挑戰,比如故障檢測與恢復、線上擴容、高可用、升級等,丁俊對這些問題逐一進行了解答。

雲端計算時代,資料庫架構設計有哪些改變?

  在故障檢測與恢復方面,京東目前的解決方案是非持久化儲存—JIMDB和持久化儲存— FBASE。JIMDB相容REDIS協議,線上彈性伸縮的,資料全部儲存在記憶體的K-V儲存系統;FBASE支援多協議,支援範圍查詢的持久化K-V儲存系統。JIMDB讀寫效能要求高,效能要求優先於資料可靠性;FBASE對資料可靠性要求高,資料量大,資料冷熱分佈明顯。

  線上擴容上面,要想平滑擴容,丁俊提出需要提前把將要變更的拓撲資訊下發給客戶端,客戶端捕捉到特定異常後使用臨時拓撲,擴容完成後臨時拓撲變更為正式拓撲。擴容過程中,需要注意資料遷移最小單位為槽,單shard需要控制大小,避免遷移資料多時間長。

  高可用方面,依然是異地災備的方式,主要涉及一些副本的部署要求。升級方面,主要步驟為記憶體中的資料要做遷移;按照shard滾動升級;新版本的容器建立在同一臺宿主機上;遷移完成後客戶端捕捉到資料已遷移的異常,會使用新的拓撲。

  除了京東分散式KEY-VALUE儲存的具體設計和問題,丁俊也給出了對未來的功能規劃,比如支援redis資料結構,支援二級索引以及事務等。

  去哪兒網資料庫架構師黃勇:Qunar網資料庫架構的發展

  去哪兒網資料庫架構設計的前半生基本上可以總結為:解決問題——遇到問題——解決問題——遇到問題.......黃勇表示,早期的去哪兒網資料庫也是“小作坊模式”,從單機房內的MySQL逐漸演變為現在的跨機房QMHA架構,同時可保證安全性和高可用。這一路,去哪兒網試用了不少架構體系設計模式,遇到問題就解決問題,對架構不斷進行調整。

雲端計算時代,資料庫架構設計有哪些改變?

  自2015年以來,去哪兒網一直在應用QMHA架構,QMHA架構主要有四大技術特點:GTID,GTID易於維護和切換,主從節點間可知資料差異;Sentineld,分散式哨兵,減少誤切換和網路分割槽,raft演算法,自動切換;Semi-Sync,提高資料節點一致性的同時提高叢集安全性和可用性,多執行緒複製,且可以跨機房和網段部署;Zookeeper,全域性namespace,通知客戶端更新配置。

  目前,去哪兒網的DBA操作平臺中的SQL稽核部分使用的自研技術已經開源,廣大DBA可以嘗試搜尋試用。

  阿里資料庫架構師呂建樞:阿里巴巴資料庫計算儲存分離架構與實踐

  資料庫容器化,當前面臨的問題是什麼?作為淘寶的運營商,阿里巴巴的資料庫架構必須經得起雙十一等大促帶來的挑戰,呂建樞表示,阿里巴巴的資料庫容器化曾經面臨著一些排程問題和成本問題,比如機型配比問題—CPU,記憶體以及儲存之間的選擇,如何應對大促又不至於提高日常運營成本等。

雲端計算時代,資料庫架構設計有哪些改變?

  呂建樞表示,阿里主要從計算儲存分離、分散式儲存優化、資料庫設計、資料庫離線上混布等幾方面介紹了資料庫容器化設計的每一步以及遇到的問題。當前面的計算儲存分離完成後,離線上混布成為可能;阿里巴巴目前所有的資料庫都已完成容器化,預計今年完成離線上混布(DB隔離策略,時延敏感),未來的資料庫將是純使用者+RDMA+SPDK的結構。

  面對雲端計算、海量資料、高流量併發等挑戰,資料庫架構設計需要不斷迭代升級。高併發和高可用似乎是資料庫架構設計一貫的基本要求,這些網際網路大廠遇到的問題是否與你類似?這些解決方案是否開啟了你的腦洞呢?未來的資料庫架構設計又會是什麼樣子呢?

雲端計算時代,資料庫架構設計有哪些改變?
▲更多資訊盡在IT168現場報導專題  http://sacc.it168.com/topic2017/


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31077337/viewspace-2153947/,如需轉載,請註明出處,否則將追究法律責任。

相關文章