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