1. 程式人生 > >MongoDB操作最佳實踐(一)

MongoDB操作最佳實踐(一)

MongoDB 3.4

(ps:文章大部分內容都是藉助百度翻譯,然後在上面作一些修正的。翻譯不是目的,主要目的是強迫自己沉下心來將英文的技術文章看下去)

 

簡介


MongoDB是一種高效能、可擴充套件、分散式、為現代應用而設計的資料庫。它被各種大大小小的組織用來處理關鍵任務,低延遲的操作應用程式,高吞吐量以及持續可用性等有嚴格要求的系統。

雖然MongoDB的一些方面不同於傳統的關係資料庫,但是系統的概念、它的操作和策略、過程對於部署過和操作過其他資料庫系統的人員來說將是熟悉的。一些組織已經發現,DBA(資料庫管理員)和操作團隊能夠通過將MongoDB整合到它們的產品中來儲存現有生產部署環境,而不需要定製已建立好的操作進度。

本文提供了關於部署和管理MongoDB的最佳實踐。它假定您熟悉MongoDB的體系結構,並理解與企業軟體部署相關的概念。

這個指南是針對使用者自己管理一切的。為MongoDB作為服務的使用者提供了專門的指南——MongoDB Atlas最佳實踐。

有關指定主題的最詳細資訊,請參閱mongodb.com的線上文件。在本白皮書中提供了許多連結,以幫助指導使用者使用適當的資源。

 

角色與責任


與任何資料庫一樣,在MongoDB上部署的應用程式需要仔細地計劃和協調組織的IT團隊中的多個角色,以確保成功的部署和操作。10gen組織傾向於認為傳統資料庫應用程式的大多數的人與角色同樣適用於MongoDB環境:資料庫管理員、系統管理員、應用程式開發人員、網路管理員、業務分析員和資料架構師。

 

在較小的組織中,IT人員通常要履行多個角色,而在較大的公司中,每個角色由致力於這些任務的個人或團隊承擔更為常見。例如,在大型投資銀行中,DBA的職責和系統管理員的職責之間可能存在非常強烈的界限。

 

資料庫管理員 (DBA)

與其他資料庫系統一樣,在設計MongoDB系統以獲得期望的效能和可用性SLA時,應該考慮許多因素。DBA應該在專案的早期就參與到關於資料模型、將釋出到系統的查詢型別、查詢卷、可用性和恢復目標以及期望的效能特徵的討論中。

系統管理員 (Sysadmin)

系統管理員通常執行一組類似於管理其他應用程式所需的活動,包括升級軟體和硬體、管理儲存、系統監視和資料遷移。MongoDB使用者報告說他們的系統管理員在學習部署、管理和監視MongoDB方面沒有遇到困難,因為不需要特殊的技能。

應用程式開發人員

應用程式開發人員與專案團隊的其他成員一起工作,以確保關於功能、部署、安全性和可用性的需求被清楚地理解。應用程式本身是用Java、C語言、PHP或Ruby語言編寫的。資料將在MongoDB中儲存、更新和查詢,並且用特定語言的驅動用來做MongoDB和應用程式之間通訊。應用程式開發人員與資料架構師一起定義和開發資料模型,並定義應該優化的查詢模式。應用程式開發人員與資料庫管理員、系統管理員和網路管理員一起工作,以定義應用程式的部署和可用性需求。

網路管理員

MongoDB 部署通常涉及多個伺服器, 分佈在多個數據中心內和跨多個數據中心。網路資源是MongoDB的重要組成部分。與其他資料庫系統相比,MongoDB不需要任何自定義配置或資源,但是應該諮詢網路管理員以確保為專案實現適當的策略、過程、配置、容量和安全設定。

 

Data Architect

雖然為MongoDB建模資料通常比為關係資料庫建模資料簡單,但是資料模型往往有多個選項,每個選項在效能、資源利用率、易用性和其他方面都有折衷。資料架構師可以與開發團隊仔細權衡這些選項,以便做出關於模式設計的明智決策。通常,資料架構師本質上執行更主動的任務,而資料庫管理員可以在部署應用程式之後執行更被動的任務。

業務分析員

業務分析人員需要從MongoDB中儲存的資料中獲取洞察力,以便驅動業務的方向。特別地,它們需要能夠以多種方式檢視資料,通常組合來自多個集合和多個數據庫的資料。雖然總體方案更可能由實際需求驅動,但業務分析人員有一定的興趣,即確保適當的索引到位以滿足他們的實時分析需求,以及使用他們首選的分析和檢視的方法的平臺化。