MySQL DBA的修煉與未來,看看老司機們怎么說?

隨著MySQL地位爆炸式的提升, MySQL DBA的市場缺口日益劇增,優(yōu)秀的MySQL DBA正在成為各個互聯(lián)網(wǎng)公司搶手的人才。然而,需求來了,問題也來了,如何快人一步提高自身技能,讓自己在日益激烈的技術(shù)挑戰(zhàn)中不斷增值、脫穎而出?

今天,我們將鎖定MySQL數(shù)據(jù)庫,通過韓鋒、虢國飛、楊奇龍、楊建榮、張青林、李輝、賀春暘、李季鵬等8位MySQL專家的經(jīng)驗之談,為想從事MySQL DBA的同學(xué)們答疑解惑,指明一條修煉的路子。

目錄大綱

認(rèn)真讀完本文,你可以了解到:

一、選擇篇

1、MySQL的流行原因及從業(yè)前景

2、MySQL DBA的薪資緣何普遍高于Oracle DBA

3、個人如何完成Oracle向MySQL的轉(zhuǎn)型?

二、學(xué)習(xí)篇

1、從初級到高級的MySQL DBA學(xué)習(xí)路線及學(xué)習(xí)資料推薦

2、源碼是否為高級MySQL DBA的必備技能?

3、MySQL不同分支的選擇討論

4、MySQL認(rèn)證考試的含金量

三、趨勢篇

1、隨著功能的不斷完善,MySQL還會是“小而美”的代表嗎?

2、MySQL目前還缺乏哪方面的能力,是否足夠成熟?

3、如何看待數(shù)據(jù)庫中間層與數(shù)據(jù)庫的關(guān)系?

4、傳統(tǒng)運維逐步萎縮下,DBA應(yīng)選擇什么方向發(fā)展?

四、未來篇

1、數(shù)據(jù)庫云化會對傳統(tǒng)DBA帶來什么樣的沖擊?

2、如何看待分布式數(shù)據(jù)庫的未來前景?

3、越來越多的DBA正在或?qū)氖翫evOps類工作,你的看法是?

選擇篇

Q1:你認(rèn)為MySQL流行的主要原因是什么?從長遠(yuǎn)角度來看,從業(yè)前景如何?

1、流行原因

虢國飛:綜合來看,MySQL的流行是偶然中的必然。原因主要有以下三點:

免費:傳統(tǒng)數(shù)據(jù)庫昂貴的license費用是很多企業(yè)一塊心病,MySQL社區(qū)版已經(jīng)能滿足大部分用戶的需求,而且是免費的,自然在企業(yè)內(nèi)部推廣時不會遇到阻力(老板們肯定支持);

開源:開源的好處是只要你想,你可以深入到代碼級別來了解數(shù)據(jù)庫的運作原理(甚至可以改造它),這個遠(yuǎn)勝于傳統(tǒng)黑盒數(shù)據(jù)庫只是簡單輸出一些log或者白皮書來讓人猜測運作情況,開源能讓DBA能知其然并知其所以然,而且開源社區(qū)還有豐富的工具,給DBA在維護上面提供了強大的支持。 DBA能在社區(qū)快速找到自己需求的東西,組合成自己的工具箱,所以社區(qū)工具的豐富也彌補了產(chǎn)品本身的缺陷;

簡便:這一點使得MySQL部署簡單,新手學(xué)習(xí)門檻低、上手快(當(dāng)然要真正掌握好還是需要大量學(xué)習(xí)的),不要花費太大的精力就能快速搭建起一套高可用的集群來,而不像Oracle數(shù)據(jù)庫那樣,有很多配套東西需要了解,沒有幾年的學(xué)習(xí)很難掌握,對于新手來講都會覺得挺難的,所以MySQL能在DBA群體(甚至包括開發(fā)人員)中快速地普及。

2、就業(yè)前景

李輝:目前來看,MySQL DBA的日子還是很滋潤的,在可預(yù)見的3-5年內(nèi),MySQL在互聯(lián)網(wǎng)行業(yè)的地位仍無法取代,對DBA的需求量仍然很大,特別是中高級DBA。但從長遠(yuǎn)角度來看,從業(yè)人員也要多涉獵其它關(guān)系型數(shù)據(jù)庫以及NoSQL、Devops、云計算等技術(shù),現(xiàn)代社會唯一不變的就是變化,不斷學(xué)習(xí)、擁抱變化才能保證自己不被未來社會淘汰。

Q2:如何看待當(dāng)前MySQL DBA的薪資普遍高于Oracle DBA的現(xiàn)象?如果想從事DBA,選哪個數(shù)據(jù)庫更好?

1、MySQL DBA高工資的原因

楊建榮:因為是和Oracle來對比,可以分為幾個方面來看:

首先物以稀為貴,MySQL DBA相對Oracle DBA來說要少一些,隨著現(xiàn)在互聯(lián)網(wǎng)行業(yè)的發(fā)展,這個需求還是會持續(xù)增長;

第二還是物以稀為貴,任何工種,高級職位都是稀缺的,如果你能夠成為行業(yè)內(nèi)的20%的人,無論你是從事哪種數(shù)據(jù)庫,都會混得還不錯。

第三還是物以稀為貴,什么事物的發(fā)展都有一個成熟度曲線,水漲船高之后,留在你手里的是真技能還是花拳繡腿,數(shù)據(jù)庫的功能會越來越豐富,你的技能也要升級,不升級的話,用哪個數(shù)據(jù)庫你都會很吃力。

楊奇龍:對于薪資高這點,我覺得要從兩方面看:

MySQL DBA和Oracle DBA 的雇主行業(yè)不一樣,MySQL DBA 多屬于互聯(lián)網(wǎng)等新興企業(yè),大多數(shù)是資本聚集,而Oracle DBA 則從事于傳統(tǒng)或者部分大型企事業(yè)單位。兩種企業(yè)的薪資平均水平本就有差距。

從技能要求上,MySQL在功能上比Oracle “弱”或者說不完善,需要DBA具有更高的技術(shù)掌控能力做HA、備份、恢復(fù)、校驗等。Oracle 則提供了比較完備的功能。

2、從事DBA崗位,選MySQL還是Oracle?

楊建榮:有句話說,選擇的利劍屬于在于能夠揮舞它的人,根據(jù)工作需要,自己的喜好去選擇就可以,如果只是本著錢途是不推薦的。如果非要糾結(jié)到底是哪一個,其實也可以換個角度,如果兩個都學(xué),是不是這個問題就不是問題了。

楊奇龍:我的想法比較實際。行行出狀元,不管是MySQL DBA 還是Oracle DBA都有比較成功的人士,建議是看各自的興趣和愛好,以及自己想進的公司的招聘需求。MySQL 和Oracle 并不矛盾,我認(rèn)識的相當(dāng)多的人,兩種數(shù)據(jù)庫都能維護得非常好,比如大牛樓方鑫,Oracle 工具開發(fā)以及MySQL 內(nèi)核開發(fā)都有非常出色的成果。

Q3:個人職業(yè)發(fā)展如何完成Oracle向MySQL的轉(zhuǎn)型?

楊建榮:從自身目前從事的工作,分三種情況來看:

(1)目前從事的工作以商業(yè)數(shù)據(jù)庫Oracle為主,又想轉(zhuǎn)型為MySQL DBA的:

自搭環(huán)境學(xué)習(xí)實踐是一個起步,如果覺得沒有明確的學(xué)習(xí)目標(biāo),考個MySQL OCP也是一種階段性的學(xué)習(xí)成果驗收,總比漫無目的的學(xué)習(xí)收獲要大。已經(jīng)有了Oracle基礎(chǔ),可以通過對比的方式來引入到MySQL的學(xué)習(xí)中。公司如果后期引入MySQL方案,你就是最佳人選了。

(2)目前工作中有MySQL環(huán)境的:

在做好本職工作的前提下,可以自薦,讓別人推薦來做MySQL DBA的工作。對企業(yè)和你個人都是雙贏,所以開發(fā)測試運維同學(xué)相做MySQL DBA也是可以的。

(3)現(xiàn)有的MySQL工作和自身期望相比差距較大的:

一種方式是自查,我們在當(dāng)前的環(huán)境還能夠做出些什么,如果能夠把當(dāng)前的環(huán)境做到精細(xì)化的管理,總會有非常多的事情和收獲,還有一種方式就是跳槽,這個的前提也是你在儲備了很多的技能之后,因為機會是留給有準(zhǔn)備的人。

虢國飛:我是從SQLServer轉(zhuǎn)型到MySQL的,感覺這個轉(zhuǎn)型應(yīng)該比Oracle轉(zhuǎn)MySQL更大,因為本身還要克服操作系統(tǒng)的區(qū)別(Windows轉(zhuǎn)型Linux),不過如果你已經(jīng)有一個數(shù)據(jù)庫產(chǎn)品的經(jīng)驗,再來學(xué)習(xí)其它數(shù)據(jù)庫產(chǎn)品,難度應(yīng)該不是很大,因為很多底層的原理是相通的,概念也差不多,無非是各種產(chǎn)品在設(shè)計上側(cè)重點有不同、使用方式上有差異。

所以我覺得要完成這個學(xué)習(xí)轉(zhuǎn)型,首先心態(tài)上面應(yīng)該放開(千萬不要帶偏見,認(rèn)定哪種好哪種不好),通過對比的方式來學(xué)習(xí)和實踐,善于總結(jié)差異分析優(yōu)劣,多和同行溝通交流,相信轉(zhuǎn)型過程不會太長。

李季鵬:從Oracle到MySQL轉(zhuǎn)型,不單單是一個人的學(xué)習(xí)過程,也是一個從開發(fā)到運維的磨合過程。

首先,戰(zhàn)略上要藐視敵人,熟練掌握Oracle的話,對于任何一種關(guān)系型數(shù)據(jù)庫的學(xué)習(xí)都是事半功倍的,特別針對MySQL,可以視為一個功能和手段做減法并尋找替代手段的過程;

但重要的是,戰(zhàn)術(shù)上要重視敵人,限于MySQL的特點,特別是中大型場景,把MySQL當(dāng)Oracle用只會更加痛苦,必須放棄原有的Oracle視角,堅持MySQL大而化之的特點。

學(xué)習(xí)篇

Q1:從初級成長到高級,有推薦的MySQL學(xué)習(xí)路線嗎?

楊奇龍:DBA 是一個“復(fù)雜”的工種,要成為高級/資深MySQL DBA,我總結(jié)了以下五點:

官方文檔是最好的學(xué)習(xí)資料。通讀官方文檔是最扎實的學(xué)習(xí)方式,目前大多數(shù)同行只是把官方文檔當(dāng)做參考資料。其實把官方文檔理解透徹你已經(jīng)能成為高級DBA了。

紙上來得終覺淺,絕此事要躬行。多動手,多做實驗驗證技術(shù)功能點。

找一個有業(yè)務(wù)量的平臺,鍛煉自己的技術(shù)能力。

能干活,能寫文檔,能講。能夠?qū)⒆约豪斫獾闹R教會其他人才算真的弄懂。

不懂業(yè)務(wù)的DBA 不是優(yōu)秀的DBA,能夠思考如何存儲數(shù)據(jù),也要會和開發(fā)溝通討論業(yè)務(wù)如何訪問數(shù)據(jù)才算最合理的。

參考DBA技能樹

http://blog.itpub.net/22664653/viewspace-2097142/

楊建榮:DBA干的是一個手藝活(鷹眼,獅心,女人手),里面有很多技巧,但是一個崗位從初級走向高級始終是經(jīng)驗和實踐的積累,沒有其它捷徑。這里給大家提供一個自查級別的方法:

Q2:關(guān)于MySQL學(xué)習(xí)資料、書籍或網(wǎng)站,你的推薦是?

楊建榮:簡單來說,官方文檔是最好的學(xué)習(xí)資料,在這個基礎(chǔ)上去閱讀更多的書籍會起到融會貫通的作用。如果推薦書籍,我有下面的一個讀書清單可供參考。

入門:

《涂抹MySQL:跟著三思一步一步學(xué)MySQL》

《MySQL數(shù)據(jù)庫應(yīng)用從入門到精通(第2版)》

《MySQL核心技術(shù)手冊》

《MySQL技術(shù)內(nèi)幕(第5版)》

運維實踐:

《高性能MySQL》 經(jīng)典必讀

《MySQL管理之道:性能調(diào)優(yōu)、高可用與監(jiān)控(第2版) 》賀春旸

《深入理解MySQL核心技術(shù)》帕奇維

《MySQL運維內(nèi)參》 周彥偉、王竹峰、強昌金

《高可用MySQL》

內(nèi)核:

《MySQL技術(shù)內(nèi)幕:InnoDB存儲引擎(第2版)》姜承堯

《InnoDB – A journey to the core》Jeremy Cole

楊奇龍:在建榮老師的基礎(chǔ),我再推薦:系統(tǒng)優(yōu)化-《性能之巔》、開發(fā)-《Python 編程:從入門到實踐》

張青林:《數(shù)據(jù)庫系統(tǒng)原理》、《InnoDB存儲引擎》。

李季鵬:最為建議的還是官方文檔,如果嫌官方文檔英文看著麻煩,可以關(guān)注Github上的MySQL 5.6 手冊翻譯項目(mysql2cn/manual56)。

Q3:你認(rèn)為研讀源碼是通向高級MySQL DBA的必備技能嗎?

楊奇龍:從我的理解來看 DBA 可以分為產(chǎn)品DBA、運維DBA、內(nèi)核研發(fā)DBA。具有內(nèi)核研發(fā)能力或者閱讀內(nèi)核源碼的人,在了解具體技術(shù)原理時具有一定的優(yōu)勢。但是成為高級DBA和是否研讀源碼不沖突。

需要注意的是,我們要有打破砂鍋問到底的“要性”。其實大牛和我們的差距就是對于一個個技術(shù)問題刨根問底的及時鉆研。比如你遇到thread running飆高的問題時,是把慢查詢優(yōu)化了就好了嗎?還是舉一反三,反思什么原因會導(dǎo)致thread running飆高?要懂得去思考下面四個問題:

業(yè)務(wù)是否需要緩存或者異步更新?

連接池配置是否合理?

是否當(dāng)時系統(tǒng)磁盤io有問題亦或是raid 卡充放電怎么避免生產(chǎn)時刻重放電?

thread running 代表什么意思?如何配置才能達(dá)到最好效果?

能否成為高級DBA,在于我們是否解決了一般人解決不了的問題的能力。

張青林:首先,我不認(rèn)為讀源碼是通向高級MySQL DBA的必備技能,即使不讀源碼,也是可以成為高級MySQL DBA的。讀源碼是為了了解其工作原理,分析其瓶頸,然后從內(nèi)核上做優(yōu)化,這是內(nèi)核研發(fā)的必備技能;做為運維人員,只要懂其原理、使用方法,處理線上問題,并配合研發(fā)人員對線上進行維護,一樣是很高質(zhì)量的工作,也是“源碼”落地的最重要的一部分,所以不可厚此薄彼。當(dāng)然,讀源碼可以更深層次的理解內(nèi)核的工作機制,有利于學(xué)習(xí)。

Q4:針對MySQL的不同分支(Oracle官版、Percona、MariaDB),你更看好誰?

韓鋒:我還是看好Oracle官版。過去幾年,官版MySQL的發(fā)展有些滯后,導(dǎo)致很多人選擇了其它版本,Oracle也看到了這一點。最近一兩年,隨著MySQL5.6、5.7乃至8.0的推出,官版已經(jīng)逐漸追上了其它分支版本。依托于Oracle在數(shù)據(jù)庫領(lǐng)域的深厚底蘊,未來官版MySQL的發(fā)展更加看好。

如果選擇的話,我推薦的順序是:MySQL社區(qū)版->Percona->MariaDB->MySQL企業(yè)版。

張青林:我更看好 Oracle 官方版本,MySQL 被收構(gòu)之后,Oracle 在MySQL上的投入不斷的加強,優(yōu)化器、InnoDB、復(fù)制都推出了很多功能,如GR、多源復(fù)制、并行復(fù)制、優(yōu)化器的重構(gòu)、Undo空間的在線縮小、InnoDB的性能優(yōu)化、加密表空間等,這些都是解決用戶問題的實際行動,Percona的開發(fā)也有很大一部分是基于 Oracle MySQL 來做的。

賀春旸:如果你想與官方MySQL版本盡量保持緊密,并且想獲得更好的性能、運維工具和有用的特性,那就選擇Percona。如果你覺得MariaDB對服務(wù)層的大量修改更快、更優(yōu),或者想要更廣泛的存儲引擎,比如Spider分庫分表引擎,那就選擇MariaDB。

Q5:MySQL 的認(rèn)證考試值得考嗎?含金量有多大?

楊建榮:MySQL的認(rèn)證目前只有MySQL OCP,目前和Oracle OCP相比,資料和套路都會少一些。考這個認(rèn)證,你得明白幾件事情:

認(rèn)證里的內(nèi)容和工作的內(nèi)容還是有一些差別的,在MySQL里面尤其如此,因為開源的方案非常多,很多優(yōu)秀的工具不僅僅是官方的;

考過了認(rèn)證不一定代表了你是一個數(shù)據(jù)庫專家,因為實踐出真知,很多技能都是在工作中培養(yǎng)和鍛煉出來的,考試有分?jǐn)?shù)控制,達(dá)標(biāo)即合格,而工作中99%的努力加1%的錯誤那就是失敗;

考取認(rèn)證不能指望企業(yè)給你升職加薪,如果有的話,那么恭喜你;

學(xué)習(xí)的過程相比考試結(jié)果來說,對自己的啟示意義更大,因為拿到認(rèn)證是對你學(xué)習(xí)過程的肯定;

最后一點MySQL OCP報名費相比Oracle OCP低不少,價格還算親民。

賀春旸:MySQL DBA職位門檻較高,通常需要工作經(jīng)驗為3年以上的,考取認(rèn)證并不是必須的,其含金量不大。

李季鵬:認(rèn)證只是一個門檻,一個介紹自己時精煉的關(guān)鍵詞,實際上并不能等同于技術(shù)水平的真正高低。MySQL認(rèn)證分為開發(fā)與管理,個人建議可以分別視為自己在這兩條線路上學(xué)習(xí)掌握程度的一個檢驗手段,無需過分看重,也沒有必要完全看輕。

趨勢篇

Q1:隨著MySQL功能的不斷完善,其體積也愈發(fā)龐大,你是否擔(dān)心其未來會類似大型商業(yè)數(shù)據(jù)庫,不再是“小而美”的代表?

張青林:沒有這方面的擔(dān)心呢,無可否認(rèn),編譯后的 mysqld 文件越來越大,但并不影響 MySQL 的發(fā)展, 主要表現(xiàn)在以下幾個方面:

MySQL 提供了更多更好的選擇,也是對用戶的一種負(fù)責(zé)行為;

MySQL的代碼質(zhì)量從5.5、5.6 、5.7的版本迭代中可以明顯看到代碼質(zhì)量越來越高,易讀性越來越好、模塊化越來越強;

專業(yè)的測試團隊也是質(zhì)量的保證;

所以,我覺得沒有用戶會因為多了幾十M的空間而嫌棄更好用的版本吧,我覺得關(guān)注的重點不應(yīng)該是小而美,而是軟件質(zhì)量和易用性。

虢國飛:主要還是看場景需求,對于互聯(lián)網(wǎng)公司來說,強調(diào)的是高可用性,出問題能盡快恢復(fù),不大可能把大把的應(yīng)用或者數(shù)據(jù)放到一個籃子里面,否則出問題影響比較大,恢復(fù)起來也會比較復(fù)雜緩慢;但因為現(xiàn)在很多分布式部署的DB比較零散,量大了之后維護起來比較麻煩,也可能有部分需求是需要做一些遷移整合的,不過這些只是局部不是整體。

我覺得現(xiàn)在大家更關(guān)注的是如何實現(xiàn)自動化運維、集群自動化和動態(tài)的擴縮容等方面,如果能通過技術(shù)把運維復(fù)雜度降低,管理再大的量其實都不是問題,現(xiàn)在很多開源產(chǎn)品也在往自動維護和動態(tài)擴縮容這方面攻關(guān)了。

賀春旸:不用擔(dān)心,您可以切為MariaDB。只要移除MySQL,然后安裝MariaDB。你的所有工具,連接程序都可以正常運行。升級到MariaDB,你也不需要進行一次導(dǎo)出和導(dǎo)入,數(shù)據(jù)格式MariaDB是兼容的。

Q2:你認(rèn)為MySQL是否足以擔(dān)負(fù)起企業(yè)級應(yīng)用的數(shù)據(jù)載體?如果不是,還缺乏哪方面的能力?楊建榮:我認(rèn)為MySQL技術(shù)正在走向成熟,但是MySQL的生態(tài)已經(jīng)成熟。MySQL從早期的發(fā)展至今,推出的解決方案非常多,從MySQL 5.7,8.0里面還是可以看到很多它在功能性、高可用、性能等方面都在發(fā)力,很多功能和Oracle很相似,都是一個逐步完善的過程,MySQL的使用群體和社區(qū)決定了它現(xiàn)在的高度,而且絕大多數(shù)的互聯(lián)網(wǎng)公司都在使用MySQL技術(shù),所以作為企業(yè)級應(yīng)用是完全可以的。但是現(xiàn)在的互聯(lián)網(wǎng)行業(yè)對于MySQL的青睞,很多不在于MySQL單機能夠支撐的性能,而是在于靈活擴展的架構(gòu),對于MySQL的使用,不再是集中式、共享式的方式,會做拆分、分布式等。值得一提的是,很多大廠對于MySQL的技術(shù)把控力已經(jīng)走在了世界前沿,而從技術(shù)架構(gòu)的角度來看,現(xiàn)在是更傾向于把MySQL用得更純粹,更簡單,而不是大量的運算和壓力都放在數(shù)據(jù)庫側(cè),這是MySQL生態(tài)帶來的一大優(yōu)勢,也讓更多企業(yè)級應(yīng)用可以落地。楊奇龍:顯然MySQL已經(jīng)足夠成熟來承擔(dān)企業(yè)級應(yīng)用的數(shù)據(jù)載體,這點最近幾年各個電商的購物節(jié),每秒處理的交易筆數(shù)和數(shù)據(jù)量足以回答這個問題。當(dāng)然我們的業(yè)務(wù)需求是多種多樣的,除了常見的OLTP業(yè)務(wù),還有其他OLAP 業(yè)務(wù),海量日志類型的需求。在這方面MySQL 多少顯得不足以適應(yīng)業(yè)務(wù)需求。

另外就是因為MySQL不能支持在線的擴容、HA,必須借助第三方工具來做,不過好在5.7版本推出MGR ,Percona推出的PXC在很大程度上緩解了HA 方面問題。

賀春旸:主要是官方缺少分庫分表的解決方案。MariaDB官方提供了Spider引擎作為解決方案,但目前還沒有正式GA。所以涉及非事務(wù)強一制的業(yè)務(wù),如LOG信息等,通常是放入MongoDB里,通過其自身的自動分片功能實現(xiàn)對數(shù)據(jù)的擴容。

Q3:你是如何看待數(shù)據(jù)庫中間層(例如Cobar、Atlas等)與數(shù)據(jù)庫的關(guān)系?

楊奇龍:準(zhǔn)確一點的說是數(shù)據(jù)庫中間件,它們是數(shù)據(jù)庫服務(wù)的一種輔助,借助數(shù)據(jù)庫中間件,數(shù)據(jù)庫可以具有分布式、讀寫分離、負(fù)載均衡、連接池、訪問控制等等功能,數(shù)據(jù)庫業(yè)務(wù)系統(tǒng)上具備更強大的功能和支撐能力。

中間件在一定程度上解決了單機數(shù)據(jù)庫系統(tǒng)容量方面的限制,可以通過讀寫分離方式或者水平拆分的方式整體提升數(shù)據(jù)庫的吞吐量。

另一方面中間件在數(shù)據(jù)分布上利用shardingkey將數(shù)據(jù)獨立開,對于聚合類的需求是一種障礙。還有當(dāng)前的數(shù)據(jù)庫中間件對于跨庫分布式事務(wù)很難保證不同數(shù)據(jù)庫分片的數(shù)據(jù)一致性問題。這些都需要開發(fā)在使用中間件的時候注意下規(guī)避。

虢國飛:中間件目前在MySQL數(shù)據(jù)庫橫向擴容方面作用很明顯,當(dāng)然不止局限于此,我們公司的DAL中間件就做了很多的功能,比方連接池、分片路由、限流、熔斷、加密保護等,這些功能不僅能支持?jǐn)?shù)據(jù)庫的橫向擴容,還有效保障了數(shù)據(jù)庫的安全,所以說中間件和數(shù)據(jù)庫目前是很多公司的黃金搭檔。

韓鋒:這些中間層產(chǎn)品,是為了彌補數(shù)據(jù)庫的功能缺陷或性能、容量不足才出現(xiàn)的。在一定階段,確實解決了企業(yè)的實際需求。當(dāng)我們也看到,其對應(yīng)用開發(fā)還無法做到完全透明,整體架構(gòu)的復(fù)雜度是提高了。從長期來看,分布式數(shù)據(jù)庫勢必會從根本解決上述問題,到時這些中間層產(chǎn)品也就沒有使用意義了。

Q4:你所在的公司是否有成熟的MySQL運維平臺?如果是,DBA在傳統(tǒng)運維類工作逐步萎縮的情況下,選擇什么方向來發(fā)展?

虢國飛:我覺得一個公司的運維平臺發(fā)展基本有幾個階段:

首先是大家使用開源產(chǎn)品,但是發(fā)現(xiàn)有很多的不足,想要的功能沒有;

于是進入第二個階段,自己編寫一些腳本來彌補這些不足,但是當(dāng)規(guī)模越來越大的時候,發(fā)現(xiàn)元數(shù)據(jù)和數(shù)據(jù)變更的維護變得越來越困難,而且很容易搞錯(一旦弄錯可能出現(xiàn)大問題),這個時候運維平臺就必須得上馬;

進入第三個階段,通過運維平臺整合大家的腳本,閉環(huán)元數(shù)據(jù)和數(shù)據(jù)狀態(tài)的變更,保障數(shù)據(jù)準(zhǔn)確性,同時對復(fù)雜的架構(gòu)進行屏蔽,讓操作的人能盡量簡單,目前我們就處于這個階段(當(dāng)然有些內(nèi)容還在完善中);

另外,其實不止是DBA,整個運維體系都在做轉(zhuǎn)變,傳統(tǒng)的玩法效率低、重復(fù)工作多,已經(jīng)不適用互聯(lián)網(wǎng)公司高速度、快節(jié)奏的發(fā)展了,所以說DBA工作內(nèi)容需要轉(zhuǎn)變,思想也需要轉(zhuǎn)變,應(yīng)該向著如何快速交付、提高數(shù)據(jù)庫整體穩(wěn)定性、高效率運維、打造適合更多適合業(yè)務(wù)需要的數(shù)據(jù)庫產(chǎn)品方案,甚至給研發(fā)輸出數(shù)據(jù)架構(gòu)方案等這些方面發(fā)展,開始往前走,這樣價值能更大(傳統(tǒng)DBA往往是沉在最后面,領(lǐng)業(yè)績的時候沒有人影,只有出問題的時候才出來背鍋)。

韓鋒:公司目前有數(shù)據(jù)庫運維平臺,當(dāng)然還沒有覆蓋所有運維需求,但也大幅度減輕了DBA的工作負(fù)擔(dān)。傳統(tǒng)運維類的工作,確實在不斷萎縮之中。在這種情況下,DBA的發(fā)展可朝以下方向努力:

架構(gòu)、優(yōu)化方向從事數(shù)據(jù)庫架構(gòu)、結(jié)構(gòu)設(shè)計,性能、語句優(yōu)化等方向工作。

DevOps方向從事和數(shù)據(jù)庫運維相關(guān)的開發(fā)類工作。

業(yè)務(wù)方向結(jié)合業(yè)務(wù)特點,分析如何利用數(shù)據(jù)庫更好的滿足企業(yè)發(fā)展。

數(shù)據(jù)管理方向脫離數(shù)據(jù)庫層面,從更高的角度考慮公司的數(shù)據(jù)管理、治理類工作。

張青林:騰訊有很成熟的MySQL運維平臺,這簡化了DBA 的運維服務(wù),提高了DBA的幸福生活指數(shù)。DBA 的運維工作較之前會少一些,可將多余的時間投入到MySQL其它的相關(guān)工作當(dāng)中,轉(zhuǎn)向研發(fā)型運維,如:

故障的自動化處理,自動分析錯誤日志并預(yù)警;

MySQL 在線壓力測試與回放;

利用審記來實現(xiàn)秒級監(jiān)控等;

……

只要是和數(shù)據(jù)庫相關(guān)的,自己又有想法的,都可以和研發(fā)一起討論并嘗試。

未來篇

Q1:你認(rèn)為未來云會成為數(shù)據(jù)庫的主要載體嗎?如果是,它會對傳統(tǒng)DBA帶來什么樣的沖擊?

虢國飛:個人認(rèn)為使用云是一種趨勢,它能在資源交付、穩(wěn)定性和成本方面為企業(yè)提供很好的支撐,隨著云產(chǎn)品的不斷完善,目前已經(jīng)可以滿足大部分中小企業(yè)的需求,中小企業(yè)完全可以省心省力地使用云(不用關(guān)心資源和維護,而專心做業(yè)務(wù))。

不過現(xiàn)在公有云產(chǎn)品對一些要求比較高、量大的企業(yè)還不是特別合適(未來也許也不是問題);因此DBA也不要再固守傳統(tǒng)的城池,應(yīng)該放開心態(tài)來面對這種變化,更多的把重心往上面所說的方向上轉(zhuǎn),做數(shù)據(jù)架構(gòu)、存儲方案,這樣價值更大。

韓鋒:未來云一定會成為數(shù)據(jù)庫的主要載體。人們可以像使用水、電一樣,使用數(shù)據(jù)庫服務(wù)。傳統(tǒng)DBA,從事的基礎(chǔ)運維類工作基本不復(fù)存在。DBA,要么繼續(xù)深研數(shù)據(jù)庫技術(shù),在云服務(wù)商或乙方服務(wù)類公司發(fā)展;要么傾向于架構(gòu)、開發(fā)、優(yōu)化方向發(fā)展。

李季鵬:個人理解,公有云為成為初創(chuàng)企業(yè)和互聯(lián)網(wǎng)企業(yè)的主要使用者;傳統(tǒng)企業(yè)從各個角度考慮只會考慮私有云或者混合云方案。這樣的場景,與以前小企業(yè)不需要DBA,大企業(yè)DBA忙不過來的基本情況其實沒有本質(zhì)區(qū)別。引入云,DBA需要及時更新知識儲備,以應(yīng)對各種新技術(shù)引入的挑戰(zhàn)。

Q2:你是如何看待分布式數(shù)據(jù)庫的未來前景?未來哪些場景會優(yōu)先考慮此類方案?

虢國飛:自從Google Spanner F1 發(fā)布后,分布式數(shù)據(jù)發(fā)展很快,跟隨者國外有CockroachDB,國內(nèi)有TiDB,兩者都發(fā)展比較火,從原理上來講也確實能解決不少業(yè)務(wù)場景的痛點,如數(shù)據(jù)一致性要求高(多副本分布式協(xié)議保障一致)、數(shù)據(jù)容量很大、動態(tài)擴縮容、容災(zāi)要求高、跨機房、跨地域的部署需求等,這類需求一般是對一些大公司、大數(shù)量和數(shù)據(jù)質(zhì)量要求很高的公司才會有,一般中小公司也玩不起來,因為分布式數(shù)據(jù)庫部署的成本還是比較高的(一般最小配置就是好幾臺機器),而且運維難度也比較大(沒懂行的人出問題基本搞不定),目前很多分布式數(shù)據(jù)庫產(chǎn)品在性能和穩(wěn)定性方面還需要進一步經(jīng)過驗證,一旦技術(shù)穩(wěn)定后,應(yīng)該還是比較有市場的。

韓鋒:非常看好其發(fā)展前景,特別近兩年來,已經(jīng)有很多公司做了這方面的嘗試。隨著分布式思想、算法的成熟及硬件技術(shù)的發(fā)展,未來分布式數(shù)據(jù)庫將逐步成熟、完善,成為主流的方案。作為早期嘗試,可在數(shù)據(jù)安全要求相對較低的OLAP領(lǐng)域嘗試使用。

Q3:在很多公司,DBA正在越來越多地從事DevOps類工作,你的看法是?

楊奇龍:

首先,因為生產(chǎn)效率正在逐步提高,DB系統(tǒng)需要自動化,開發(fā)需要自助化解決工作生產(chǎn)過程中的問題,因此具備DevOps能力是一個非常合理的發(fā)展趨勢。

其次,云計算的普及以及大公司、第三方服務(wù)公司將專家級別的運維平臺產(chǎn)品化之后給DBA帶來的挑戰(zhàn)就是:純粹只會維護數(shù)據(jù)庫的DBA生存空間越來越小,DBA要么具備開發(fā)能力而且能夠?qū)⑦\維經(jīng)驗落地,要么具備足夠的數(shù)據(jù)庫周邊產(chǎn)品設(shè)計能力,比如設(shè)計出產(chǎn)品解決開發(fā)日常遇到的痛點。

最后 ,俗話說藝不壓身。了解什么是服務(wù)化、Restful API 、微服務(wù),什么是MVC及常用的Web 框架、并發(fā)訪問控制等開發(fā)知識,能夠更流暢地與開發(fā)溝通,站在他們的角度思考問題,從而更好地使用數(shù)據(jù)庫。

文章來源于:優(yōu)秀的IT運維管理系統(tǒng)云雀運維

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容