在“即服務(wù)”世界中,DBA的角色發(fā)生了什么變化?
過去的十年中企業(yè)對于管理和運行數(shù)據(jù)庫的需求發(fā)生了巨大的變化,這樣進而影響到了負責(zé)運行企業(yè)數(shù)據(jù)庫的數(shù)據(jù)庫管理員(DBA)工作重心的轉(zhuǎn)移,相比于保證可訪問性和可用性,現(xiàn)在DBA更側(cè)重于開發(fā)滿足業(yè)務(wù)需求和目標的架構(gòu)、設(shè)計和可擴展性策略。
為什么會DBA工作重心會發(fā)生這樣的變化呢?大部分是始于互聯(lián)網(wǎng)公司以及新的收入模式的誕生。互聯(lián)網(wǎng)公司要求網(wǎng)站可靠性工程師(SRE)和DBA不僅要保證主要收入引擎(通常指應(yīng)用程序和網(wǎng)頁)的穩(wěn)定,而且還要保證業(yè)務(wù)的隨時擴展。這遠遠超出了DBA之前的職責(zé),之前DBA只需保證數(shù)據(jù)庫的正常運行、備份,當問題發(fā)生時及時作出反應(yīng)。

新的收入模式,新的挑戰(zhàn)
如今,企業(yè)在互聯(lián)網(wǎng)上開展業(yè)務(wù)變得越來越普遍,如果想要保持自身的競爭力,那么一定要找到跟得上技術(shù)和架構(gòu)變化的新部署模式,例如云和“即服務(wù)”等等。軟件、數(shù)據(jù)庫、平臺甚至是基礎(chǔ)設(shè)施都可以通過基于云的模型轉(zhuǎn)變成為“即服務(wù)”。
基于云的數(shù)據(jù)庫和基于DBaaS的數(shù)據(jù)庫環(huán)境的管理也隨著這一轉(zhuǎn)變而發(fā)生了變化。例如,在SaaS領(lǐng)域,應(yīng)用程序中斷就意味著收入損失。除了直接收入的損失(以及解決危機的費用),服務(wù)和應(yīng)用程序的癱瘓還意味著客戶流失。為了避免這種損失,公司關(guān)鍵SaaS數(shù)據(jù)庫基礎(chǔ)架構(gòu)的每個部分都需要進行規(guī)劃,包括內(nèi)置冗余和面向未來的架構(gòu)以及如何擴展來適應(yīng)未來的增長。
增長就意味著擴大服務(wù)或進入新市場,這往往會需要新的業(yè)務(wù)關(guān)鍵型應(yīng)用程序。在如今“即服務(wù)”的大環(huán)境中,有很多方法開發(fā)部署,例如在本地或云端、作為服務(wù)或組合,容器還是虛擬環(huán)境等等。
最成功的滿足客戶需求的方式應(yīng)該是滿足企業(yè)業(yè)務(wù)目標。企業(yè)都希望應(yīng)用程序和網(wǎng)頁能夠快速無縫的工作。而想要做到這種即時性,企業(yè)必須能夠敏捷快速部署新服務(wù)和應(yīng)用程序,以滿足新功能的需求或把握未開發(fā)市場中的新機會。
企業(yè)數(shù)據(jù)庫需求正在不斷發(fā)展
在部署服務(wù)、應(yīng)用程序或網(wǎng)站時,一定要把擴展計劃在其中。影響數(shù)據(jù)的***件事就是數(shù)據(jù)庫工作負載的變化,引起這種變化的原因可能是存儲和訪問數(shù)據(jù)的變化,也可能是流量的變化。
數(shù)據(jù)庫環(huán)境的靈活性也很重要。如果業(yè)務(wù)增長需要橫向擴展,那么需要增加多少硬件呢?如果是在云中,增加使用量會產(chǎn)生哪些成本?
以電子商務(wù)網(wǎng)站為例,有許多應(yīng)用程序協(xié)同工作來收集電商數(shù)據(jù):購物車內(nèi)容、已完成的訂單、庫存信息和重新進貨訂單等。如果要是把所有信息存儲在單個數(shù)據(jù)庫中,可能需要額外的工作和開銷才能將數(shù)據(jù)轉(zhuǎn)換為特定應(yīng)用程序的可用格式。但如果你選擇把信息存儲在合適該數(shù)據(jù)類型的數(shù)據(jù)庫中,這時數(shù)據(jù)庫要是處理它未設(shè)計的工作負載時就會降低性能或者導(dǎo)致其它問題。
在產(chǎn)品或服務(wù)推出之前,你考慮的問題越全面,那么未來發(fā)生災(zāi)難的可能性就越小,所以應(yīng)用程序開發(fā)還需要DBA和數(shù)據(jù)庫工程師構(gòu)建一個輕松擴展且延遲幾近于零的數(shù)據(jù)庫。如果企業(yè)選擇把數(shù)據(jù)庫遷移上云,那么云運營商會自動化接管大部分運維。
這時還需要DBA嗎?答案當然是肯定的,因為不斷變化的數(shù)據(jù)庫環(huán)境并沒有消除對數(shù)據(jù)庫專業(yè)知識的需求,DBA的工作重心更向應(yīng)用程序的設(shè)計和開發(fā)傾斜,不僅要設(shè)計和調(diào)整數(shù)據(jù)庫來支持應(yīng)用程序,而且還要了解云中可用的模塊化部件。通過DBA高效的數(shù)據(jù)庫專業(yè)知識能為企業(yè)帶來更高和更清晰的ROI。
DBA到底需要做些什么?
隨著數(shù)據(jù)庫格局的發(fā)展,DBA的價值漸漸從修復(fù)解決方案轉(zhuǎn)移到規(guī)劃解決方案和制定解決方案戰(zhàn)略,數(shù)據(jù)庫如何為公司的整體業(yè)務(wù)目標做出貢獻以及有哪些解決方案可幫助實現(xiàn)這些目標。
借助于云和容器化這些新技術(shù),DBA可以不斷監(jiān)控或評估應(yīng)用程序使用數(shù)據(jù)庫的情況,并對如何提升性能以及在不影響性能的情況下整合新功能、新需求。
隨著越來越多的公司根據(jù)不同的應(yīng)用程序和場景來選擇不同的數(shù)據(jù)庫,DBA也需要不斷的學(xué)習(xí)***的數(shù)據(jù)庫技術(shù)。
事實上以上這些轉(zhuǎn)變并不是紙上談兵,我們Percona都經(jīng)歷過。現(xiàn)在Percona中超過50%的客戶委托都是與應(yīng)用程序設(shè)計問題、查詢性能或數(shù)據(jù)庫基礎(chǔ)結(jié)構(gòu)設(shè)計有關(guān)。而在5年前,圍繞這些問題的幫助僅占不到20%。
在數(shù)據(jù)庫選型時,一定要考慮MySQL,MongoDB,MariaDB和PostgreSQL等開源數(shù)據(jù)庫的成熟度以及其未來發(fā)展的相關(guān)技術(shù)。如果再加上自行研發(fā)的自動化或基于云基礎(chǔ)架構(gòu)的技術(shù),這樣就可以降低核心數(shù)據(jù)庫軟件崩潰錯誤的可能性。如今發(fā)生系統(tǒng)中斷的大部分原因就是設(shè)計決策失誤、錯誤代碼以及在初始規(guī)劃中未考慮極端情況。
總而言之,DBA的角色正在從之前的簡單“運維數(shù)據(jù)庫”轉(zhuǎn)變成更具戰(zhàn)略性的地位:DBA是幫助企業(yè)實現(xiàn)其戰(zhàn)略業(yè)務(wù)目標的專家之一。

























