云時代,“DBA消亡論”是否危言聳聽?
DBA在我的印象中就是兩個字,忙碌。他們總是忙著解決各種各樣的問題,他們的生活永遠(yuǎn)被備份失敗、模式失控、突發(fā)需求、查詢緩慢、性能問題等等圍繞著。
雖然在很多企業(yè)中,尤其是擁有龐大數(shù)據(jù)庫集群的大型企業(yè)中DBA們?nèi)匀话缪葜匾巧5?,隨著技術(shù)的不斷發(fā)展,數(shù)據(jù)的存儲和管理發(fā)生了很大的變化,虛擬化、云存儲、微服務(wù)、DevOps這些技術(shù)的發(fā)展對DBA的職業(yè)生涯提出了考驗(yàn)。
NoSQL數(shù)據(jù)庫不需要預(yù)先定義模式,它自己默認(rèn)內(nèi)置了很多模式;可以在系統(tǒng)運(yùn)行的時候,動態(tài)增加或者刪除結(jié)點(diǎn),不需要停機(jī)維護(hù),數(shù)據(jù)可以自動遷移;NoSQL通常是將數(shù)據(jù)劃分后存儲在各個本地服務(wù)器上,從本地磁盤讀取數(shù)據(jù)的性能往往好于通過網(wǎng)絡(luò)傳輸讀取數(shù)據(jù)的性能,從而提高了系統(tǒng)的性能。很多開發(fā)團(tuán)隊(duì)和廠商都看中了云存儲的發(fā)展前景,亞馬遜推出了AWS S3,就連一些傳統(tǒng)關(guān)系型數(shù)據(jù)庫廠商也想在這一領(lǐng)域分一杯羹,Oracle、Microsoft、IBM都在數(shù)據(jù)庫的可擴(kuò)展、易用性和硬件高可用方面投入了大量精力,旨在布局DaaS。
如果因此你就認(rèn)為未來DBA們的工作會越來越輕松,那你就大錯特錯了。Rackspace 副總裁Chris Lalonde表示:未來,DBA的角色將變得更加復(fù)雜,雖然現(xiàn)在開發(fā)了很多自動化工具,但是技術(shù)還沒有成熟,需要做的工作還很多,DBA在接下來的日子里存在并將長期存在。
任何數(shù)據(jù)庫新技術(shù)的發(fā)展都是為了促使數(shù)據(jù)能夠更加專業(yè)化,無論是DBA、數(shù)據(jù)架構(gòu)師、數(shù)據(jù)工程師還是數(shù)據(jù)科學(xué)家都應(yīng)該以此為己任。eventador創(chuàng)始人Kenny Gorman表示:現(xiàn)今社會是一個數(shù)據(jù)為王的時代,企業(yè)只有依靠數(shù)據(jù)庫才能更加高效的完成管理工作,數(shù)據(jù)讓企業(yè)更具競爭力,但是數(shù)據(jù)的價值還沒有完全被挖掘出來,還有很大的發(fā)展空間,很多技術(shù)也還在研發(fā)階段。
DBA下一步該往哪走
非關(guān)系型數(shù)據(jù)庫平臺的出現(xiàn)減少了DBA的工作量,但是這并不意味著DBA將無事可做,還有大量的工作等著他們?nèi)プ瞿亍?Couchbase產(chǎn)品副總裁Ravi Mayuram表示:DBA是時候做出一些轉(zhuǎn)變了,之前他們一直在駕駛汽車,但是現(xiàn)在汽車出現(xiàn)了故障,他們就要把汽車??吭诼愤?,打開引擎蓋等待救援。
MongoDB和CouchBase這類型的數(shù)據(jù)庫雖然不是關(guān)系型數(shù)據(jù)庫,但是它們也支持SQL查詢,日常工作也需要DBA來維護(hù)。這類數(shù)據(jù)庫的優(yōu)勢是高性能、易部署、易使用,存儲數(shù)據(jù)非常方便。
傳統(tǒng)的大型關(guān)系數(shù)據(jù)庫系統(tǒng)要求DBA深入了解軟硬件的所有信息,Mayuram認(rèn)為,未來DBA在這方面的技能將被弱化掉,真正要提升的是他們的規(guī)劃部署能力,要準(zhǔn)確掌握服務(wù)器的服務(wù)壽命。
動態(tài)可擴(kuò)展性的需求驅(qū)動了云數(shù)據(jù)服務(wù)的發(fā)展,按道理來說,DBA應(yīng)該專注于當(dāng)前程序的容量配額,但是,DevOps已經(jīng)***的解決了這個問題,它可以動態(tài)配置,相比于人工要更加準(zhǔn)確高效。所以DBA無需在這方面再投入過多的精力,而是應(yīng)該集中在規(guī)劃方面。
可能很多人對DevOps都不太熟悉,我們來簡單介紹一下它。DevOps 開發(fā)(Development)和運(yùn)維(Operations)兩個領(lǐng)域的合并,是現(xiàn)在Web服務(wù)開發(fā)常用的做法。傳統(tǒng)的軟件組織將開發(fā)團(tuán)隊(duì)和IT運(yùn)營設(shè)為各自分離的部門,而DevOps將他們整合在一起,讓開發(fā)團(tuán)隊(duì)和IT運(yùn)營部門緊密合作,提高了軟件和系統(tǒng)的性能、自動化和可擴(kuò)展性。DevOps是以 NoSQL數(shù)據(jù)庫和非傳統(tǒng)的數(shù)據(jù)存儲查詢技術(shù)為主要驅(qū)動力,要求數(shù)據(jù)庫容量能夠自動縮放,進(jìn)而帶動了DaaS的發(fā)展。在關(guān)系型數(shù)據(jù)庫向數(shù)據(jù)庫云服務(wù)轉(zhuǎn)型的過程中,放寬了DBA對硬件配置細(xì)粒度控制的要求。
目前已經(jīng)有企業(yè)在部署DaaS,但是他們只是嘗試將部分?jǐn)?shù)據(jù)遷移上云,并沒有將關(guān)鍵數(shù)據(jù)部署進(jìn)去。Mayuram指出:大多數(shù)企業(yè)采用的是一種混合的方法,在數(shù)據(jù)中心內(nèi)部部署了基于云計(jì)算平臺的內(nèi)部托管的DaaS平臺,但是他們主要業(yè)務(wù)還是依仗原有系統(tǒng),只有在一些全新的項(xiàng)目中才會采用云計(jì)算平臺,所以原有平臺仍然需要DBA們來維護(hù)。
即便是有些公司打算采用新的數(shù)據(jù)庫,那么也還是要解決新舊數(shù)據(jù)庫之間存在的差距問題,如果公司的數(shù)據(jù)業(yè)務(wù)是完全外包的,那么DBA更是必不可少的。所以說在很長一段時間里,DBA的存在都是必要的。
死亡之論言過其實(shí)
2013年12月 Kenny Gorman 發(fā)表了一篇名為《The Database Administrator is dead》的文章,雖然它是打著DBA死亡之論的旗號,但是它在文章的***還是聲明了DBA萬歲。
Gorman從事Oracle數(shù)據(jù)庫管理工作多年,曾是PayPal 和eBay的數(shù)據(jù)設(shè)計(jì)師,但是他在接觸到MongoDB之后,就成為了NoSQL的信徒。他在文章中寫道:DBA的角色未必是死了,只是轉(zhuǎn)移到了新的位置。數(shù)據(jù)服務(wù)、微服務(wù)等等都遷移上云,整個數(shù)據(jù)生態(tài)也在持續(xù)發(fā)展中,它們改變了DBA的角色,DBA不再只是管理以O(shè)racle服務(wù)器為中心的公司數(shù)據(jù)中心,而是要管理存在于各種云上的數(shù)據(jù)庫。
數(shù)據(jù)庫新技術(shù)的不斷涌現(xiàn)接手了DBA原先的工作,但是這并不意味著DBA的工作量會減少。Lalonde 表示:我相信自動化替DBA分擔(dān)了一些之前的工作,例如硬件容量規(guī)劃、查詢操作等等,但是它們無法查找和修復(fù)慢查詢或查詢產(chǎn)生的碎片,如何使用最少的資源建立***的規(guī)模,還需要DBA專家來處理。
Gorman 認(rèn)為數(shù)據(jù)環(huán)境的復(fù)雜性將為DBA的工作帶來挑戰(zhàn),面對新環(huán)境,他們將不再像之前那么專業(yè)。他認(rèn)為總有一天,他將重新為PayPal 和eBay設(shè)計(jì)數(shù)據(jù)庫。
Gorman表示:DBA這個職業(yè)的主要工作就是系統(tǒng)管理和數(shù)據(jù)庫存儲。其實(shí)就今天來說,數(shù)據(jù)庫的概念已經(jīng)相當(dāng)模糊了,Oracle顯而易見是一個數(shù)據(jù)庫,那么Hadoop是數(shù)據(jù)庫嗎?顯然也是數(shù)據(jù)庫。Kafka是數(shù)據(jù)庫嗎?Kafka具備了數(shù)據(jù)庫的屬性,主要處理shuffle data和實(shí)時數(shù)據(jù),這是一個瘋狂的時代,我們無從得知數(shù)據(jù)產(chǎn)品或數(shù)據(jù)基礎(chǔ)設(shè)施是否為數(shù)據(jù)庫。但是它們確確實(shí)實(shí)一個數(shù)據(jù)系統(tǒng),擁有自己的組件。
即便新技術(shù)層出不窮,有些事情也是不會改變的。查詢優(yōu)化、數(shù)據(jù)移動的問題仍然存在,數(shù)據(jù)庫的監(jiān)視和維護(hù)也是要持續(xù)做的工作。那些schema-less的數(shù)據(jù)庫即使有一些常用模式,那也只是寬泛的定義,無法精確到企業(yè)業(yè)務(wù)。
Lalonde表示:現(xiàn)代DBA除了要具備傳統(tǒng)DBA的技能,還要理解廣度的技術(shù),適應(yīng)敏捷環(huán)境,真正理解數(shù)據(jù)庫基本原理,并且能夠很好的進(jìn)行技術(shù)轉(zhuǎn)換。
未來DBA到底應(yīng)該是怎樣的
數(shù)據(jù)技術(shù)的轉(zhuǎn)變和工作內(nèi)容的變化重新定義了DBA的角色和作用。越來越多的數(shù)據(jù)庫操作任務(wù)在向DevOps操作轉(zhuǎn)變,DBA和應(yīng)用程序的開發(fā)更加緊密的聯(lián)系起來,DBA的工作技能逐漸向運(yùn)營開發(fā)靠攏。
Gorman認(rèn)為:數(shù)據(jù)技術(shù)是呈噴發(fā)式發(fā)展的,但是每一項(xiàng)新技術(shù)從誕生到成熟都需要一定的時間,所以,現(xiàn)階段DBA仍是十分必要的存在。但是,DBA不僅需要了解傳統(tǒng)關(guān)系型數(shù)據(jù)庫,也要與時俱進(jìn),了解更新更前沿的數(shù)據(jù)庫技術(shù)。例如,SQL查詢在關(guān)系型數(shù)據(jù)庫上的表現(xiàn)突出,DBA需要深刻理解它的內(nèi)部工作原理,讓它能夠在非關(guān)系型數(shù)據(jù)庫也能表現(xiàn)突出。
Lalonde認(rèn)為;一條鐵鏈的堅(jiān)固程度取決于它最薄弱的環(huán)節(jié),數(shù)據(jù)庫的選型也要多方面綜合考慮,尤其要考慮它的弱點(diǎn)是什么。如果DBA能夠熟悉了解各種數(shù)據(jù)庫的特點(diǎn),那么就能揚(yáng)長避短,充分利用數(shù)據(jù)庫的特性來完成特定場景。
數(shù)據(jù)庫領(lǐng)域?qū)BA們來說是一個既熟悉有陌生的領(lǐng)域,熟悉是因?yàn)榇蟛糠值腄BA都在該領(lǐng)域?qū)Q辛耸嗄?,陌生是因?yàn)閿?shù)據(jù)變得越來越復(fù)雜,對DBA的要求越來越高,他們要同時管理好結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù),這對DBA來說是新的挑戰(zhàn)。