云數(shù)據(jù)庫選擇眾多 企業(yè)怎么挑
作者:佚名
開發(fā)者和應(yīng)用設(shè)計(jì)者對于在云端部署數(shù)據(jù)庫有眾多選擇,很難做出最佳的選擇判斷。本文中我們將分析不同的應(yīng)用該如何選擇云數(shù)據(jù)庫以及SQL數(shù)據(jù)庫和NoSQL數(shù)據(jù)庫的利弊。
開發(fā)者和應(yīng)用設(shè)計(jì)者對于在云端部署數(shù)據(jù)庫有眾多選擇,很難做出最佳的選擇判斷。將數(shù)據(jù)庫服務(wù)器在IaaS云上運(yùn)行好嗎?或者應(yīng)該轉(zhuǎn)換成PaaS選擇?數(shù)據(jù)庫即服務(wù)的選擇可能聽起來很誘人,比如Cloudant的NoSQL但是怎么權(quán)衡?
為所有的選擇列一個(gè)提綱有助于這項(xiàng)工作開始,但是不管選擇了哪一種云數(shù)據(jù)庫,都需要衡量多種因素,包括成本、可用性、可擴(kuò)展性以及性能支持。
當(dāng)前的代碼可能很難對接到平臺即服務(wù)(PaaS)數(shù)據(jù)庫選擇;甚至是關(guān)系型數(shù)據(jù)庫都無法完全兼容,比如微軟SQL Server和Windows Azure SQL數(shù)據(jù)庫。比如SQL Server中,SQL數(shù)據(jù)庫不支持自定義文本操作。
因此,如果當(dāng)前的應(yīng)用使用MySQL、Oracle、SQL Server、PostgreSQL或者其他常用的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),構(gòu)建在三層架構(gòu)上,可以將數(shù)據(jù)庫服務(wù)器轉(zhuǎn)移到基礎(chǔ)架構(gòu)即服務(wù)(IaaS)云上。在這種選擇下,可以保持配置和管理控制,但是也要持續(xù)承擔(dān)備份、監(jiān)控和按需擴(kuò)展(或收縮)的責(zé)任。
相反,如果開始一項(xiàng)新的開發(fā)或者重新設(shè)計(jì)一個(gè)當(dāng)前的數(shù)據(jù)庫層,隨后PaaS或者數(shù)據(jù)庫即服務(wù)(DBaaS)可能會更好的適應(yīng)需求。要盡早確定是使用SQL還是NoSQL架構(gòu)。
SQL和NoSQL利弊分析
SQL和NoSQL都有優(yōu)缺點(diǎn),但是有些最為重要的因素則是你的團(tuán)隊(duì)開發(fā)每一種類型數(shù)據(jù)庫的技能水平,以及每一種數(shù)據(jù)庫類型怎樣更好的適應(yīng)你的需求。擅長技術(shù)類型的優(yōu)勢在于你的開發(fā)者不會被較長的學(xué)習(xí)曲線嚇到。不要過分強(qiáng)調(diào)不需要的功能,即便市場上營銷它比其他的數(shù)據(jù)庫得到了更多的支持者。比如,分布式事務(wù)兩階段提交對于一些應(yīng)用很重要,但是你真的需要嗎?
基于SQL的關(guān)系型數(shù)據(jù)庫平臺可以選擇PaaS,比如亞馬遜關(guān)系型數(shù)據(jù)庫服務(wù)(RDS)和Windows Azure SQL數(shù)據(jù)庫。亞馬遜RDS支持MySQL、Oracle和微軟SQL Server數(shù)據(jù)庫。在優(yōu)化數(shù)據(jù)庫性能時(shí)磁盤I/O是重點(diǎn),因此在對接PaaS或者DBaaS數(shù)據(jù)庫開發(fā)時(shí),考慮一下存儲的選擇。
亞馬遜Web服務(wù)(AWS)允許客戶提供RDS實(shí)例,不管是標(biāo)準(zhǔn)的存儲還是預(yù)分配的IOPS。后者對于事務(wù)處理應(yīng)用是個(gè)不錯(cuò)的選擇。如果你可以忍受I/O性能,標(biāo)準(zhǔn)存儲可以節(jié)省AWS費(fèi)用。客戶可以按照1000—30000 IOPS的范圍,每月價(jià)格為10美分/IOPS。
谷歌云SQL是一個(gè)基于云的MySQL實(shí)現(xiàn),針對中小型應(yīng)用。整合了谷歌App Engine,對于已經(jīng)使用PaaS的開發(fā)者十分適用。不管是打包計(jì)劃還是每個(gè)用例的計(jì)劃付費(fèi)都是可行的。
當(dāng)成本和快速擴(kuò)展成為問題所在,NoSQL選擇可能更適合。NoSQL數(shù)據(jù)庫并不具備我們構(gòu)建面向事務(wù)的系統(tǒng)所依賴的所有性能,但是很適合Web和移動應(yīng)用,這些應(yīng)用要求快速擴(kuò)展。AWS和微軟都有NoSQL數(shù)據(jù)庫服務(wù)。
亞馬遜DynamoDB是一個(gè)托管的NoSQL數(shù)據(jù)庫。客戶對讀寫分配容量,基于此支付每小時(shí)的費(fèi)用。AWS根據(jù)“讀容量單元”和“寫容量單元”衡量容量。
亞馬遜SimpleDB是另一個(gè)NoSQL選擇。其首要優(yōu)勢在于成本低。SimpleDB對于小型應(yīng)用是個(gè)不錯(cuò)的選擇,這種應(yīng)用可以接受更低的性能。對于大量數(shù)據(jù)則需要分區(qū)和自動擴(kuò)展,從而處理負(fù)載,DynamoDB可能更適合。
微軟的NoSQL產(chǎn)品稱之為Table Storage,類似亞馬遜DynamoDB,是一種鍵值對數(shù)據(jù)存儲。這些數(shù)據(jù)庫都是支持大量數(shù)據(jù)的應(yīng)用的有利候選,簡化了數(shù)據(jù)類型的關(guān)系,可以不用修復(fù)預(yù)定義模式就獲益。Table Storage的價(jià)格基于數(shù)據(jù)量和冗余水平。
除了IaaS廠商之外,比如微軟、谷歌、亞馬遜,你還可以選擇特定的數(shù)據(jù)庫服務(wù),比如Cloudant的數(shù)據(jù)庫即服務(wù)。Cloudant提供多租戶和專用MongoDB數(shù)據(jù)庫服務(wù),價(jià)格起始于每月每GB1美分,加上額外的HTTP請求費(fèi)用(如GET、PUT、POST和DELETE)。
責(zé)任編輯:鳶瑋
來源:
TechTarget中國