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






















