到底要不要使用數(shù)據(jù)庫即服務(DBaaS)?
隨著云計算的快速發(fā)展,越來越多的企業(yè)希望從頂層框架入手,探索整體數(shù)據(jù)架構中的更多可能性,DBaaS(亦稱泛數(shù)據(jù)庫類服務)就是PaaS 層的一個重要分支。那么,DBaaS到底是什么?適用于哪些應用場景?希望以下內(nèi)容,可以幫助用戶在云應用中做出正確選擇!
對比傳統(tǒng)的標準化數(shù)據(jù)庫模式,DBaaS能帶來更靈活,可擴展、按需服務的體驗,用戶可對云環(huán)境中的資源進行調(diào)配,因此獲得廣泛支持和采用。問題是,什么是DBaaS?
這一點很重要,DBaaS并不等同于在基于云的服務器(如Amazon AWS或Microsoft Azure)上運行數(shù)據(jù)庫,我們要正確理解DBaaS的概念。雖然在虛擬機上運行數(shù)據(jù)庫一定會帶來成本和靈活性方面的優(yōu)勢,但是仍需要用戶維護數(shù)據(jù)庫,需要用戶具備服務器操作和運營方面的專業(yè)知識。
而真正的DBaaS,是由云服務商提供服務,用戶不需要用專業(yè)的運維團隊來維護服務器的運轉(zhuǎn)。一些物理和虛擬化的硬件設備,包括操作系統(tǒng)、網(wǎng)絡、相關的資源配置等,都可以通過云的形式,一鍵完成設置,然后通過一個簡單的API調(diào)用,將應用程序連接起來。比如:Amazon RDS、阿里云 RDS、Azure SQL Databases 和 Azure Database for MySQL/PostgreSQL 等,都是DBaaS的典型應用。
使用DBaaS,能讓用戶在部署速度和成本方面,獲得顯著提升。但是,DBaaS也并不是“一本萬能”,什么場景都適用,還是要看具體的項目需求。
DBaaS適用于哪些應用場景?
1、沒有專業(yè)的數(shù)據(jù)庫團隊。如果企業(yè)的技術團隊沒有那么多的軟件開發(fā)人員,無法應對數(shù)據(jù)庫的復雜性,那么就可以考慮使用DBaaS。除了更方便數(shù)據(jù)庫管理以外,DBaaS服務商還能提供數(shù)據(jù)的自動備份等其他服務,讓企業(yè)只專注于關鍵業(yè)務開發(fā),而不用擔心數(shù)據(jù)庫的運行問題。
2、臨時數(shù)據(jù)庫。如果企業(yè)只是在短期內(nèi)有需要,用于持續(xù)集成或者后端的測試,DBaaS模式可以為用戶快速構建一個數(shù)據(jù)庫,當測試結束時,用戶可以刪掉數(shù)據(jù)以及相應的數(shù)據(jù)庫。這種方式,大大加快了企業(yè)測試環(huán)境下的自動化部署和更新,讓數(shù)據(jù)庫應用更加簡單。
3、微服務設計。在企業(yè)的生產(chǎn)環(huán)境中,如果使用了由數(shù)據(jù)庫組成的大量的微服務設計,DBaaS這種模式也會非常適用。另外,即使企業(yè)有很多專業(yè)的數(shù)據(jù)庫開發(fā)人員,但如果不愿意在數(shù)據(jù)庫部署方面投入大量的時間和精力,也可以通過DBaaS快速投入生產(chǎn)。
使用DBaaS有哪些局限性?
值得一提的是,雖然DBaaS有很多優(yōu)勢,但是切不可在以下場景中適用。
第一,具有復雜的數(shù)據(jù)庫邏輯關系。了確保數(shù)據(jù)庫在部署時的易用性,DBaaS服務商限制了數(shù)據(jù)庫在復雜環(huán)境下的擴展能力,從某種程度上降低了其靈活性。比如:用于災難恢復時,需要在一個主節(jié)點中進行集群復制,同時輔助節(jié)點也要同步復制集群,主從節(jié)點之間存在異步關系,這種相對復雜的邏輯關系,大大超出了DBaaS的應用范圍。換言之,DBaaS沒有辦法理解企業(yè)深度定制化的個性化服務。
第二,數(shù)據(jù)庫有與指定的工作負載綁定。如果數(shù)據(jù)庫要綁定更重的工作負載,則需要更強大的硬件、CPU和內(nèi)存以及相應的存儲能力,DBaaS沒有辦法滿足這樣的需求。
如何做出正確選擇?
如果您所在企業(yè)在數(shù)據(jù)庫方面的需求符合DBaaS所有指標,那就多花點時間去仔細研究DBaaS主流產(chǎn)品。包括:Amazon RDS、谷歌云SQL和Azure SQL數(shù)據(jù)庫等,他們在部署模式、性能和實例類型等方面,各有不同特征。如果企業(yè)需求不適合DBaaS,那就需要自建數(shù)據(jù)庫。如果沒有專業(yè)的數(shù)據(jù)庫團隊,也沒有招聘專職人員的打算,數(shù)據(jù)庫外包可能是優(yōu)秀選擇。