David Yahalom Charles
為什么越來越多的企業正在變革其下一代數據庫體系架構,將重點放在解決方案而不是服務器上,并充分發揮開源數據庫技術的價值?
2017年是數據庫技術市場的關鍵一年,出現了幾次大規模典范式的轉變,而且沒有任何跡象表明這種轉變會很快停止。企業正在拋棄幾十年來為一代又一代應用程序提供支持的傳統的單一數據庫體系結構,轉而采用更優化、更敏捷、能夠自我管理的以云為中心的數據平臺策略。
隨著對規模、安全、性能、高可用性,以及可能是最重要的成本和操作優化需求的不斷增長,我們可以確定推動下一代數據庫體系架構眾所周知的“2.0版本”發展的三要素:
1.客戶明確地以云為中心。
2.客戶越來越多地依賴于平臺即服務數據庫解決方案。
3.客戶采用開源數據庫引擎。
想驗證企業的IT數據庫策略與數據庫市場走向的整體方向是否一致?你所要做的就是今后一定要接受這些原則。讓我們更詳細地來探討其含義。
以云為中心的數據庫時代
早在2014年,當微軟重新關注并變革其整個軟件和服務戰略時,首席執行官Satya Nadella就提出了“移動優先,云優先”的口號。Nadella指的是微軟在移動和云服務以及解決方案方面所開展的新工作。似乎整個企業市場都積極接受類似的一系列優先舉措。
例如,據麥肯錫的《IT即服務云和企業云基礎設施調查》,企業采用云作為工作負載的主要環境,其比例預計將從2015年的10%躍升到2018年的51%。麥肯錫還指出,企業傾向于選擇超大規模云解決方案提供商,例如,亞馬遜、谷歌和微軟。
甚至非常傳統的企業——他們的IT部門規模龐大,員工精通業務,長期以來進行了大量的投資,在數據中心運營方面有數十年的經驗,即使這樣,這些企業也發現不得不接受以云為中心IT戰略的固有優勢。
然而,僅僅在企業使命宣言中揮舞“云”旗幟是不夠的,甚至可能令人感到難以理解。你是否打算把現有服務器從本地數據中心直接遷移到云(IaaS),或者更進一步,開始為自己的數據庫采用原生云解決方案?
雖然直接遷移(IaaS)策略有助于減少IT管理開銷,大幅度提高運營靈活性,并且具有很高的可用性,但對于很多“云優先”的企業來說,這只是蜻蜓點水,并非全面采用云解決方案和服務。
從考慮服務器到考慮服務
據Gartner的《2017年PaaS主要趨勢》,企業客戶越來越多地采用平臺即服務(PaaS)作為戰略舉措,更多的客戶認為PaaS將成為今后平臺交付的主要形式。
原因很簡單,PaaS數據庫技術是自管理的和自操作的。這些解決方案極大地減少了維護數據庫體系結構的操作開銷,從而使得IT員工(特別是數據庫管理員)能夠把更多的時間和精力投入到以應用程序為中心的工作中,不必對非常復雜的數據庫基礎設施進行日常維護,因此,在業務上會更加成功。
數據庫軟件和云供應商在PaaS數據庫解決方案上傾注了大量的研發力量,這成為云領域大企業(亞馬遜、微軟、谷歌和甲骨文)之間最重要的差異化因素之一。
早在2014年,亞馬遜就發布了Aurora,這是一個完全托管的關系型數據庫引擎,它同時具備了高端商業數據庫的速度和可用性以及開源數據庫的簡潔和成本效益。此外,或許更重要的是,Aurora是AWS的原生PaaS數據庫解決方案。自發布以來,Aurora備受關注。今年,在亞馬遜的年度re:Invent大會期間,亞馬遜進一步提升了其云數據庫產品,宣布Aurora Serverless作為完全托管的“抽象化”數據庫,用戶能夠以秒為單位支付所使用的數據庫資源。
雖然亞馬遜云解決方案的創新和顛覆是顯而易見的,但PaaS數據庫產品卻在全行業掀起了波瀾。甲骨文作為傳統高端企業關系型數據庫軟件市場的領導者之一,也是數十年一直投入研發來創建世界上最強大、最優化、最可配置、最可調的關系型數據庫的一家大企業,在今年的年度OpenWorld大會上推出了自己的“自驅動”數據庫產品。根據其首席技術官Larry Ellison對自主數據庫云的部分愿景,甲骨文把重點放在了自驅動、自擴展和自修復數據庫解決方案上,希望能夠取代與Oracle數據庫調優、打補丁、更新和維護相關的人工工作。
不僅僅是亞馬遜和甲骨文。微軟也提供了Azure SQL DB,這是一種完全托管的關系型云數據庫服務,嘗試自動調整數據庫以提高性能,增強保護能力。Azure SQL DB是微軟的PaaS產品,結合了SQL Server和Azure(微軟的云平臺)的高端功能、性能和特性。
開源數據庫引擎的興起
在特性和功能方面,商業數據庫引擎(Oracle、SQL Server和DB2,等等)是遙遙領先的。事實上,這一直是他們收取高許可費用的傳統理由。然而,開源數據庫管理系統已經成熟,極有可能替代專有商業數據庫引擎。特別是近年來,隨著PostgreSQL和MySQL的進步,情況更是如此。對于很多應用情形來說,這些開源數據庫能夠與商業數據庫市場上的主流產品相媲美。
對于那些一直關注數據庫行業狀況的人士來說,不會對開源數據庫引擎應用的激增感到驚訝。早在2015年,Gartner的一份報告就預言了開源數據庫會被廣泛接受:據Gartner的報告《2015年開源RDBM的狀態》,“到2018年,70%以上的內部新應用程序將在OSDBMS上開發,50%的現有商業RDBMS實例將完成轉換或者在轉換過程中。”
此外,如果在云中部署自己的開源數據庫,那么能夠克服開源關系型數據庫的最大缺點——與專用同類數據庫相比,它們缺少某些高端特性。
例如,甲骨文和微軟都提供了一種異步消息傳遞/排隊機制,直接內置到了它們的數據庫產品中。甲骨文稱之為Advanced Queueing,而微軟的是Service Broker。PostgreSQL和MySQL本身都沒有提供類似的功能。在開始全面使用開源數據庫技術之前,應該跳出常規思維來解決這一潛在問題。
云中救援
通過利用主要云平臺提供的功能和特性,并把這些特性集成為開源數據庫體系架構的一部分,可以更容易地實現與商業數據庫等同的特性。
例如,如果你使用Amazon Aurora MySQL,那么還可以組合使用Amazon Simple Queue Services(它是用于微服務和分布式系統的完全托管的消息隊列)和Amazon Lambda(它支持運行無服務器代碼),來替代Oracle AQ和SQL Server Service Broker。使用Amazon SQS+Lambda,可以直接從Amazon Aurora MySQL對消息進行排隊,就像數據庫具有內置隊列服務一樣。
類似地,如果需要定期地執行復雜的數據轉換工作,那么在Azure中運行MySQL數據庫將支持你為此使用Azure Data Factory,從而彌補了使用云PaaS解決方案在源數據庫引擎中缺少的功能。這些云服務以及其他很多云服務可以作為完整解決方案體系架構的一部分與PaaS開源數據庫引擎集成在一起。
總之,現代關系型數據庫的總體概念正在從具有一些大型、強大的數據庫服務器(這些數據庫服務器內置了大量功能)的單一體系架構向利用云平臺即服務解決方案和技術的敏捷PaaS和開源模型轉變。
這絕對是一種范式轉變,可能會成為未來十年數據庫技術的里程碑。