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中保存的数据中获取洞察力,以便驱动业务的方向。特别地,它们需要能够以多种方式查看数据,通常组合来自多个集合和多个数据库的数据。虽然总体方案更可能由实际需求驱动,但业务分析人员有一定的兴趣,即确保适当的索引到位以满足他们的实时分析需求,以及使用他们首选的分析和视图的方法的平台化。

猜你喜欢

转载自blog.csdn.net/qq_32523587/article/details/84889569