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