[MongoDB]: Roles and Responsibilities

Roles and Responsibilities

As with any database, applications deployed on MongoDB
require careful planning and the coordination of a number
of roles in an organization’s technical teams to ensure
successful maintenance and operation. Organizations tend
to find many of the same individuals and their respective
roles for traditional database deployments are appropriate
for a MongoDB deployment: Data Architects, Database
Administrators, System Administrators, Application
Developers, and Network Administrators.

In smaller organizations it is not uncommon to find these
roles are provided by a small number of individuals, each
potentially fulfilling multiple roles, whereas in larger
companies it is more common for each role to be provided
by an individual or team dedicated to those tasks. For
example, in a large investment bank there may be a very
strong delineation between the functional responsibilities
of a DBA and those of a system administrator.

Data Architect

While modeling data for MongoDB is typically simpler than
modeling data for a relational database, there tend to be
multiple options for a data model, and tradeoffs with each
alternative regarding performance, resource utilization,
ease of use, and other areas. The data architect can
carefully weigh these options with the development team
to make informed decisions regarding the design of the
schema. Typically the data architect performs tasks that are
more proactive in nature, whereas the database
administrator may perform tasks that are more reactive.

Database Administrator (DBA)

As with other database systems, many factors should be
considered in designing a MongoDB system for a desired
performance SLA. The DBA should be involved early in the
project regarding discussions of the data model, the types
of queries that will be issued to the system, the query
volume, the availability goals, the recovery goals, and the
desired performance characteristics.
System Administrator (Sysadmin)

Sysadmins typically perform a set of activities similar to
those required in managing other applications, including
upgrading software and hardware, managing storage,
system monitoring, and data migration. MongoDB users
have reported that their sysadmins have had no trouble
learning to deploy, manage and monitor MongoDB
because no special skills are required.
Application Developer

The application developer works with other members of the
project team to ensure the requirements regarding
functionality, deployment, security, and availability are
clearly understood. The application itself is written in a
language such as Java, C#, PHP or Ruby. Data will be
stored, updated, and queried in MongoDB, and
language-specific drivers are used to communicate
between MongoDB and the application. The application
developer works with the data architect to define and
evolve the data model and to define the query patterns that
should be optimized. The application developer works with
the database administrator, sysadmin and network
administrator to define the deployment and availability
requirements of the application.

Network Administrator

A MongoDB deployment typically involves multiple servers
distributed across multiple data centers. Network
resources are a critical component of a MongoDB system.
While MongoDB does not require any unusual
configurations or resources as compared to other database
systems, the network administrator should be consulted to
ensure the appropriate policies, procedures, configurations,
capacity, and security settings are implemented for the
project.

  • Ask Question