選擇合適開(kāi)源數(shù)據(jù)庫(kù)的五個(gè)要點(diǎn)
譯文【51CTO.com快譯】選擇一款任務(wù)關(guān)鍵型應(yīng)用軟件時(shí),絕不能犯錯(cuò)。
貴公司下令采用更多的開(kāi)源數(shù)據(jù)庫(kù)技術(shù),為此招你來(lái)選定正確的方向。無(wú)論你是開(kāi)源技術(shù)老手還是新手,這都是一項(xiàng)艱巨的任務(wù)。
過(guò)去這幾年,開(kāi)源技術(shù)在企業(yè)界的采用穩(wěn)步增長(zhǎng)。人氣急升的同時(shí)帶來(lái)了擁擠的市場(chǎng),眾多開(kāi)源軟件公司承諾自己的解決方案可解決所有問(wèn)題,適應(yīng)所有工作負(fù)載。對(duì)這樣的承諾可要小心。選擇合適的開(kāi)源技術(shù)(尤其是數(shù)據(jù)庫(kù))是一個(gè)重要且困難的決定,不可掉以輕心。
我在Percona及其他公司擔(dān)任過(guò)IT專業(yè)人員,有幸親自采用過(guò)開(kāi)源技術(shù),并指導(dǎo)其他人做出正確的決策。有許多重要因素要考慮,但愿本文能闡明幾個(gè)因素。
1. 要有目標(biāo)。
這聽(tīng)起來(lái)很簡(jiǎn)單,但從我與接觸MySQL、MongoDB或PostgreSQL的許多同行的對(duì)話來(lái)看,這一點(diǎn)最重要。
為避免被市場(chǎng)上無(wú)窮組合的開(kāi)源數(shù)據(jù)庫(kù)軟件所淹沒(méi),牢記一個(gè)具體的目標(biāo)。也許你的目標(biāo)是為內(nèi)部開(kāi)發(fā)人員提供由內(nèi)部數(shù)據(jù)庫(kù)團(tuán)隊(duì)管理的一個(gè)標(biāo)準(zhǔn)化的開(kāi)源數(shù)據(jù)庫(kù)后端,也許你的目標(biāo)是使用新的開(kāi)源技術(shù),丟棄并更換遺留應(yīng)用軟件和數(shù)據(jù)庫(kù)后端的全部功能。
一旦你確定好了目標(biāo),可以集中精力。這樣與企業(yè)內(nèi)外的開(kāi)源數(shù)據(jù)庫(kù)軟件供應(yīng)商和支持者交流起來(lái)更順暢了。
2. 了解你的工作負(fù)載。
盡管數(shù)據(jù)庫(kù)技術(shù)越來(lái)越有能力身兼數(shù)職,但每項(xiàng)專注于某些領(lǐng)域,比如MongoDB現(xiàn)在是事務(wù)數(shù)據(jù)庫(kù),MySQL現(xiàn)在擁有JSON存儲(chǔ)。開(kāi)源數(shù)據(jù)庫(kù)一個(gè)日益盛行的趨勢(shì)是,提供聲稱某些功能可用的復(fù)選框。最大的錯(cuò)誤之一是,沒(méi)有使用合適的工具處理相應(yīng)的任務(wù)。某個(gè)因素會(huì)導(dǎo)致公司誤入歧途――也許是過(guò)度狂熱的開(kāi)發(fā)人員或眼光狹窄的經(jīng)理。遺憾的是,錯(cuò)誤的工具可能適用于少量的事務(wù)和數(shù)據(jù),但之后會(huì)出現(xiàn)瓶頸,只有使用不同的工具才能消除。
如果你想要數(shù)據(jù)分析倉(cāng)庫(kù),開(kāi)源關(guān)系數(shù)據(jù)庫(kù)可能不是合適的選擇。如果你想要事務(wù)處理應(yīng)用軟件,并有嚴(yán)謹(jǐn)?shù)臄?shù)據(jù)完整性和一致性,NoSQL數(shù)據(jù)庫(kù)可能不是合適的選擇。
3. 避免重新發(fā)明輪子。
在過(guò)去這幾十年,開(kāi)源數(shù)據(jù)庫(kù)技術(shù)迅猛發(fā)展,取得了長(zhǎng)足的進(jìn)展。我們已看到了轉(zhuǎn)變,由新穎的、適合生產(chǎn)環(huán)境問(wèn)題的新數(shù)據(jù)庫(kù),轉(zhuǎn)向成熟的企業(yè)級(jí)數(shù)據(jù)庫(kù)后端。不再非得是站在前沿的早期采用者才可以選擇開(kāi)源數(shù)據(jù)庫(kù)技術(shù)。眾多企業(yè)已圍繞這些社區(qū)發(fā)展起來(lái),在開(kāi)源數(shù)據(jù)庫(kù)領(lǐng)域?yàn)樵絹?lái)越多的初創(chuàng)公司、中型企業(yè)和《財(cái)富500》強(qiáng)公司提供生產(chǎn)級(jí)支持和工具。
Battery Ventures是一家專注于技術(shù)的投資公司,最近推出了BOSS指數(shù),用于跟蹤最受歡迎的開(kāi)源項(xiàng)目。這份指數(shù)并不完美,但有助于我們了解一些最廣泛采用、最活躍的開(kāi)源項(xiàng)目。數(shù)據(jù)庫(kù)技術(shù)占了榜單的大多數(shù)席位(十大技術(shù)中的五項(xiàng)),這不足為奇。剛接觸開(kāi)源數(shù)據(jù)庫(kù)領(lǐng)域的人應(yīng)該看看這份指數(shù)榜單。很多時(shí)候,供應(yīng)商已經(jīng)開(kāi)發(fā)出了解決特定問(wèn)題的合適架構(gòu)。
我的觀點(diǎn)是,有人可能已經(jīng)做了你想要做的事情。借鑒成功,汲取教訓(xùn)。即使某個(gè)解決方案不是非常合適,可能也可以稍加改動(dòng),適合你的要求。比如說(shuō),亞馬遜提供了CloudFormation腳本,用于在其EC2環(huán)境中部署MongoDB。
如果你是站在前沿的早期采用者,并不意味著無(wú)法探究。如果你有獨(dú)特的挑戰(zhàn)或工作負(fù)載似乎適合一項(xiàng)新的開(kāi)源數(shù)據(jù)庫(kù)技術(shù),就用吧。請(qǐng)記住,早期采用者面臨固有的風(fēng)險(xiǎn)(和回報(bào)!)。
4. 開(kāi)始很簡(jiǎn)單。
你的數(shù)據(jù)庫(kù)果真需要幾個(gè)9?對(duì)許多公司而言,“實(shí)現(xiàn)高可用性”常常是個(gè)模糊的目標(biāo)。當(dāng)然,最常見(jiàn)的答案是“它是關(guān)鍵任務(wù)型,我們無(wú)法承受任何停機(jī)時(shí)間。”
數(shù)據(jù)庫(kù)環(huán)境越復(fù)雜,管理起來(lái)越困難、越費(fèi)錢(qián)。理論上你可以獲得更長(zhǎng)的正常運(yùn)行時(shí)間,但那樣將犧牲可管理性和性能。如有疑問(wèn),一開(kāi)始要簡(jiǎn)單。需要時(shí)總是有辦法進(jìn)行擴(kuò)展。
比如說(shuō),Booking.com是廣為人知的旅游預(yù)訂網(wǎng)站??赡懿惶珡V為人知的是,它使用MySQL作為數(shù)據(jù)庫(kù)后端。Booking.com的高級(jí)系統(tǒng)架構(gòu)師Nicolai Plum曾概述過(guò)該公司的MySQL數(shù)據(jù)庫(kù)的發(fā)展歷程。其中一個(gè)心得是,數(shù)據(jù)庫(kù)一開(kāi)始很簡(jiǎn)單。數(shù)據(jù)庫(kù)勢(shì)必會(huì)隨著時(shí)間的推移而發(fā)展,但一開(kāi)始,簡(jiǎn)單的主副本架構(gòu)足夠了。隨著工作負(fù)載和數(shù)據(jù)集不斷增加,它引入了負(fù)載均衡器、多個(gè)讀取副本、歸檔到Hadoop以分析數(shù)據(jù)等。但是早期的架構(gòu)極其簡(jiǎn)單。
5. 如有疑問(wèn),咨詢專家。
如果你不確定數(shù)據(jù)庫(kù)是否合適,在論壇和網(wǎng)站上多轉(zhuǎn)轉(zhuǎn),或者聯(lián)系供應(yīng)商。你可以研究哪些數(shù)據(jù)庫(kù)技術(shù)滿足要求,哪些數(shù)據(jù)庫(kù)技術(shù)滿足不了。常常有一些合適的替代方案是你之前沒(méi)考慮過(guò)的。開(kāi)源社區(qū)的宗旨就是分享知識(shí)。
在聯(lián)系開(kāi)源軟件和服務(wù)供應(yīng)商聯(lián)系時(shí),要注意很重要的一點(diǎn)。許多供應(yīng)商奉行開(kāi)放/核心商業(yè)模式,鼓勵(lì)采用數(shù)據(jù)庫(kù)軟件。不要盲目地聽(tīng)取對(duì)方的建議或指導(dǎo),自己調(diào)研一番,并探究替代方案。
結(jié)束語(yǔ)
選擇合適的開(kāi)源數(shù)據(jù)庫(kù)是個(gè)重要的決定。先要提出合適的問(wèn)題。人們往往本末倒置,還沒(méi)有真正了解需求就做出決定。
原文標(biāo)題:5 tips for choosing the right open source database,作者:Barrett Chambers
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】