DBA在大資料雲端計算時代如何自保?未來資料庫的發展趨勢是怎樣的?

資料和雲發表於2019-05-28

由雲和恩墨主辦的「DTC之資料庫技術實戰線上峰會」每週四都會邀請業內外技術大咖進行一小時的線上主題分享。5月30日,我們邀請到了21CN DBA主管、技術專家、資料庫架構師成思敏老師,帶來題為《雲資料庫反脆弱性運維體系》的分享。

詳情:講師專訪丨21CN成思敏:優秀DBA必備的技能和素養和雲資料庫運維

走向成功的道路從來都不是一帆風順的,但成功者往往具有某些相似的特徵。在演講開始之前,我們DTC線上峰會組織者採訪了成老師,請她分享了15年的DBA成長之路,以及是如何迎接新技術的挑戰、日復一日的學習策略,進而完成職業生涯的進階,成長為技術專家、資料庫架構師、公司DBA主管。

DBA在大資料雲端計算時代如何自保?未來資料庫的發展趨勢是怎樣的?

21CN DBA主管、技術專家、資料庫架構師 成思敏

以下為採訪正文

使命、責任感驅使我不斷學習


DTC:請先和大講堂的使用者介紹一下您,以及您感興趣的技術是?

A:大家好,我是21CN成思敏,對資料庫技術持久產生熱情的老牌DBA,很高興與大家分享資料庫知識與經驗,我是從ORACLE技術成長起來的,因為不斷有專案的需要,開始去ORACLE,及對新型資料庫的管理,解決各種資料庫與中介軟體相關問題。因為公司DBA團隊不斷壯大,就培訓與培養新人。作為非常重量級DBA盛會的DTCC講師,我很榮幸。今天能在恩墨大講堂與大家分享經驗,我也非常榮幸,非常開心。與資料庫相關的話題我都比較感興趣。


DTC:有句耳熟能詳的的話是“做資料,就是場修行,其樂趣就在於它永無止鏡”,為何選擇資料庫這個領域?您認為是什麼使您深深地投入這個領域的?

A:“做資料,就是場修行,其樂趣就在於它永無止鏡”,對DBA來說很貼切。資料庫是一門藝術,解決不了問題,效能最佳化不了,那是相當痛苦的,但是一但解決問題,那種成就感與藝術家沒區別。很多年前,因為專案需要,我負責的專案中有資料庫,為了做好專案,去初步瞭解並做了資料庫的測試實驗,查詢相關的資料,發現真是一個深似海的天地,於是才決心投入到資料庫這行業中來了。


DTC:各種新技術層出不窮,怎麼掌握技術的趨勢?以及您個人是如何學習新技術的?

A:其實每個人精力是有限的,對於新技術趨勢的話,DB-Engines()上面的資訊面比較多,我經常分析與參考上面的資訊;技術資訊網如CSDN、51CTO、開源中國、GitHub、ITPUB等;另外,經常看些論文、專利文章(國外比較少,有機會我還想多閱讀下國外的巨頭公司及高校論文),還有行業大會也非常重要。


新技術越來越多,首先是需要看公司的需要,挑些公司可能需要的資料庫技術,首先搜尋這種技術的實踐情況(公司落地、網友技術分享),另外就是快速閱讀官方文件,進一步真實瞭解該技術到底可以做什麼有什麼缺陷等,然後就是實踐。


DTC:您如今,每天負責公司的DBA團隊,也需要不斷的學習新技術,以及大量的人才培養等,事情比較多,在時間安排上您什麼心得和體會可分享?

A:其實之前上班時間根本沒有學習時間。因為使命、責任感,必須讓自己提高已成為一種習慣。每天有幾個時間點我抓得比較緊:

  • 早晨6點左右,起來之後速度看書40分鐘

  • 提前半小時以上到公司(看書及資料)

  • 利用中午一小時(一個半小時午休,半小時吃飯)學習,

  • 週末也利用一部份時間

  • 思考常常是在深夜,每天都會積累很多的問題,並在深夜常常獲得靈感,得到答案。

開始是強迫自己的,幾年後發現不學不自在(自我認為不學習自己就變俗氣了)。資料庫雖然是門藝術,但責任感讓人想問題更多些,成長就非常快了。


DTC:能否回顧一下自己的職業之路,談一談畢業後這些年在工作中的收穫和體驗,以及職業路上的故事?

A:我所得的榮譽是來自於DBA,所得益的也是因為從事DBA,以DBA為榮,雖然經歷的都是挫折、坎坷與挑戰:

  • 2010年公司有一個Oracle核心系統效能不穩定,我曾經連續奮戰三天兩夜,中間也只休息了半小時

  • 2012年,為了資料庫的穩定性,出差27天(日夜都在分析與解決問題)

  • 2013年冬天為了異構,不論天寒地凍、不分晝夜,連續三四個月與研發討論、交涉、博弈、分析

  • 2016年春節,有春節紅包活動,我有事請假不能在現場,但即使在路上,一小時一停車去與研發及團隊溝通問題,並提供思路等

  • ……

優秀DBA需要掌握的技能與素養



DTC:DBA,DBA是英文Database Administrator的簡稱,也就是資料庫管理員,是負責維護和管理資料庫伺服器的專業技術人員,您有著15年資料庫工作經驗,現在作為DBA主管、資料庫架構師,您對DBA的理解是?以及您認為DBA需要什麼樣的技能和素養?

A:資料庫管理員,是需要關注資料,也需要關注庫,即需要關注資料與服務,要關心如何運算元據庫(程式),從而來保障好資料庫。DBA是一個系統架構專案產品的核心保衛戰士,有很高的話語權。但這就要求DBA不要只做好資料及庫的事,更重要的是需要理解產品,需要知道系統特徵,從而才能更容易把問題分析透徹,根本上解決系統的表面問題。


個人認為DBA需要掌握的技能與素養有這幾個方面:


1. DBA應該是一個系統的運維工程師,瞭解資料庫所掌握的作業系統(操作與調優)

2. 所負責的資料庫專案相關所有的特徵,瞭解效能峰值及業務增長

3. 資料庫本身,維護相關的如部署,調優,備份,恢復,遷移,升級,巡檢等基本能力

4. 理解監控,對監控的每項語義明瞭並不斷最佳化監控

5. DBA需要事中應急的技能,應急就是保障業務的連續性(如自動切換的能力),故障的快速診斷,快速修復資料,快速恢復資料

6. DBA需要有危機意識,把自己所負責的資料庫相關的問題,能想多少就想多少,不斷平時發現問題,從而不斷提高技能的同時,更多的是為保障提供業務技術與服務

7. 一個好的DBA,是不斷的實驗,實驗再實驗的,既是對系統的演練,更是對自己技能的演練,這樣才能速度提高自己的水平。(我記得,初始為DBA時,我一天可能實驗有超過每天五六小時)


作為職場中人,我們都需要生存。我們很多人,都是被人管理,也有管理人的,從管理角度上(我自學了很多年MBA等管理相關專業等),我們需要了解公司需要做什麼,我們如何去做符合專案的事(這個課題請大家以不同的方式思考),如何才能做一個超過DBA本身的事,做符合公司價值觀的工作,而不是悶著頭一直做。只有符合公司價值觀的工作,才能真正使我們成長。即使我們做對了一件資料庫恢復的事,也是體現公司價值的一部份,我們也是了不起的。但其實要想自己職場中發展,更多的是做好本職工作同時,更需要創新的思路,這對公司與自己都很重要。


DTC:運維DBA和開發DBA相通和區別的地方是?

A:DBA無論是運維DBA還是研發DBA從本質上都是來解決保障資料庫問題,從而支撐專案可落地,可健康運營的目的。運維DBA比較靠表面一些,運維DBA是施工、調優、監控、更新、備份恢復等從系統的層面來保障業務的,研發型DBA主要從研發及功能與效能設計的角度上,對資料庫表、欄位、資料、SQL等設計的方向去讓產品匹配系統的,是基於資料庫與專案的點不同但都是解決同一專案。


DTC:大資料/雲端計算時代,給DBA帶來了哪些新的挑戰?

A:大資料/雲端計算時代已來臨好多年了,市場逐漸成熟,DBA做精資料庫已很難做到了。現在大家都不是一直看著Serverless方向發展了嗎?DBA需要懂得更多。無疑,關係型資料庫還是主流,但業務逐漸有不少方案選擇NoSQL等型別;NoSQL型別,往往是無維護模式的(即有叢集,表模型很簡單),調優常常是研發的事,在這種調優,除了引數調優之外,傳統DBA往往無很多事可做,但故障來了,卻又很難解決(解決往往也需要研發來解決),主要是因為對NoSQL的不熟練,及很多NoSQL型別資料庫其實並沒有傳統資料庫成熟,資料也不夠多等,DBA經歷不夠,而比較被動;

雲端計算上資料庫例項和業務過多,而DBA如何和之前一樣最佳化好、監控好、保障好,這個挑戰很大的,產品使用者體驗已成為企業競爭力的一個核心要素,而業務大、質量要求更高,對DBA保障業務更是一個挑戰。


DTC:DBA通常會遇到技術、職場等多角度的瓶頸,於您而言是否有那麼歷經困苦突破之後的事情?

A: 可能平時我想問題比較多吧,不想一直悶著做事,因為我知道,一直做下去,就跟個工人沒兩樣。所以,我需要去不斷突破自己。僅做部署、備份、恢復等是不夠的,因此,在實驗之餘,考證照是我第一個想到的。選擇了OCM的考試,第一,主要是想知道整個Oracle有什麼,我如何掌握技術核心;第二是掌握後,我可以能夠擔負公司更重要的專案及任務,順便對自己知識最佳化等。


另一個是雲端計算與大資料來了之後,要去IOE,我辛苦花好多年學來的東西要去掉,雖然不是從0開始,但又得重新從0開始,不斷適配公司要求的技能是我們必須每天要做的事吧,無論是不是DBA,市場、公司需要什麼,我們都得做吧。所以,就開始轉型做分散式、NoSQL類的資料庫研究與測試等工作,速度轉型。


我現在還在轉型與學習中,有更多的難題(在平時思考中獲得的,及公司所遇到的),需要突破自我(調整技術結構,瞭解技術能力,識別技術可行性,技術價值落地等),需要更強大,幫公司成就專案,找合適的主題與命題給團隊讓團隊更加健壯的成長,當個很好的螺絲釘。這個是我每天在做與想的問題。

雲資料庫的運維新挑戰



DTC:新的框架層出不窮,例如資料儲存領域的發展,從檔案、關係型資料庫、NoSQL 資料庫、分散式資料庫等,五花八門的新技術,有些是曇花一現而有些則變成主流選擇。何時引入新工具和引入哪種新工具提高生產力,就變成了一個考驗眼光的技術活兒。有時候存在一種是為了引入而引入麼的情況,小公司沒有歷史包袱,新技術對他們誘惑力很大,對此您有什麼經驗可分享?

A:對於新技術的選擇,我們壓力比較大,因為有質量及故障考核,這是一個矛盾;技術創新與質量要求的考核,有時候也是一種制約。但作為公司來講,是鼓勵創新的,公司更要求穩定中求發展。一般樹立命題,是題目評審-技術調研測試-部門內分享結果,這特別要讓研發知道。需要推廣新技術落地時,需要評審技術落地的理由,然後作為儲備技術,當有專案場景需要時拿出來再用。


DTC:雲資料庫悄無聲息地已到來,可否分享下資料庫的發展歷程,以及具體介紹下雲資料庫?其和傳統資料庫有著怎樣的區別?

A:雲資料庫離不開雲端計算,雲資料庫是建立在虛擬機器上為基礎的,帶有云計算的特徵、共享、彈性、智慧。傳統的資料庫拿Oracle來講,本身是比較重的,安裝部署都是個重型的工程。雲資料庫輕巧,有更多解決方案,能組建更多的架構(自動切換、讀寫分離、分散式、資料中心多活);傳統的資料庫可選的不多。雲資料庫更是利用了雲端計算強大的全棧技術能力,更是有了共享資料的能力,同時可以隨意實施主機熱遷移的能力(快速遷移)


類別

雲資料庫

傳統資料庫

主要資料庫

以RDS(MySQL)為主

以Oracle為主

安全性

雲端計算已安全保障了大部分安全

安全性比較嚴重

效能

單例項效能不高

單例項高效能

資料量

單例項不能資料量過大

可以支撐大資料量

遷移

不影響服務,秒級切換(叢集或從庫)

遷移是個大工程,切換教久

併發性

分散式構建容易,解決儲存IO

儲存瓶頸較難解決

連續性

高可用、聯絡性好

切換較慢,關注資料一致性

服務

分散式構建,區域性失敗,多種連續性解決方案

過於集中化

對DBA要求

需要綜合使用工具的能力

需要專業的調優能力

雲資料庫與傳統資料庫比較


DTC:雲資料庫服務運維體系需要注意哪些問題?

A:雲資料庫服務,是服務就會出問題,必須轉換的思路(資料庫單服務實體不能影響整個系統,堅持故障無害思路,不要相信單節點的能力)。


在基於整體架構的基礎上,把每個問題點列出來,持久頻繁演練,制定出自己適配運維方式,才能有問題不會慌亂;另外,雲資料庫一式三分(主、備、異地備,不要去相信任何一個單節點的服務與資料),同時,在每份備份上,有邏輯備份,這樣才能長治久安。雲服務自動化運維能力非常重要,讓系統管理資料庫,而不是讓人去管理資料庫,這樣的思路理念。人的操作代價是極高的,操作有限,水平有限,運算元量有限,因此,一定需要按照系統解決系統的思路來走。


問題項

問題描述

“問題”SQL增多

非高併發的INSERT都可能成為慢查詢

SQL不穩定執行

執行計劃會變化

監控不準

虛擬機器本身沒問題的情況下,效能有問題

雲資料庫服務劇增

例項過多,DBA不能只關注個別例項

中介軟體增多

需要研發例項來支撐中間,頻繁更新

中介軟體問題多

理論上的分散式資料庫,中介軟體是瓶頸“咽喉”,仍然是中心化類的資料庫

架構過高,中間損耗大

中介軟體與MySQL單個效能都不是很高,基於資源有些浪費

雲端計算資源池過於集中

過多的服務互相影響,儲存級別的問題排查困難

跨機房系統增多

專線與公網影響整套系統的穩定性與RTT的返回速度

排查問題難

基於不可控的問題多,排查問題相對困難,“無頭案”增多

雲資料庫服務運維體系存在問題特徵


DTC:可否介紹下21CN的雲資料庫服務情況?

A:雲資料庫已是21CN做專案的標準,不再提供傳統資料庫服務,之前未遷移上雲的專案繼續完成(個別專案);而有個轉變是,之前雲資料庫經常用的SATA、SAS磁碟,現在逐漸使用SSD等高效能的硬體儲存做為雲專案的標準。還有,我們的業務也越來越多了,挑戰每天都有,不過,我們蠻有信心與信念做好的。


DTC:本期您分享的雲資料庫服務脆弱性是什麼?為什麼關注這個事情?

A:脆弱性往往在系統上講指安全性,不堪一擊,這裡的脆弱性指與資料庫服務相關的所有質量屬性問題:故障、服務失敗、同步失效、資料恢復、同步不一致、資料有效性、成本可控性,凡是命中在資料庫上所有的問題都屬於脆弱性。因為往往表面發生在了資料庫上面,但往往是別的原因,因為雲資料庫屬於PaaS,並且可選擇的資料庫型別雖然多,但問題也會多起來。


DTC:某一項新技術/趨勢的誕生,往往技術圖書很快出來,可否推薦一些雲資料運維的優質圖書給大家?

A:這個需要結合雲端計算及運維及資料庫相關的資料結合起來才可以:《分散式資料庫系統原理(第3版)》、《SRE:Google運維解密》、《AWS雲端計算實戰》等很多,一般我是看幾家公司比較多些:Google、AWS、微軟等這些工程師寫的,我經常也直接把噹噹也當知識庫了,需要什麼型別的資料,搜相關的書,看大綱內容,理解思路等。

關係型資料庫依舊主流,未來也是主流



DTC:對從事DBA行業的人的人,您有什麼對他們說的話?

A:DBA是門職業,也是一種榮譽,DBA站在自己的角度,守護自己的系統同時,時刻傳遞資料庫服務價值(不要悶著頭去工作),讓公司走得更好,也才能自己走得更遠。


DTC:以您多年豐富的工作經驗,您如何看未來資料庫技術的發展和趨勢?

A:應用資料應用越廣泛,資料庫就會被用得越來越多,資料庫越來越智慧與靈活。關係型資料庫依舊主流,未來也是主流。多模資料庫型別發展迅猛,原生資料庫的思路是一個亮點,(SQL與NoSQL較完美的結合,前端SQL後端NoSQL);另外,資料庫叢集元件越來越好,如RAFT、PAXOS協議的相關應用。


DTC:能否談一下您和雲和恩墨大講堂的淵源?以及對大講堂有什麼建議?

A:雲和恩墨公司當初我就知道的,當初我也是看蓋老師的技術部落格()成長起來的,重量級的DBA都在這裡雲集,令人看到資料庫持續有人往下走的希望與力量。


希望大講堂能夠像網易公開課一樣,話題多、專業性強、趣味,有時候可能講下資料庫發展歷史的牛人奇人奇事等,讓更多的人參與等。

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

相關文章