Sei sulla pagina 1di 31

Un Libro Blanco MongoDB

MongoDB Operaciones de Buenas Práctica


de junio de 2018
Tabla de contenido

Introducción 1

Preparación para una implementación de MongoDB 2

disponibilidad continua 13

La escala de un sistema de MongoDB dieciséis

Gestión de MongoDB 18

Seguridad 25

MongoDB Atlas: Base de datos como un servicio para MongoDB 27

MongoDB puntada: backend como Servicio 28

Conclusión 28

Podemos ayudar 29

recursos 29
Introducción

MongoDB está diseñado para satisfacer las demandas de aplicaciones Este documento proporciona orientación sobre las mejores prácticas para la

modernas con una base tecnológica que permite a través de: implementación y gestión de MongoDB. Se supone familiaridad con el arquitectura de

MongoDB y una comprensión de los conceptos relacionados con el despliegue de

software empresarial.
1. El modelo de datos de documentos - presentando el mejor el mejor
manera
de trabajar
de trabajar
con dataa.
con dat manera Esta guía está dirigida a los usuarios la gestión de la base de datos a sí mismos. Se

proporciona una guía dedicada a los usuarios de la base de datos MongoDB como un
2. Un diseño de sistemas distribuidos - que le permite poner
inteligente dat inteligentemente puso RCEst datos servicio - MongoDB Atlas Buenas Prácticas . MongoDB Atlas es la mejor manera de
E que
una en la que lo desee.
desea que
ejecutar MongoDB en la nube.
3. Una experiencia unificada que proporciona la fr libertad
eedomdepara
ejecutar
funcionar

anywher
anywheree - lo que le permite asegurar el futuro de su trabajo y eliminar la

dependencia de un proveedor.
Aunque esta guía es de amplio alcance, no es exhaustiva. Debe
consultar documentación MongoDB , A partir de la
Mientras que algunos aspectos de MongoDB son diferentes de las bases de datos Notas de producción , Sistema que detalle las configuraciones que afectan MongoDB.
relacionales tradicionales, los conceptos del sistema, sus operaciones, políticas y Ten en cuenta también los costes, sin clases de formación en línea que ofrece Universidad
procedimientos serán familiares para el personal que hayan implementado y operado otros MongoDB . Además, MongoDB ofrece una gama de servicios de consultoría para
sistemas de bases de datos. Las organizaciones han encontrado que los DBA y los equipos trabajar con usted en cada etapa del ciclo de vida de la aplicación.
de operaciones son capaces de preservar las inversiones existentes mediante la

integración de MongoDB en sus entornos de producción, sin necesidad de personalizar los

procesos o herramientas operativos establecidos.

1
Se observan diferencias en las recomendaciones entre los motores de
Preparación para una implementación
almacenamiento.

de MongoDB
WiredTiger es el motor de almacenamiento por defecto para nuevas

implementaciones de MongoDB MongoDB 3.2; si se prefiere otro motor de arranque

Motores MongoDB enchufable de almacenamiento el mongod utilizando la

- - storageEngine opción. Si un 3.2+ mongod proceso se inicia y ya existe una o más


MongoDB expone una API de motor de almacenamiento, lo que permite la integración de
bases de datos, entonces se usará el que sea motor de almacenamiento de dichas
los motores de almacenamiento enchufables que se extienden MongoDB con nuevas bases de datos fueron creados con.

capacidades, y permiten un uso óptimo de las arquitecturas de hardware específicos.

MongoDB barcos con múltiples motores de almacenamiento soportado:

esquema de Diseño
• iredT
El valor por defecto WWir
motor motor
de almacenamiento
de almacenamiento
edTiger
Iger. Para la mayoría

aplicaciones, control de concurrencia granular de WiredTiger y compresión Los desarrolladores y arquitectos de datos deben trabajar juntos para desarrollar el
nativa proporcionará el mejor rendimiento y la eficiencia de almacenamiento modelo de datos de la derecha, y deben invertir tiempo en este ejercicio al principio del
versátil para la gama más amplia de aplicaciones. proyecto. Los requisitos de la aplicación deben conducir el modelo de datos,

actualizaciones y consultas de su sistema MongoDB. Dada esquema dinámico de

• El motor de almacenamiento
motor cifrado
de almacenamiento cifrado, la protección de datos altamente MongoDB, desarrolladores y arquitectos de datos pueden seguir para iterar sobre el

sensibles, sin el rendimiento o la gestión de sobrecarga de cifrado sistema de modelo de datos a través de los procesos de desarrollo e implementación para

archivos separados. El almacenamiento cifrado se basa en WiredTiger y por lo optimizar el rendimiento y la eficiencia de almacenamiento, así como apoyar la adición

largo de este documento, las declaraciones con respecto WiredTiger también de nuevas características de la aplicación. Todo esto se puede hacer sin costosas

se aplican al motor de almacenamiento cifrado. Este motor es parte de MongoDB migraciones de esquema.

Empresa Avanzada .

• Dentro
El motor de la memoria en
de almacenamiento delmemoria
motor de almacenamiento, la entrega de latencia El tema del diseño de esquema es significativa, y una discusión completa está más allá

predecible junto con análisis en tiempo real para las aplicaciones más exigentes,. del alcance de esta guía. Para obtener más información, consulte Consideraciones para

Este motor es parte de el modelado de datos MongoDB en la Documentación de MongoDB. Una serie de

MongoDB Empresa Avanzada . recursos adicionales están disponibles en línea, incluyendo presentaciones de la

conferencia de MongoDB arquitectos de soluciones y usuarios, así como la no-cost,


• el MMMAP motor
motor de de almacenamiento
almacenamiento MAPv1 v1, que se proporciona para la
formación basada en web proporcionados por Universidad MongoDB . MongoDB
compatibilidad hacia atrás solamente. Este motor está en desuso con la versión 4.0
Servicios Global Consulting ofrece asistencia en el diseño del esquema como parte de
de MongoDB.
la El rápido desarrollo de servicios de inicio. .

MongoDB únicamente permite a los usuarios mezclar y combinar múltiples motores de

almacenamiento dentro de un solo grupo MongoDB. Esta flexibilidad proporciona un

enfoque más sencillo y fiable para satisfacer diversas necesidades de aplicación para los
Los conceptos clave en el diseño del esquema a tener en cuenta son los siguientes.
datos. Tradicionalmente, necesitarían múltiples tecnologías de bases de datos a ser

gestionados para satisfacer estas necesidades, con, código de integración personalizada

compleja para mover datos entre las tecnologías, y para garantizar un acceso consistente y

seguro. Si bien cada motor de almacenamiento está optimizado para diferentes cargas de
documento Modelo
trabajo, los usuarios aprovechar el mismo lenguaje de consulta MongoDB, modelo de datos,
MongoDB almacena datos como documentos en una representación binaria
escalado, seguridad y funcionamiento de herramientas independiente del motor que utilizan.

Como resultado, la mayoría de las mejores prácticas en esta guía se aplican a todos los
llamada BSON. La codificación BSON extiende la representación popular JSON

motores de almacenamiento compatibles. Ninguna


para incluir tipos adicionales tales como int, long, decimales, y fecha. BSON

documentos contienen uno o más campos, y cada campo contiene un valor de un

tipo de datos específico, incluidas las matrices,

2
sub-documentos y datos binarios. Puede ser útil pensar en documentos como más o sólo un subconjunto de campos - por ejemplo, lo que requiere un nombre de cliente

menos equivalentes a las filas de una base de datos relacional, y los campos que más o válido y dirección, mientras que otros campos pueden ser de forma libre.

menos equivalente a las columnas. Sin embargo, los documentos MongoDB tienden a

tener todos los datos relacionados para un objeto dado en un solo documento, mientras
Con la validación del esquema, DBA pueden aplicar normas de gobierno de datos a su
que en una base de datos relacional que los datos se normalizó por lo general a través
esquema, mientras que los desarrolladores mantienen los beneficios de un modelo de
de las filas en muchas mesas. Por ejemplo, los datos que pertenecen a las relaciones
documento flexible.
entre padres e hijos en varias tablas RDBMS con frecuencia se pueden contraer

(incrustado) en un único documento en MongoDB. Para aplicaciones operacionales, el A modo de ejemplo, se puede añadir un esquema JSON para hacer cumplir estas

modelo de documento hace JOINs redundante en muchos casos. reglas:

• Cada documento debe contener un campo denominado artículos de línea

• El documento puede contener opcionalmente otros campos

Colecciones • artículos de línea debe ser una matriz donde cada elemento:

Las colecciones son grupos de documentos. Por lo general todos los documentos en ◦ Debe contener una título ( cuerda), precio ( número no menor que 0)

una colección tienen efectos similares o relacionados sobre una aplicación. Puede

ser útil pensar en colecciones como análogo a las tablas de una base de datos ◦ Puede contener opcionalmente un booleano llamado comprar

relacional.
◦ Debe contener no hay más campos

db.createCollection ( "órdenes",
Esquema dinámico y Validación del esquema {Validador: {$ jsonSchema:

MongoDB documentos pueden variar en su estructura. Por ejemplo, los documentos {propiedades: {
que describen todos los usuarios podrían contener el identificador de usuario y la
Elementos de línea: {type:
última fecha en que se registran en el sistema, pero sólo algunos de estos documentos
"matriz", artículos: {
podrían contener dirección de envío del usuario, y tal vez algunos de los que contienen

múltiples direcciones de envío. MongoDB no requiere que todos los documentos se


propiedades: {
ajustan a la misma estructura. Además, no hay necesidad de declarar la estructura de Título: {type: "cadena"}, precio: {type:
documentos en el sistema - los documentos son auto-descripción. "Número",
mínimo: 0.0}, comprado: {type:
"booleano"}},

requeridos: [ "_id", "Título", "precio"], additionalProperties:


Mientras esquema flexible MongoDB es una característica de gran alcance, hay situaciones false}}},

en las que se requieren garantías estrictas sobre la estructura y contenido de los datos del

esquema. A diferencia de las bases de datos NoSQL que empujan a la ejecución de estos

controles de nuevo en código de aplicación, MongoDB proporciona la validación de


exigidos: [ "Elementos de línea"]}}})

esquema dentro de la base de datos a través de la sintaxis derivado de la IETF propuesto JSON

esquema estándar.

índices
Utilizando Validación de esquema , DevOps y equipos DBA puede definir una estructura
MongoDB utiliza los índices B-tree para optimizar las consultas. Los índices se definen en
de documento prescrito para cada colección, con la base de datos de rechazar cualquier
los campos del documento de una colección. MongoDB incluye soporte para muchos
documento que no se ajusten a la misma. Los administradores tienen la flexibilidad
índices, incluyendo el compuesto, geoespacial, TTL, búsqueda de texto, escasa, parcial,
necesaria para la validación del esquema sintonía de acuerdo a casos de uso - por
única, y otros. Para obtener más información, véase la sección sobre la indexación a
ejemplo, si un documento no cumple con la estructura definida, que puede ser o bien ser
continuación.
rechazado o por escrito a la colección al registrar un mensaje de advertencia. La

estructura puede ser impuesta a

3
Actas segundos. Tenga en cuenta que si los volúmenes de escritura en el servidor son

bajos, usted tiene la flexibilidad para ajustar sus operaciones durante un plazo de
Dado que los documentos pueden reunir datos relacionados que de otro modo se modelan
ejecución más largo. Para hacer frente a los tiempos de espera, la transacción debe
a través de tablas de padres e hijos separados en un esquema de tabla, las operaciones de
ser dividida en partes más pequeñas que permiten la ejecución dentro del límite de
un único documento atómicas de MongoDB proporcionan la semántica de transacción que
tiempo configurado. También debe asegurarse de que sus patrones de consulta están
satisfagan las necesidades de integridad de datos de la mayoría de las aplicaciones. Uno o
correctamente optimizadas con la cobertura índice adecuado para permitir acceso
más campos pueden ser escritos en una sola operación, incluyendo cambios a múltiples
rápido a datos dentro de la transacción.
sub-documentos y elementos de una matriz. Las garantías proporcionadas por MongoDB

aseguran un aislamiento completo como un documento se actualiza; los errores provocar la


2. No existen límites estrictos a la cantidad de documentos que se puede leer en una
operación para hacer retroceder de manera que los clientes reciban una visión consistente
transacción. Como práctica recomendada, no más de 1.000 documentos deben
del documento. garantiza la atomicidad de documentos existentes de MongoDB se reunirán
ser modificados dentro de una transacción. Para las operaciones que hay que
el 80-90% de las necesidades transaccionales de una aplicación. Ellos siguen siendo la
modificar más de 1.000 documentos, los desarrolladores deben romper la
forma recomendada de hacer cumplir los requisitos de integridad de datos de la aplicación
transacción en partes separadas que procesan documentos en lotes.

3. En MongoDB 4,0, una transacción está representado en una sola entrada oplog, por

lo tanto, debe estar dentro del límite de tamaño del documento 16 MB. Mientras que
MongoDB 4.0 añade soporte para transacciones ACID multi-documento, lo que hace aún
una operación de actualización sólo almacena los deltas de la actualización (es decir,
más fácil para los desarrolladores para hacer frente a más casos de uso con MongoDB.
lo que ha cambiado), un inserto almacenará todo el documento. Como resultado, la
Se sienten igual que los desarrolladores transacciones están familiarizados con las bases
combinación de las descripciones oplog para todos los estados de la transacción
de datos relacionales - instrucción múltiple, sintaxis similar, y fácil de añadir a cualquier
debe ser inferior a 16 MB. Si se supera este límite, la transacción será abortado y
aplicación. A través de aislamiento de instantánea, las transacciones proporcionan una
totalmente deshace. Por consiguiente, la transacción debe ser descompuesto en un
visión coherente de los datos, hacer cumplir todo o nada ejecución, y no afectar el
conjunto más pequeño de operaciones que puede ser representado en 16 MB o
rendimiento para cargas de trabajo que no requieren de ellos. Para aquellas operaciones
menos.
que requieren transacciones multi-documento, hay varias mejores prácticas que los

desarrolladores deben observar.

4. Cuando una transacción aborta, una excepción es devuelto al conductor y la

transacción es completamente deshace. Los desarrolladores deben añadir lógica de

aplicación que puede atrapar y volver a intentar una transacción que aborta debido
Creación de transacciones de larga ejecución, o intenta realizar un número excesivo de
a las excepciones temporales, como un fallo en la red transitoria o una elección
operaciones en una sola transacción ACID puede provocar una fuerte presión sobre el
réplica principal. Con escribe reintentable , Los conductores serán MongoDB intentar
caché de WiredTiger. Esto es debido a que el caché debe mantener el estado de todas las
automáticamente la declaración de la confirmación de la transacción.
escrituras posteriores desde que se creó la instantánea más antigua. Como una

transacción utiliza siempre la misma instantánea mientras se está ejecutando, grabar

nuevos datos se acumulan en la memoria caché durante toda la duración de la

transacción. Estas escrituras no pueden ser eliminados hasta que las transacciones que se Puede revisar todas las mejores prácticas en el Documentación de MongoDB

están ejecutando en viejas instantáneas confirmar o anular, momento en el cual las para las transacciones de múltiples documentos .

transacciones liberan sus cerraduras y WiredTiger pueden desalojar la instantánea. Para

mantener los niveles predecibles de rendimiento de base de datos, por lo tanto, los
La visualización de su esquema y Adición de reglas de validación:
desarrolladores deben considerar lo siguiente:
MongoDB Brújula

La Brújula MongoDB interfaz gráfica de usuario permite a los usuarios a entender la

estructura de los datos existentes en la base de datos y realizar consultas ad hoc en su

contra - todos con cero conocimiento del lenguaje de consulta de MongoDB. Los usuarios
1. Por defecto, MongoDB abortará automáticamente cualquier transacción
típicos podrían incluir los arquitectos que construyen un nuevo proyecto MongoDB o un
multi-documento que tiene una duración de más de 60
DBA que se

4
ha heredado una base de datos desde un equipo de ingeniería, y que ahora debe grupos de revisión como un documento separado con una referencia al documento de

mantenerla en producción. Es necesario comprender lo que está presente el tipo productos; al mismo tiempo que el almacenamiento de las revisiones clave en el

de datos, definir qué índices podrían ser apropiadas, e identificar si las reglas de documento de producto para un acceso rápido.

validación de documento, debe añadirse a cumplir una estructura de documento

consistente.
GridFS

Para archivos de más de 16 MB, MongoDB ofrece una convención llamada GridFS, que

es implementado por todos los conductores MongoDB. GridFS divide automáticamente

los datos de gran tamaño en trozos 256 KB llamados trozos y mantiene los metadatos de

todos los trozos. GridFS permite la recuperación de trozos individuales, así como

documentos enteros. Por ejemplo, una aplicación podría saltar rápidamente a una marca

de tiempo específico en un video. GridFS se utiliza con frecuencia para almacenar

grandes archivos binarios como imágenes y vídeos en MongoDB.

Gestión del ciclo de vida de datos

MongoDB ofrece características para facilitar la gestión de los ciclos de vida de datos,
Figur
1: Figura
e 1: Vista de esquema y de forma interactiva construir y ejecutar consultas de
incluyendo el tiempo de vida índices, y las colecciones tapados. Además, mediante el uso de zonas
base de datos MongoDB con brújula
MongoDB , Los administradores pueden crear modelos de almacenamiento por niveles

altamente eficientes para apoyar el ciclo de vida de los datos. Mediante la asignación de
Sin MongoDB brújula, los usuarios que desean entender la forma de sus datos tendrían
fragmentos a las zonas, los administradores pueden equilibrar latencia de consulta con la
que conectarse a la consola MongoDB y escribir consultas para realizar ingeniería
densidad de almacenamiento y el coste mediante la asignación de conjuntos de datos
inversa a la estructura del documento, nombres de campo y tipos de datos. Del mismo
basándose en un valor, tales como una marca de tiempo a los dispositivos de
modo, cualquiera que desee ejecutar consultas personalizadas sobre los datos
almacenamiento específicos:
necesitaría para comprender el lenguaje de consulta de MongoDB.

• Los datos recientes, se accede con frecuencia se pueden asignar a los SSD

de alto rendimiento con habilita la compresión Snappy.


MongoDB Brújula proporciona a los usuarios una vista gráfica de su esquema de MongoDB

mediante el muestreo de un subconjunto de documentos de una colección. Mediante el uso

de muestreo, MongoDB Brújula minimiza la carga de base de datos y puede presentar los
• Mayor, con menor frecuencia de datos visitada está etiquetado para unidades de disco

duro de menor rendimiento donde se comprime con zlib para alcanzar la máxima
resultados al usuario casi instantáneamente.
densidad de almacenamiento con un poco coste por menor.

• Como las edades de datos, MongoDB migra automáticamente entre niveles de


Tamaño del documento
almacenamiento, sin que los administradores tener que construir herramientas o

El tamaño máximo de documento BSON en MongoDB es de 16 MB. Los usuarios procesos ETL para gestionar el movimiento de datos.

deben evitar ciertos patrones de aplicación que permitan documentos para crecer

sin límites. Por ejemplo, en una aplicación de comercio electrónico sería difícil
Usted puede aprender más acerca del uso de Zonas sharding adelante en esta guía.
estimar cuántos comentarios cada producto podría recibir de los clientes.

Además, es típicamente el caso de que sólo un subconjunto de los exámenes se

muestra a un usuario, tales como el las opiniones más recientes o más popular.

En lugar de modelar los productos y comentarios de los clientes como un solo Tiempo de vida (TTL)
documento que sería mejor para modelar cada revisión o
Si los documentos de una colección sólo deben persistir durante un período predefinido de

tiempo, la función de la TTL se puede utilizar para

5
eliminar automáticamente los documentos de cierta edad en lugar de planificar un proceso Los usuarios deben de crear índices de apoyo a las consultas, pero no deberían

para comprobar la edad de todos los documentos y ejecutar una serie de eliminaciones. Por mantener consultas índices que no utilizan. Este es particularmente importante para las

ejemplo, si las sesiones de usuario sólo debe existir durante una hora, el TTL se puede implementaciones que apoyan-inserto pesada (o escrituras que modifican valores

ajustar a 3.600 segundos de un campo de fecha llamada Última actividad indexados) cargas de trabajo.

que existe en los documentos que se utilizan para realizar un seguimiento de las sesiones
Por simplicidad operativa, el Asesor de rendimiento en
de usuario y su última interacción con el sistema. Un hilo fondo comprobará
MongoDB Operaciones Director y cloud Manager plataformas pueden identificar índices
automáticamente todos estos documentos y eliminar aquellos que han estado inactivo
que faltan, lo que permite al administrador a continuación, automatizar el proceso de
durante más de 3.600 segundos. Otro caso de ejemplo el uso de TTL es un presupuesto
implantación a cabo -, evitando cualquier impacto sobre las aplicaciones. Operaciones y
que debe expirar automáticamente después de un período de tiempo.
Gerente de la nube se discuten más adelante en esta guía.

Para comprender la eficacia de los índices existentes que se utiliza, un $ indexStats


coronadas Colecciones
etapa de agregación se puede utilizar para determinar con qué frecuencia se
En algunos casos, una ventana móvil de datos se debe mantener en el sistema basado utiliza cada índice.
en el tamaño de los datos. colecciones tapados son colecciones de tamaño fijo que MongoDB Brújula visualiza cobertura del índice, lo que le permite determinar
soportan insertos de alto rendimiento y lee basado en el orden de inserción. Una qué campos específicos son indexados, el tipo, el tamaño y la frecuencia con
colección capsulado se comporta como un buffer circular: se inserta datos en la que se utilizan.
colección, que el orden de inserción se conserva, y cuando el tamaño total alcanza el

umbral de la colección capsulado, los documentos más antiguos se borran para hacer
Optimización de consultas
espacio para los nuevos documentos. Por ejemplo, registro de almacén de información

de un sistema de alto volumen de una colección cubiertas para recuperar rápidamente Las consultas se optimizan automáticamente por MongoDB para hacer la evaluación de la

las entradas de registro más recientes. consulta lo más eficiente posible. La evaluación normalmente incluye la selección de los

datos en función de los predicados, y la clasificación de los datos en función de los criterios

de ordenación previstos. El optimizador de consulta selecciona los mejores índices de usar

mediante la ejecución periódicamente planes de consulta alternativos y seleccionando el

índice con el mejor rendimiento para cada tipo de consulta. Los resultados de esta prueba
Dejar caer una colección
empírica se almacenan como un plan de consulta en caché y se actualizan periódicamente.

Es muy eficiente para dejar caer una colección en MongoDB. Si su gestión del ciclo de vida

de datos requiere eliminando periódicamente los grandes volúmenes de documentos, puede

ser mejor para modelar esos documentos como una sola colección. Dejar caer una colección
MongoDB proporciona una explique capacidad de plan que muestra información
es mucho más eficiente que la eliminación de todos los documentos o un gran subconjunto
acerca de cómo será una consulta o se resolvió, incluyendo:
de una colección, así como eliminar una tabla que es más eficiente que la eliminación de

todas las filas de una tabla en una base de datos relacional.

• El número de documentos devuelto

• El número de documentos leer


WiredTiger automáticamente reclama espacio en disco después de que se cayó
• que se utilizaron índices
una colección.
• Si la consulta fue cubierta, es decir, sin los documentos necesarios para ser leído

para devolver resultados


Indexación
• Ya sea que se llevó a cabo una ordenación en memoria, lo que

Como la mayoría de los sistemas de gestión de bases de datos, índices son un indica un índice sería beneficioso

mecanismo crucial para optimizar el rendimiento del sistema en MongoDB. Si bien los
• El número de entradas de índice escaneada
índices mejorarán el rendimiento de algunas operaciones por una o más órdenes de
• El tiempo que la consulta se llevó a resolver en milisegundos (cuando
magnitud, incurren en gastos generales de escritura, espacio en disco y uso de
se utiliza el executionStats modo)
memoria.

6
• Los cuales fueron rechazados los planes de consulta alternativas (cuando se duración excede de un umbral configurable (cuyo valor predeterminado es 100 ms). de

utiliza el allPlansExecution modo) perfiles de datos se almacena en una colección cubiertas donde fácilmente se pueden

buscar eventos relevantes. Puede ser más fácil para consultar esta colección que analizar
El plan explicar mostrará 0 milisegundos si la consulta se resolvió en menos de 1
los archivos de registro.
ms, lo cual es típico en los sistemas bien afinadas. Cuando el plan de explicar se

llama, los planes de consulta en caché anteriores son abandonados, y el proceso de MongoDB de Operaciones y Director de Cloud Manager se pueden utilizar para visualizar la

probar varios índices se repite para garantizar el mejor plan posible se utiliza. El plan salida del generador de perfiles en la identificación de consultas lentas. La consulta de

de consulta se puede calcular y regresó sin tener que ejecutar la consulta. Esto perfiles de Visual proporciona una forma rápida y conveniente para los equipos de

permite a los administradores de bases para revisar qué plan se utilizará para operaciones y administradores de bases para analizar consultas específicas o familias de

ejecutar la consulta, sin tener que esperar a que la consulta se ejecute hasta su consulta. La consulta Profiler Visual (como se muestra en la Figura 3) muestra cómo

finalización. consulta y escribir latencia varía con el tiempo - por lo que es fácil de identificar las

consultas más lentas con los patrones de acceso común y características, así como

identificar cualquier picos de latencia. Un solo clic en el Gestor de interfaz de usuario de

Operaciones activa el generador de perfiles, que a continuación se consolida y muestra las


MongoDB Brújula proporciona la capacidad de visualizar explicar los planes, la
métricas de cada nodo en una sola pantalla.
presentación de la información clave sobre cómo realiza una consulta - por ejemplo, el

número de documentos regresó, tiempo de ejecución, el uso de índices, y mucho más.

Cada etapa de la tubería de ejecución se representa como un nodo en un árbol, por lo

que es fácil de ver a explicar los planes de consultas distribuidas a través de múltiples La consulta de perfiles de Visual analizará los datos - la recomendación de índices

nodos. adicionales y, opcionalmente, añadir ellos a través de un sistema automatizado, laminados

de creación de índice.

Figur
3: Figura
e 3: visual de consultas de perfiles en MongoDB Operaciones Director

Como se señaló anteriormente, el Asesor de rendimiento que puede

Figur
2: Figura
e 2: MongoDB Brújula plan de consulta visual para la optimización notifique automáticamente los índices que faltan.

del rendimiento a través de clusters distribuidos

Si la aplicación va a utilizar siempre los índices, MongoDB se puede configurar a


Índices primarios y secundarios

través de la notablescan el establecimiento de un error si se emite una consulta que


Un índice único en el _ carné de identidad atributo se crea para todos los documentos.
requiere el análisis de toda la colección.
MongoDB creará automáticamente el _ carné de identidad

campo y asignar un valor único si no se puede especificar el valor cuando se inserta el

documento. Todos los índices definidos por el usuario son índices secundarios. MongoDB

perfilado incluye soporte para muchos tipos de índices secundarios que se pueden declarar en

cualquier campo (s) en el documento, incluidos los campos dentro de las matrices y
MongoDB proporciona una capacidad de perfiles denominado Base de datos de perfiles,
subdocumentos. Las opciones sobre índices incluyen:
que registra información de grano fino sobre las operaciones de bases de datos. El

generador de perfiles puede ser activado para registrar la información de todos los

eventos o sólo aquellos eventos cuyo • Los índices compuestos

7
• índices geoespaciales • Por defecto, WiredTiger utiliza la compresión de prefijo para reducir la huella del

índice en tanto el almacenamiento persistente y en la memoria RAM. Esto permite a


• los índices de búsqueda de texto
los administradores a dedicar más del trabajo creado para gestionar documentos de
• índices únicos
acceso frecuente. Las relaciones de compresión de alrededor del 50% son típicos,

• los índices de matriz pero los usuarios se les anima a evaluar la relación real que pueden esperar

probando sus propias cargas de trabajo.


• índices TTL

• índices dispersos
• Los administradores pueden asignar índices en su propio volumen de almacenamiento
• Los índices parciales
por separado, lo que permite más rápido paginación del disco y una menor contención.

• índices hash

• índices cotejadas de diferentes idiomas

Índice Limitaciones
Usted puede aprender más acerca de cada uno de estos índices de la

Guía de Arquitectura MongoDB Al igual que con cualquier base de datos, índices consumen espacio en disco y la memoria,

por lo que se deben utilizar solamente cuando sea necesario. Los índices pueden afectar al

rendimiento de actualización. Una actualización debe localizar primero los datos a cambiar,
Opciones de creación de índice
por lo que un índice le ayudará en este sentido, pero sí el mantenimiento de índices tiene

Los índices y los datos se actualizan de forma sincrónica en MongoDB, garantizando así sobrecarga de trabajo y esto reducirá el rendimiento de actualización.

las consultas sobre índices no devuelve datos antiguos o eliminados. Los índices

adecuados deben ser determinados como parte del proceso de diseño del esquema, y
Existen varias limitaciones de índice que deben observarse al despliegue
​pueden ser añadidos o eliminados en cualquier momento. Por defecto la creación de un
de MongoDB:
índice es una operación de bloqueo en MongoDB. Debido a que la creación de índices

puede ser mucho tiempo y recursos, MongoDB ofrece una opción para la creación de
• Una colección no puede tener más de 64 índices.
nuevos índices como una operación en segundo plano en ambos los miembros primarios
• Las entradas de índice no pueden superar los 1.024 bytes.
y secundarios de un conjunto de réplicas. Cuando la opción de fondo está activada, el

tiempo total para crear un índice será mayor que si el índice fue creado en el primer • El nombre de un índice no debe superar los 125 caracteres (incluyendo su

plano, pero todavía será posible consultar la base de datos, mientras que la creación de espacio de nombres).

índices.
• Dentro de la memoria de clasificación de datos sin un índice está limitado a 32 MB.

Esta operación es muy intensivo de la CPU, la memoria y en las clases indican un

índice debe ser creado para optimizar estas consultas.

Una práctica común es la construcción de los índices en el primer plano, por

primera vez en los secundarios y luego en el primario degradado. Los errores comunes con respecto a los índices
Operaciones y Gerente de la nube automatizar este proceso.
Los siguientes consejos pueden ayudar a evitar algunos errores comunes con

respecto a los índices:

Además, varios índices se pueden construir al mismo tiempo en el fondo. Referirse a Generar

índice de reproducción conjuntos de documentación para aprender más acerca de las


• Utilice un índice compuesto en lugar de índice de utilizar un
índice compuesto en lugar de intersección index:
cruce: Para un mejor rendimiento cuando se consultan a través de múltiples
consideraciones para la creación de índices y mantenimiento en curso.
predicados, índices compuestos estarán generalmente una mejor opción.

• Los índices
Los índicescompuestos
compuestos: Los índices compuestos se definen y
La gestión de índices con el motor MongoDB WiredTiger
clasificadas por campo. Por lo tanto, si un índice compuesto se define
almacenamiento
por apellido nombre, y ciudad, consultas que especifican apellido o apellido, y primer
El motor de almacenamiento WiredTiger ofrece optimizaciones que usted puede nombre
tomar ventaja de:
será capaz de utilizar este índice, pero las consultas que tratan de

8
búsqueda basada en ciudad no será capaz de beneficiarse de este índice. a través de su caché interna pero también se beneficia de páginas almacenados en la

Retire los índices que son los prefijos de otros índices. caché del sistema de archivos.

El conjunto de datos e índices que se tiene acceso durante las operaciones normales

• Llow índicesde
ow índices deselectividad:
selectividadUn índice debería reducir radicalmente el conjunto se llama el conjunto de trabajo. Es una buena práctica que el conjunto de trabajo

de posibles documentos para elegir. Por ejemplo, un índice en un campo que encaja en la memoria RAM. Puede ser el caso de que el conjunto de trabajo

indica el género no es tan beneficioso como un índice en el código postal, o representa una fracción de la totalidad de la base de datos, tal como en aplicaciones

mejor aún, el número de teléfono. en las que acceder a los datos relacionados con los acontecimientos recientes o

productos populares más comúnmente.

• expr regular regulares


Expresiones ESIONES: Los índices se ordenan por valores,

por lo tanto comodines principales son ineficientes y pueden resultar en exploraciones


fallos de página se producen cuando MongoDB intenta acceder a datos que no ha sido
de índices completos. comodines se arrastran pueden ser eficientes si hay suficientes
cargado en la memoria RAM. Si no hay memoria libre entonces el sistema operativo
caracteres iniciales mayúsculas y minúsculas en la expresión.
puede localizar la página en el disco y cargarlo en memoria directamente. Sin embargo,

si no hay memoria disponible, el sistema operativo debe escribir una página que está en

• Negación
Negación: consultas desigualdad puede ser ineficiente con respecto a los índices. la memoria en el disco, y luego leer la página solicitada en su memoria cuando es

Como la mayoría de los sistemas de bases de datos, MongoDB no indexa la requerido por la aplicación. Este proceso puede llevar mucho tiempo y será

ausencia de valores y condiciones de negación puede requerir el escaneo de todos significativamente más lento que el acceso a los datos que ya se encuentra residente en

los documentos. Si la negación es la única condición y no es selectiva (por ejemplo, memoria.

la consulta de una tabla de pedidos, donde el 99% de los pedidos están completos,

para identificar a los que no se han cumplido), tendrán que ser escaneados todos
Algunas operaciones pueden purgar inadvertidamente un gran porcentaje del conjunto de
los registros.
trabajo de la memoria, que afecta negativamente al rendimiento. Por ejemplo, una consulta

que analiza todos los documentos en la base de datos, donde la base de datos es mayor

que la RAM disponible en el servidor, hará que los documentos sean leídos en la memoria y
• Eliminar
Eliminar loslos índices
índices innecesarios
innecesarios: Los índices son de uso intensivo de recursos: a
pueden dar lugar a porciones del conjunto de trabajo que se escriben en el disco. Otros
pesar de que consumen memoria RAM, y como campos se actualizan sus índices
ejemplos incluyen diversas operaciones de mantenimiento tales como la compactación o la
asociados deben ser mantenidos, incurriendo en gastos indirectos adicionales / S
reparación de una base de datos, y la reconstrucción de índices.
de disco. Para comprender la eficacia de los índices existentes utilizar las

estrategias descritas anteriormente.

Si la base de datos del conjunto de trabajo tamaño excede la memoria RAM disponible de
• índices parciales
índices parciales: Si sólo un subconjunto de documentos necesitan ser incluidos en
su sistema, la posibilidad de aumentar la capacidad de memoria RAM o la adición de
un índice dado entonces el índice se puede hacer
sharding la base de datos a través de servidores adicionales. Para una discusión sobre
parcial mediante la especificación de una expresión de filtro. por ejemplo, si un
este tema, consulte la sección sobre sharding las mejores prácticas. Es mucho más fácil
índice sobre la ID de usuario campo sólo es necesaria para la consulta de órdenes
de implementar sharding antes se consumen recursos del sistema, por lo que la
abiertas, entonces se puede supeditarse a la condición de fin se establece en en
planificación de capacidad es un elemento importante en la entrega de proyectos exitosos.
progreso. De esta manera, los índices parciales mejorar el rendimiento de consulta y

reducir al mínimo los gastos generales.

Referirse a documentación para configurar el tamaño de la caché interna

WiredTiger.
Conjuntos de trabajo

MongoDB hace un amplio uso de RAM para acelerar las operaciones de bases de

datos. En MongoDB, todos los datos se lee y manipulado a través de las

representaciones en memoria de los datos. El motor de almacenamiento

WiredTiger gestiona los datos

9
Configuración MongoDB y Configuración Migración de datos

Los usuarios deben evaluar la mejor manera de modelar sus datos para sus aplicaciones

Preparar en lugar de la simple importación de las exportaciones de archivos planos de sus

sistemas heredados. En un entorno de base de datos relacional tradicional, los datos


MongoDB ofrece repositorios de paquetes .deb y .rpm para una configuración consistente,
tiende a ser desplazado entre los sistemas que utilizan archivos planos delimitados como
actualización, integración de sistemas, y la configuración. Este software utiliza los mismos
CSV. Si bien es posible ingerir datos en MongoDB desde archivos CSV, esto puede ser
binarios como los paquetes tarball proporcionados desde el Descargas MongoDB página .
en realidad sólo el primer paso en un proceso de migración de datos. Es el caso típico de
El paquete MongoDB Windows está disponible a través del binario descargable instalada
que el modelo de datos del documento de MongoDB ofrece ventajas y alternativas que no
a través de su MSI. Binarios para OS X también se proporcionan en un archivo
existen en un modelo de datos relacional.
comprimido 1.

los mongoimport y mongoexport herramientas se proporcionan con MongoDB para la carga


Configuración de la base de datos
simple o exportación de datos en formato JSON o CSV. Estas herramientas pueden ser

El usuario debe almacenar las opciones de configuración en mongod' s fichero de útiles en el movimiento datos entre sistemas como un paso inicial. Otras herramientas

configuración. Esto permite a los administradores de sistemas para implementar como mongodump y mongorestore, o Operaciones Manager y Administrador de copias de

configuraciones consistentes en racimos enteros. Los archivos de configuración son seguridad en la nube son útiles para los datos entre diferentes sistemas de MongoDB en

compatibles con todas las opciones proporcionadas como opciones de línea de comandos movimiento.

para mongod. herramientas populares como Ansible, Chef, y de marionetas se pueden

utilizar para casos provisión MongoDB. El aprovisionamiento de topologías complejas que


Hay muchas opciones para migrar datos de archivos planos en sofisticados
comprenden conjuntos de réplicas y cúmulos fragmentados puede ser automatizado por
documentos JSON, incluyendo mongoimport, scripts personalizados, herramientas
los las plataformas Administrador de Operaciones Manager y la nube, que se discuten más
ETL, y desde dentro de una misma aplicación que se puede leer del RDBMS
adelante en esta guía.
existentes y luego escribir una versión JSON del documento de nuevo a MongoDB.

actualizaciones
Hardware
Los usuarios deben actualizar el software tan a menudo como sea posible para que

puedan aprovechar las últimas características, así como las actualizaciones de estabilidad Las siguientes recomendaciones están destinadas únicamente a proporcionar una

o correcciones de errores. Las actualizaciones deben ser probados en entornos no guía de alto nivel para el hardware para una implementación de MongoDB. La

productivos para validar comportamiento de la aplicación correcta. configuración específica de su hardware será dependiente de sus datos, consultas,

SLA rendimiento, requisitos de disponibilidad, y las capacidades de la infraestructura

de hardware subyacente. MongoDB tiene una amplia experiencia ayudando a los


Los clientes pueden instalar actualizaciones sucesivas sin incurrir en ningún tiempo de
clientes para seleccionar hardware y ajustar sus configuraciones y con frecuencia
inactividad, ya que cada miembro de un conjunto de réplicas se puede actualizar de forma
trabajan con los clientes para planificar y optimizar sus sistemas de MongoDB. El
individual sin afectar la disponibilidad de bases de datos. Es posible para cada miembro de
chequeo, operaciones rápidas de inicio y disponibilidad de la producción paquetes de
un conjunto de réplicas para ejecutarse en diferentes versiones de MongoDB, y con
consultoría puede ser especialmente valioso para ayudar a seleccionar el hardware
diferentes motores de almacenamiento. Como medida de precaución, el notas de la versión
adecuado para su proyecto.
MongoDB debe ser consultado para determinar si hay un orden particular de pasos de

actualización que debe ser seguido, y si hay cualquier incompatibilidad entre dos versiones

específicas. Las actualizaciones se pueden automatizar con Operaciones y Gerente de la

nube.

MongoDB fue diseñado específicamente con el hardware de los productos

básicos en mente y tiene unos requisitos de hardware o limitaciones. En términos

generales, MongoDB aprovechará más RAM y la velocidad de reloj de CPU más

rápidas.

1. OS X está pensado como un desarrollo más que un entorno de producción

10
Memoria Al igual que con la creación de redes, utilizar controladores paravirtualizados para su

almacenamiento cuando se ejecutan en máquinas virtuales.


MongoDB hace un amplio uso de RAM para aumentar el rendimiento. Idealmente, el

conjunto de trabajo encaja en la memoria RAM. Como regla general, cuanta más memoria

RAM, mejor. Como las cargas de trabajo comienzan a acceder a los datos que no está en Compresión
la memoria RAM, el rendimiento de MongoDB se degradará, como lo hará para cualquier
MongoDB soporta de forma nativa la compresión cuando se utiliza el motor de
base de datos. El motor de almacenamiento por defecto WiredTiger da más control de la
almacenamiento por defecto WiredTiger. La compresión reduce la huella de
memoria, permitiendo a los usuarios configurar la cantidad de RAM para asignar a la caché
almacenamiento por tanto como 80%, y permite una mayor escalabilidad de
interna WiredTiger - por defecto a 60% de RAM menos 1 GB. WiredTiger también explota
almacenamiento de I / O como un menor número de bits se leen desde el disco. Al igual
caché de sistema de archivos del sistema operativo que crecerá para utilizar la memoria
que con cualquier algoritmo de compresión, administradores comercio eficiencia de
que queda disponible.
almacenamiento de carga de la CPU, y lo que es importante para poner a prueba los

efectos de la compresión en su propio entorno.

MongoDB ofrece a los administradores una gama de opciones de compresión de


Almacenamiento
documentos, índices y la revista. El algoritmo de compresión Snappy predeterminada

MongoDB no requiere almacenamiento compartido (por ejemplo, redes de área de proporciona un buen equilibrio entre alta documento y relación de compresión revista

almacenamiento). MongoDB puede utilizar el almacenamiento local conectado, así como (típicamente alrededor de 70%, dependiente de los datos) con baja sobrecarga de la

unidades de estado sólido (SSD). La mayoría de los patrones de acceso a disco en CPU, mientras que la biblioteca zlib opcional será lograr una mayor compresión, pero

MongoDB no tienen propiedades secuenciales, y como resultado, los clientes pueden incurre en ciclos de CPU adicionales como datos es escribir y leer desde el disco. Índices

experimentar una mejora sustancial de rendimiento mediante el uso de los SSD. Los buenos en WiredTiger utiliza compresión de prefijo, que sirve para reducir la huella en la memoria

resultados y precio fuerte para el rendimiento se han observado con SATA SSD y con PCIe. de almacenamiento para el índice, liberando más del conjunto de trabajo para los

unidades de hilado de materias primas SATA son comparables a las unidades de hilado documentos de acceso frecuente. Los administradores pueden modificar los ajustes de

mayores costos debido a los patrones de acceso no secuencial de MongoDB: en lugar de compresión por defecto para todas las colecciones. La compresión también se puede

gastar más en unidades giratorias caros, que el presupuesto puede ser más efectivamente especificar en función de cada colección durante la creación de la colección.

invertido en aumentar la memoria RAM o el uso de los SSD. Otra ventaja de utilizar los SSD

es la mejora en el rendimiento del flash a través de unidades de disco duro si el conjunto de

trabajo ya no cabe en la memoria.

UPC
Mientras que los archivos de datos se benefician de los SSD, archivos de diario de
MongoDB ofrecerá mejor rendimiento en CPUs más rápidas. El motor de
MongoDB son buenos candidatos para discos rápidos, convencionales debido a su alto
almacenamiento MongoDB WiredTiger es capaz de saturar los recursos del
perfil de escritura secuencial. Vea la sección de diario más adelante en esta guía para
procesador de múltiples núcleos. El motor de cifrado de almacenamiento añade un
obtener más información.
promedio de 10% de arriba en comparación con WiredTiger debido a una parte de la

La mayoría de las implementaciones de MongoDB deben utilizar RAID-10. RAID-5 y CPU disponible que se utiliza para el cifrado / descifrado - el impacto real será

RAID-6 tienen limitaciones y puede no proporcionar un rendimiento suficiente. RAID-0 dependiente en el set y la carga de trabajo de sus datos.

ofrece buena lectura y el rendimiento de escritura, pero insuficiente tolerancia a fallos.

conjuntos de réplicas de MongoDB permiten despliegues para proporcionar disponibilidad

más fuerte para los datos, y deben ser considerados con RAID y otros factores para cumplir
Proceso por sistema
con el SLA disponibilidad deseada.

Para un mejor rendimiento, los usuarios deben ejecutar uno mongod

proceso por host. Con el tamaño adecuado y la asignación de recursos


Si se utiliza Amazon EC2 a continuación, seleccione el tipo de IOPS requerida usando
utilizando tecnologías de virtualización o contenedores, múltiples procesos
la opción aprovisionada IOPS al configurar el almacenamiento para proporcionar un
MongoDB pueden ejecutar en un solo servidor, sin competir por los recursos.
rendimiento de almacenamiento consistente.
Utilizando el WiredTiger

11
motor de almacenamiento, los administradores tendrán que calcular el tamaño de la para desplegar una mongo ejemplo en cada uno de sus servidores de aplicaciones.

caché apropiada para cada instancia mediante la evaluación de qué porción del total El número óptimo de mongo servidores serán determinados por la carga de trabajo

de RAM cada uno de ellos debe utilizar, y dividiendo el valor por defecto tamaño del específica de la aplicación: en algunos casos mongo simplemente encamina

caché entre cada uno. consultas para el fragmento apropiado, y en otros casos mongo Debe ellas ruta a

múltiples fragmentos y fusionar los conjuntos de resultados. Para estimar los


Disponibilidad, varios miembros de la misma conjunto de réplicas nunca deben ser
requisitos de memoria para cada uno mongo,
co-ubicados en el mismo hardware físico o compartir cualquier punto único de fallo,

como una fuente de alimentación. Cuando se ejecuta en la nube, hacer uso de la


considera lo siguiente:
capacidad de su proveedor de desplegar a través de zonas de disponibilidad para

garantizar que los miembros de cada conjunto de réplicas son geográficamente


• El tamaño total de los metadatos fragmento que se almacena en caché
dispersa y no comparten el mismo poder, hipervisor o red. los servicio de base de
mongo
datos MongoDB Atlas tendrá de todo esto para usted.
• 1 MB para cada conexión de aplicación

los mongo proceso utiliza la memoria RAM limitada y se beneficiará más de

las CPU y redes rápidas.

El tamaño de los mongo y Procesos de configuración del servidor

Para los sistemas fragmentados, procesos adicionales se deben implementar junto Sistema de archivos del sistema operativo y

con el mongod procesos de almacenar datos:

mongo routers de consulta y servidores de configuración . Fragmentos son particiones


Las configuraciones para Linux
físicas de datos distribuidas en varios servidores. Para más información sobre sharding,

Sólo las versiones de 64 bits de los sistemas operativos son compatibles para su uso
consulte la sección sobre la escala horizontal de fragmentos. Las consultas se enrutan a
con MongoDB.
los fragmentos apropiados usando un proceso llamado enrutador consulta mongo. Los

metadatos utilizado por mongo para determinar dónde encaminar una consulta es
Versión 2.6.36 del kernel de Linux o temprano se debe utilizar para MongoDB en
mantenida por los servidores de configuración. Ambos mongo
la producción.

y los procesos del servidor de configuración son ligeros, pero cada uno tiene algo sistemas de archivos XFS uso; evitar EXT3. ** EXT3 es bastante antiguo y no es óptimo

diferentes requisitos de tamaño. para la mayoría de las cargas de trabajo de bases de datos. Con el motor de

almacenamiento WiredTiger, se recomienda encarecidamente el uso de XFS para evitar


Dentro de un fragmento, MongoDB más particiones documentos en trozos. MongoDB
problemas de rendimiento que se han observado cuando se utiliza con EXT4 WiredTiger.
mantiene metadatos acerca de la relación de trozos de fragmentos en la base de datos de

configuración. Tres o más servidores de configuración se mantienen en despliegues

fragmentados para asegurar la disponibilidad de los metadatos en todo momento. acceso a Para MongoDB en Linux utilizar las siguientes configuraciones

los metadatos fragmento es poco frecuente: cada uno mongo recomendadas:

• Apagar un momento para el volumen de almacenamiento con los archivos de


mantiene una caché de estos datos, que se actualiza periódicamente por procesos de base de datos.

fondo cuando trozos se dividen o migran a otros fragmentos, típicamente durante las
• No utilice páginas grandes páginas de memoria virtual, MongoDB funciona
operaciones de equilibrado como el clúster se expande y contrae. Por lo tanto, el
mejor con las páginas de memoria virtual normales.
hardware para un servidor de configuración se debe centrar en la disponibilidad: fuentes

de alimentación redundantes, interfaces de red redundantes, controladores RAID

redundantes y almacenamiento redundante debe ser utilizado. servidores de • Desactivar NUMA en su BIOS o invocar mongod en la NUMA

configuración se pueden implementar como un conjunto de réplicas con un máximo de 50 desactivado.


miembros.
• Asegurarse de que leer por adelantado la configuración de los dispositivos de bloque que
almacenan los archivos de base son relativamente pequeñas ya que la mayoría de
acceso es no secuencial. Por ejemplo, establecer
normalmente múltiple mongo casos se utilizan en un sistema de MongoDB

fragmentada. No es raro que los usuarios MongoDB leer por adelantado a 32 (16 KB) es un buen punto de partida.

12
• Sincronizar el tiempo entre sus anfitriones - por ejemplo, el uso de NTP . Esto es otros temas está disponible en el MongoDB Seguridad tutoriales . Revise la sección de

especialmente importante en racimos MongoDB fragmentados. Esto también se Seguridad más adelante en esta guía para obtener más información sobre las mejores

aplica a los clientes de VM que se ejecutan los procesos de MongoDB. prácticas en materia de seguridad de su despliegue.

MongoDB ofrece listas blancas IP, lo que permite a los administradores configurar

Linux proporciona controles para limitar el número de recursos y archivos MongoDB para aceptar solamente conexiones externas de direcciones IP o rangos

abiertos en una base por proceso y por usuario. Los ajustes por defecto pueden aprobados CIDR que se han añadido explícitamente a la lista blanca.

ser insuficientes para MongoDB. Generalmente MongoDB debe ser el único

proceso en un sistema, VM, o recipiente para asegurar que no hay contención


Cuando se ejecutan en máquinas virtuales, el uso conductores
con otros procesos.
paravirtualizadas Para implementar un interfaces de red y de almacenamiento

optimizados que pasa instrucciones entre la máquina virtual y el hipervisor con

Mientras que cada despliegue tiene sus propios requisitos, las siguientes una sobrecarga mínima.

configuraciones son un buen punto de partida para

mongod y mongo instancias. Utilizar ulimit para aplicar esta configuración:


compresión de la red

Como una base de datos distribuida, MongoDB se basa en transporte de red


• - f ( tamaño de archivo): ilimitado
eficiente durante la consulta de rutas y la replicación entre nodos. MongoDB

• - t ( tiempo de CPU): ilimitado comprime todo el tráfico de red entre el cliente y la base de datos, y el tráfico

entre los nodos del clúster. Basado en el algoritmo de compresión rápido, el


• - v ( la memoria virtual): ilimitado
tráfico de red puede ser comprimido hasta en un 70%, que proporciona
• - n ( archivos abiertos): por encima de 20.000
importantes ventajas de rendimiento en entornos de ancho de banda limitado,

• - m ( tamaño de la memoria): ilimitado y la reducción de costes de red.

• - u ( procesos / hilos): por encima de 20.000

Para más información sobre el uso de ulimit para establecer los límites de recursos
Comprimir y descomprimir el tráfico de red requiere recursos de la CPU -
para MongoDB, vea la página de documentación sobre MongoDB
normalmente bajo porcentaje único dígito por encima. La compresión es ideal
Valores de ulimit Linux .
para aquellos entornos en los que el rendimiento es un cuello de botella por el

ancho de banda, y suficiente capacidad de CPU disponible.

Redes

Siempre ejecutar MongoDB en un entorno de confianza con las reglas de red que

impiden el acceso de todas las entidades desconocidas. Hay un número finito de


Recomendaciones probada en producción
procesos predefinidos que se comunican con un sistema de MongoDB: servidores de
Las últimas recomendaciones sobre configuraciones específicas para los sistemas
aplicaciones, los procesos de supervisión, y otros procesos MongoDB se ejecutan en
operativos, sistemas de archivos, dispositivos de almacenamiento, y otros temas
un conjunto de réplicas o clúster fragmentada.
relacionados con el sistema se mantienen en el MongoDB Notas de producción .

De la nota de MongoDB 3.6 en adelante, se une a MongoDB localhost por

defecto. Como resultado, todas las conexiones de red a la base de datos,

será negado a menos que expresamente configurado por un administrador. Revisar


disponibilidad continua
la documentación . Si el sistema tiene más de una interfaz de red, enlace

procesos MongoDB a la interfaz de red privada o interna. En condiciones normales de funcionamiento, el sistema MongoDB llevará a cabo de

acuerdo con el rendimiento y objetivos funcionales del sistema. Sin embargo, de vez en

cuando ciertos fallos inevitables o acciones no deseadas pueden afectar a un sistema

de maneras adversas. Los discos duros, tarjetas de red, fuentes de alimentación,


Información detallada sobre números de puerto por defecto para MongoDB,

cortafuegos Configuración para MongoDB, VPN y

13
y otros componentes de hardware se producirá un error. Estos riesgos pueden ser lee y escribe. Basta con colocar los archivos de diario en un dispositivo de

mitigados con componentes de hardware redundantes. Del mismo modo, un sistema de almacenamiento independiente normalmente proporciona algunas mejoras de

MongoDB proporciona redundancia configurable a través de sus componentes de software, rendimiento mediante la reducción de contención de disco.

así como la redundancia de datos configurable.


Aprender más acerca de diario de la documentación.

Redundancia de datos
en diario
MongoDB mantiene múltiples copias de datos, llamadas conjuntos de réplicas , Mediante la
MongoDB implementa un diario de escritura anticipada de las operaciones para permitir la
replicación nativa. Los usuarios deben utilizar conjuntos de réplicas para ayudar a prevenir
recuperación de bloqueo rápido y durabilidad en el motor de almacenamiento. En el caso de
el tiempo de inactividad de base de datos. failover Replica está totalmente automatizado en
una caída del servidor, entradas de diario se recuperan cuando se reinicia el proceso del
MongoDB, por lo que no es necesario intervenir manualmente para recuperar los nodos en
servidor.
el caso de un fallo.

La revista WiredTiger asegura que las escrituras se conservan en disco entre los puestos
Un conjunto de réplicas consiste en múltiples nodos de réplica. En cualquier momento dado,
de control. WiredTiger utiliza para eliminar los puntos de control de datos en el disco de
un miembro actúa como la réplica principal y los otros miembros actuar como réplicas
forma predeterminada cada 60 segundos después de la descarga antes o después de 2 GB
secundario. Si el miembro del conjunto de réplicas primaria sufre un corte de luz (por
de datos se han escrito. De este modo, por defecto, WiredTiger puede perder más de 60
ejemplo, un fallo de alimentación, fallo de hardware, partición de red), uno de los miembros
segundos de escritura si se ejecuta sin diario - aunque el riesgo de esta pérdida será
secundarios es elegido automáticamente a primaria, normalmente en unos segundos, y las
típicamente mucho menos si se utiliza la replicación a otros nodos para la durabilidad
conexiones de cliente conmutación por error automáticamente a esa nueva primaria.
adicional. El WiredTiger escribir por delante de registro no es necesario para mantener los
Cualquier escritura que no podían ser atendidos durante la elección pueden ser reintentar
archivos de datos en un estado consistente en el caso de un cierre sucio, y lo que es seguro
automáticamente por los conductores una vez que se establece una nueva primaria, con el
para funcionar sin diario habilitado, aunque para garantizar la durabilidad de la "réplica
servidor MongoDB hacer cumplir exactamente una vez el procesamiento de la semántica.
seguro" escribir preocupación debe ser utilizado (véase la sección de escritura
Reintentable escribe permiten MongoDB para asegurar la disponibilidad de escritura, sin
disponibilidad adelante en la guía para obtener más información).
sacrificar la consistencia de los datos.

Sofisticados algoritmos controlan el proceso de elección, asegurando sólo el


WiredTiger proporciona la capacidad de comprimir la revista en el disco, lo que reduce el
miembro secundario más adecuado es promovido a primaria, y reduciendo el
espacio de almacenamiento.
riesgo de conmutaciones innecesarias (también conocido como "falsos

Garantías adicionales, el administrador puede configurar la preocupación por diario positivos"). El algoritmo de elección procesa una serie de parámetros que

de escritura, por lo que MongoDB reconoce la operación de escritura sólo después incluyen el análisis de historias para identificar aquellos miembros de conjunto

de confirmar los datos de la revista. Cuando se utiliza una preocupación de escritura de réplicas que han aplicado las más recientes actualizaciones desde el estado

superior a 1 y el protocolo de replicación v1 2, la aplicación no recibirá un acuse de de primaria, latido del corazón y la conectividad, y las prioridades definidas por

recibo hasta que la escritura ha registrado en el diario en el número especificado de el usuario asignados a los miembros del conjunto de réplicas. Por ejemplo, los

secundarios y cuando se utiliza una preocupación de escritura de “mayoría” también administradores pueden configurar todas las réplicas ubicadas en un centro de

debe ser articulado en el primario. datos secundario para ser candidatos para la elección sólo si el centro de datos

principal falla. Una vez que el nuevo miembro del conjunto de réplica principal ha

sido elegido, los miembros restantes secundarios se inician automáticamente la

replicación de la nueva primaria. Si el primario original vuelve a estar en línea,


Localización de archivos de revistas y archivos de datos MongoDB en matrices de

almacenamiento separadas puede mejorar el rendimiento. Los patrones de E / S para

la revista son muy secuencial en la naturaleza y son muy adecuadas para los

dispositivos de almacenamiento que están optimizados para las escrituras secuenciales

rápidas, mientras que los archivos de datos son muy adecuadas para los dispositivos

de almacenamiento que están optimizados para al azar

2. Enhanced (v1) protocolo de replicación - las versiones anteriores se conocen como V0

14
El número de nodos de réplica en un conjunto de réplicas MongoDB es configurable, y un Multi-Centro de duplicación de datos
mayor número de nodos de réplica proporciona una mayor protección contra el tiempo de
MongoDB conjuntos de réplica permiten diseños flexibles de implementación, tanto dentro
inactividad de base de datos en caso de múltiples fallos de la máquina. Mientras que un
como fuera de los centros de datos que dan cuenta de la falta en el servidor, estante, y los
nodo está inactivo MongoDB va a seguir funcionando. El DBA o administrador de sistemas
niveles regionales. En el caso de un desastre natural o de origen humano, el fallo de un
deben trabajar para recuperar o reemplazar la réplica fallado con el fin de mitigar la
solo centro de datos puede ser acomodado sin tiempo de inactividad cuando conjuntos de
reducción temporal de la capacidad de recuperación del sistema.
réplicas MongoDB se despliegan a través de los centros de datos. Centro de duplicación

de múltiples datos también es totalmente compatible como un servicio gestionado en

MongoDB Atlas.

conjuntos de réplicas también proporcionan flexibilidad operativa, proporcionando los

administradores de sistemas con una opción para la realización de hardware y

mantenimiento de software sin tener todo el sistema. Usando una actualización progresiva,

los miembros secundarios del conjunto de réplicas se pueden actualizar a su vez, antes de
Escribe Garantías
que el administrador degrada el maestro para completar la actualización. Este proceso está
MongoDB permite administradores especificar el nivel de garantía de persistencia
completamente automatizado utilizando las Operaciones Gestor o Administrador de Cloud -
cuando la emisión de escrituras en la base de datos, que se llama el escribir
discutido más adelante en esta guía.
preocupación . Las siguientes opciones se pueden configurar en una de cada

conexión, por base de datos, por recogida, o incluso por base de operación. Las

opciones son las siguientes:


Tenga en cuenta los siguientes factores al desarrollo de la arquitectura para

el conjunto de réplicas:

• Asegúrese de que los miembros del conjunto de réplicas siempre serán capaces de
• WWrite Ac rito confirmados:
knowledged: Esta es la preocupación de escritura predeterminado. los mongod

confirmará la ejecución de la operación de escritura, permitiendo al cliente para


elegir a una primaria. Una mayoría de miembros de clúster estricta de votación

debe estar disponible y en contacto entre sí para elegir un nuevo primario. Por lo coger la red, una llave duplicada, documento de validación, y otras excepciones.

tanto se debe ejecutar un número impar de miembros. Debe haber por lo menos

tres réplicas con copias de los datos en un conjunto de réplicas. • Diario Ac Diarioknowledged:
confirmados:
La mongod confirmará la operación de escritura

sólo después de haber vaciado la operación de la revista en el primario. Esto

confirma que la operación de escritura puede sobrevivir a una mongod Crash y

• La mejor práctica es tener un mínimo de 3 centros de datos por lo que la mayoría asegura que la operación de escritura es durable en el disco.

se mantiene después de la pérdida de cualquier sitio único. Si sólo 2 sitios son

posibles luego saber dónde está la mayoría de los miembros será en el caso de
• Réplica
Ac un confirmados:
Réplica knowledged: También es posible esperar a que el reconocimiento de
las particiones de red y tratar de asegurarse de que el conjunto de réplicas puede
escritura a otros miembros del conjunto de réplicas. MongoDB admite la escritura a un
elegir a una primaria de los miembros ubicados en ese centro de datos primario.
determinado número de réplicas. Esto también asegura que la escritura se escribe en el

diario en los secundarios. Debido a que las réplicas se pueden implementar a través de

bastidores dentro de los centros de datos ya través de múltiples centros de datos,

• Considerar la inclusión de un miembro oculto en el conjunto de réplicas. asegurando escrituras se propagan a réplicas adicionales pueden proporcionar

los miembros del conjunto de réplicas ocultos nunca puede convertirse en una primaria durabilidad extremadamente robusto.

y se utilizan normalmente para las copias de seguridad, o para ejecutar aplicaciones

tales como análisis e informes que requieren aislamiento de las cargas de trabajo

operativas normales. miembros del conjunto de réplicas retardadas también puede ser
• Mayoria:
Mayoría: Esta preocupación de escritura espera a que la escritura que debe
desplegado que aplicar los cambios en un retardo de tiempo fijo para proporcionar la
aplicarse a la mayoría de los miembros del conjunto de réplicas. Esto también
recuperación de funcionamiento no intencionado, tales como dejar caer
asegura que la escritura se registran en el diario de estas réplicas - incluyendo en
accidentalmente una colección.
el primario.

• Centro de
undatos A de
Centro wareness:
DatAwar eness: El uso de conjuntos de etiquetas, sofisticado

Más información sobre los conjuntos de réplica se puede encontrar en la políticas pueden ser creados para asegurar que los datos se escriben en

Replicación MongoDB página de documentación. combinaciones específicas de réplicas antes

15
reconocimiento de éxito. Por ejemplo, puede crear una política que requiere MongoDB ofrece un nivel de readConcern “linealizables”. El linealizable leer

escritura que se escriben en al menos tres centros de datos en dos continentes, o preocupación asegura que un nodo sigue siendo el principal miembro del conjunto de

dos servidores a través de dos bastidores en un centro de datos específico. Para réplicas en el momento de la lectura, y que los datos que devuelve no se revertirá si otro

obtener más información, consulte la documentación sobre MongoDB nodo es elegido posteriormente como el nuevo miembro primario. La configuración de

este nivel de lectura preocupación puede tener un impacto significativo en la latencia, por

Conciencia del Centro de Datos . lo tanto, una maxTimeMS valor debe ser suministrado con el fin de tiempo de espera de

operaciones de larga ejecución.

leer Preferencias

Lectura de la réplica principal es la configuración por defecto ya que garantiza la


La consistencia causal
coherencia. Si se requiere un mayor rendimiento de lectura, se recomienda tomar ventaja

de auto-sharding de MongoDB para distribuir las operaciones de lectura a través de coherencia causal - garantiza que cada operación de lectura dentro de una sesión de

múltiples miembros primarios. Con MongoDB a leer los niveles de preocupación, se cliente siempre ver la operación de escritura anterior, independientemente de la réplica está

analizan a continuación, los administradores pueden sintonizar MongoDB leer sirviendo la petición. Mediante la aplicación estricta de pedidos, causal de las operaciones

consistencia a través de los miembros del conjunto de réplicas. dentro de una sesión, la coherencia causal asegura que cada lectura es siempre

lógicamente consistente, permitiendo monótona lee de un sistema distribuido - garantías de

que no puede ser satisfecha por la mayoría de las bases de datos de múltiples nodos.

coherencia causal permite a los desarrolladores para mantener los beneficios de la


La distribución de las operaciones de lectura a través de los miembros del conjunto de
consistencia de los datos estricta impuesta por el legado de un solo nodo bases de datos
réplicas puede mejorar la escalabilidad de lectura del despliegue MongoDB. Por ejemplo,
relacionales, mientras que la modernización de su infraestructura para aprovechar los
el análisis y aplicaciones Business Intelligence (BI) pueden ejecutar consultas contra una
beneficios de escalabilidad y disponibilidad de plataformas de datos distribuidas modernas.
réplica secundaria, reduciendo así sobrecarga en el primario y permitiendo MongoDB

para servir a las cargas de trabajo operacional y analítico de un solo despliegue. Otra

opción de configuración dirige lee a la réplica más cercano para el usuario en función de

la distancia de ping, lo que puede disminuir significativamente la latencia de las

operaciones de lectura en aplicaciones distribuidas a nivel mundial a expensas de la

lectura de datos potencialmente un poco rancio.


La escala de un sistema de MongoDB

Escala horizontal con Sharding automática

Una opción muy útil es primaryPreferred, qué temas se lee a una réplica

secundaria sólo si el principal no está disponible. Esta configuración permite la Para satisfacer las necesidades de las aplicaciones con grandes conjuntos de datos y los

disponibilidad continua de lecturas durante el proceso de conmutación por error requisitos de alto rendimiento, MongoDB ofrece escalabilidad horizontal para bases de

corto. datos de bajo costo, productos de hardware o infraestructura en la nube usando una

técnica llamada sharding . Sharding particiona automáticamente y distribuye datos a través


Para más información sobre el tema de lecturas configurables, vea la página de
de varias instancias físicas denominadas fragmentos. Cada fragmento está respaldado por
documentación sobre MongoDB Leer Preferencia conjunto de réplicas .
un conjunto de réplicas de proporcionar siempre la disponibilidad y el aislamiento carga de

trabajo. Sharding permite a los desarrolladores a escala sin problemas la base de datos

como sus aplicaciones crecen más allá de los límites de hardware de un único servidor, y

lo hace sin añadir complejidad a la aplicación. Para responder a la demanda de carga de


leer preocupaciones
trabajo, los nodos pueden ser añadidos o eliminados de la agrupación en tiempo real, y
Para asegurar el aislamiento y la coherencia, la readConcern se puede configurar MongoDB se reequilibrar automáticamente los datos en consecuencia, sin intervención

para mayoria para indicar que los datos sólo se deben devolver a la solicitud si se manual.

ha replicado en la mayoría de los nodos en el conjunto de réplicas, y por tanto no

se pueden revertir en el caso de un fallo.

dieciséis
Sharding es transparente a las aplicaciones; si hay uno o un millar de fragmentos, • Límite
Limitación: ación:
de memoria RAM RAMEl tamaño de activos de trabajo establecidos índices

el código de la aplicación para la consulta MongoDB sigue siendo el mismo. más del sistema se espera que exceda la capacidad de la cantidad máxima

Aplicaciones emitir consultas para una enrutador consulta que despacha la consulta de RAM en el sistema.

a los fragmentos apropiados. Para consultas de valores clave que se basan en la


• Límite / OI /Limitación:
discode disco S de ación: El sistema tendrá una gran
tecla fragmento, el router consulta enviará la consulta al fragmento que gestiona el
cantidad de actividad de escritura, y el sistema operativo no será capaz de escribir
documento con la clave solicitada. Al utilizar sharding a base de gama, las
datos lo suficientemente rápido como para satisfacer la demanda, o de E / S de
consultas que especifican los rangos de la clave única fragmento se envían a
disco limitarán la rapidez con que las escrituras se pueden lavar en el disco.
fragmentos que contienen documentos con valores dentro del rango. Para las

consultas que no utilizan la clave fragmento, el router consulta transmitirá la


• Límite
almacenamiento
de almacenamientoación:
Limitación:
de El conjunto de datos crecerá a superar
consulta a todos los fragmentos, la agregación y ordenar los resultados según el
la capacidad de almacenamiento de un solo nodo en el sistema.
caso. routers de consulta se pueden utilizar múltiples dentro de un grupo de

MongoDB, con el número apropiado rige por los requisitos de rendimiento y un requir
• La colocación equirements:
de Datcolocación
datos r ements: El conjunto de datos necesita

disponibilidad de la aplicación. ser asignado a un centro de datos específico de apoyo local de baja latencia de

lectura y escritura, o por la soberanía de datos para cumplir con las regulaciones de

privacidad, como el GDPR. Alternativamente, la colocación de datos puede ser

necesaria para crear infraestructuras de almacenamiento multi-temperatura que

separan datos calientes y frías en volúmenes específicos. MongoDB le da esta


MongoDB expuesto varias políticas sharding. Como resultado, los datos pueden ser
flexibilidad.
distribuidos de acuerdo con patrones de consulta o requisitos de colocación de datos,

dando a los desarrolladores mucho mayor escalabilidad a través de una et diversa de las

cargas de trabajo: Las aplicaciones que cumplen con estos criterios, o que son propensos a hacerlo

en el futuro, deben ser diseñados para sharding con antelación en lugar de


• A
Shar
distancia
Sharding timbre. Los documentos se dividen en todo
A distancia
esperar hasta que se hayan consumido la capacidad disponible. Las aplicaciones
fragmentos de acuerdo con el valor de clave fragmento. Los documentos con valores
que finalmente se beneficiarán de sharding deben considerar qué colecciones
clave de fragmento cerca uno del otro son propensos a ser colocado en el mismo
que va a querer fragmentar y las llaves de fragmento correspondientes al diseñar
fragmento. Este enfoque es muy adecuado para aplicaciones que necesitan para
sus modelos de datos. Si un sistema ya ha alcanzado o superado su capacidad,
optimizar consultas basadas intervalo, tales como datos de co-localización para todos
será difícil de implementar sharding sin afectar al rendimiento de la aplicación.
los clientes en una región específica de un fragmento específico.

• Shar
Sharding
hash hash timbre. Los documentos se distribuyen

de acuerdo con un hash MD5 del valor de la clave fragmento. Este enfoque garantiza

una distribución uniforme de las escrituras a través de fragmentos, que a menudo es

óptima para la ingestión de flujos de datos de series de tiempo y eventos.


Sharding Buenas Prácticas

Los usuarios que optan por fragmentar deben considerar las siguientes

• De
zonas
zonas
Sharding
de Shar por
timbre. Proporciona la capacidad para que los desarrolladores recomendaciones:

definir reglas específicas que regulan la colocación de datos en un clúster


Seleccionar
una buena clave
un buen
fragmento
Shar seleccionar
tecla d .. Al seleccionar campos para utilizar como
fragmentada. Las zonas se discuten en más detalle en la siguiente sección de
una clave fragmento, hay por lo menos tres criterios clave a considerar:
datos de localización de la guía.

1. Cardinalidad: partición de datos se gestiona en 64 trozos MB por defecto. es


Miles de organizaciones utilizan MongoDB para construir sistemas de alto
probable que supere el tamaño del trozo 64 MB de baja cardinalidad (por
rendimiento a gran escala. Puede leer más sobre ellos en el ajustar al tamaño
ejemplo, país de origen de un usuario) tenderá a agrupar documentos juntos en
del MongoDB .
un pequeño número de fragmentos, que a su vez requerirá reequilibrio

Los usuarios deben considerar el despliegue de una agrupación fragmentada en las frecuente de los trozos y un solo país. En cambio, un fragmento clave debe

siguientes situaciones: exhibir alta cardinalidad.

17
2. Inserte la Escala: Las escrituras deben ser distribuidos de manera uniforme en todos el balanceador o para configurar el equilibrio cuando se lleva a cabo para minimizar

los fragmentos en base a la clave fragmento. Si la clave fragmento está aumentando aún más el impacto en el rendimiento.

de forma monótona, por ejemplo, todas las inserciones irán a la misma fragmento

incluso si presentan una alta cardinalidad, creando así una zona activa de inserción.

En cambio, la clave debe ser distribuida de manera uniforme.


Distribución geográfica

Fragmentos se pueden configurar de tal manera que rangos específicos de valores de clave

3. Aislamiento de consultas: las consultas deben dirigirse a un fragmento específico para de fragmento se asignan a una ubicación fragmento física. sharding por zonas permite que

maximizar la escalabilidad. Si las consultas no se pueden aislar a un fragmento un administrador de MongoDB para controlar la ubicación física de los documentos en un

específico, todos los fragmentos se pueden consultar en un patrón llamado de racimo MongoDB, incluso cuando el despliegue se extiende por varios centros de datos en

dispersión / agrupación, que es menos eficiente que la consulta de un solo fragmento. diferentes regiones.

Para más información sobre la selección de un fragmento clave, consulte Consideraciones Es posible combinar las características de los conjuntos de réplicas, sharding dividido en

para seleccionar Shard Keys . zonas, lea las preferencias, preocupaciones y escribir con el fin de proporcionar una

implementación que se distribuye geográficamente, lo que permite a los usuarios leer y


Se necesita
Añadir ccapacidad acaben apacidad antes. el mantenimiento de clústeres
e se necesita.
escribir en sus centros de datos locales. Un administrador puede restringir las colecciones
es un riesgo más bajo y más fácil de manejar si se añade la capacidad antes de
fragmentados a un conjunto específico de fragmentos, la federación de manera efectiva
que el sistema es más utilizado.
esos fragmentos para diferentes usuarios. Por ejemplo, se puede etiquetar todos los datos

de Estados Unidos y asignarlo a fragmentos localizados en los Estados Unidos.


Correrthr
ejecutar tres
eeoomor
más de configuración servidores
servidores de configuración a prproporcionar Ovide
e para

rredundancy
edundancy .. despliegues de producción deben utilizar tres o más servidores de

configuración. servidores de configuración deben ser desplegados en una topología que Para obtener más información, descargar el Guía de implementaciones con varios

es robusta y resistente a una variedad de fracasos. centros de datos MongoDB .

uso
utilicer replic
Eplicaunos
fija.conjuntos. Sharding y conjuntos de réplica son absolutamente
La gestión de MongoDB: aprovisionamiento,
compatibles. conjuntos de réplicas deben utilizarse en todas las implementaciones, y

sharding deben utilizarse cuando sea apropiado. Sharding permite una base de datos para seguimiento y recuperación de desastres
hacer uso de varios servidores de capacidad de datos y el rendimiento del sistema.

conjuntos de réplicas mantienen copias redundantes de los datos a través de servidores,

bastidores de servidores, e incluso los centros de datos.

Si está ejecutando sus aplicaciones y bases de datos en la nube pública, MongoDB ofrece

la totalmente gestionado, bajo demanda y elástica MongoDB Atlas Servicio. Atlas permite a
Utilizar
inst múltiples utilizan variasinstancias.
mongo
ANCES.
los clientes implementar, operar, y la escala de las bases de datos MongoDB en AWS,

Azure, o GCP en tan sólo unos pocos clics o llamadas a la API de programación. MongoDB
para las
Aplicar las mejores prácticas para las inserciones.
inserciones. los datos pre-Dividir en múltiples trozos
Atlas está disponible a través de un modelo de pago por you-go y se factura sobre una
de modo que no se requiere el equilibrio durante el proceso de inserción. Alternativamente,
base horaria. Una descripción más completa de MongoDB Atlas se incluye más adelante
desactivar el balanceador de cargas a granel durante. Asimismo, el uso múltiple mongo casos
en esta guía.
de carga en paralelo para mayor procesamiento. Para más información, ver

Crear trozos fragmentados en un clúster en la Documentación de Si está ejecutando MongoDB mismo, Operaciones Manager es la forma más sencilla de

MongoDB. ejecutar la base de datos en su propia infraestructura, por lo que es fácil para los equipos

de operaciones para desplegar, monitorear, copia de seguridad, y la escala de MongoDB.

Muchas de las capacidades de Operaciones Manager también están disponibles en el


Equilibrio dinámico de datos
servicio Administrador de MongoDB nube alojada en la nube. Hoy en día, la nube Manager

Como los datos se carga en MongoDB, el sistema puede necesitar volver a equilibrar es compatible con miles de implementaciones, incluyendo los sistemas de uno a cientos de

dinámicamente trozos a través de fragmentos en el clúster mediante un proceso llamado servidores.

la balancín . Es posible desactivar

18
Organizaciones que dirigen sus despliegues con MongoDB Empresa la infraestructura a través de agentes instalado en cada servidor. Los servidores pueden

Avanzada puede elegir entre Operaciones y Gerente de la nube. residir en la nube pública o un centro de datos privados. Ops Administrador organiza de

forma fiable las tareas que los administradores han realizado tradicionalmente de forma

manual - el despliegue de un nuevo grupo, las actualizaciones, la creación de copias de


Operaciones y Gerente de la nube incorporan las mejores prácticas para ayudar a mantener
seguridad en el punto de tiempo, el despliegue de nuevos índices, y muchas otras tareas
bases de datos gestionadas saludable y optimizado. Se aseguran la continuidad operativa
operativas.
mediante la conversión de las tareas manuales complejas en procedimientos fiables y

automatizadas con el clic de un botón o mediante una llamada API:

Ops Manager está diseñado para adaptarse a los problemas que puedan surgir

mediante la evaluación continua del estado y hacer los ajustes necesarios. Así es
• Desplegar
Implementar .. Cualquier topología, a cualquier escala
cómo:

• Mejorar.
Mejorar. En cuestión de minutos, sin tiempo de inactividad
• Operaciones agentes Manager se instalan en los servidores (donde se desplegará
• Escala
sc. cerveza inglesa. Añadir capacidad, sin tener que desconectar la
MongoDB), ya sea a través de herramientas de configuración tales como Ansible,
aplicación.
Chef o de marionetas, o por un administrador.

• oint-in-time, programada
Ppoint-in-time, Sc Bacde seguridad
Las copias kups. Restaurar
heduled.

completa corriendo racimos a cualquier punto en el tiempo con tan sólo unos
• El administrador crea un nuevo objetivo de diseño para el sistema, ya sea como una
clics, ya que los desastres no son predecibles.
modificación a una implementación existente (por ejemplo, actualizar, cambiar el

• Las
consultable
copias de
Bac
seguridad
consultable.
kups. Permitir restauraciones parciales de seleccionado tamaño de oplog, nuevo fragmento), o como un nuevo sistema.

datos y la capacidad de consultar un archivo de copia de seguridad local, sin

tener que restaurarlo. • Los agentes comprueban periódicamente con el servidor central de Operaciones y

• Alertas
AlertasPPerformance.
de endimiento. Monitorear más de 100 medidas del sistema y obtener Gerente de recibir las nuevas instrucciones de diseño.

alertas personalizadas antes degrada el sistema. • Agentes de crear y seguir un plan para implementar el diseño. El uso de un

• Estirar índices.
Estirar índices. Evitar impacto a la aplicación mediante la introducción de sofisticado motor de reglas, agentes ajustar continuamente sus planes

nuevo nodo de índices por el nodo - a partir de los secundarios y luego el individuales como las condiciones cambian. A la vista de los muchos escenarios

primario degradado. de fallo - tales como fallas en el servidor de red y particiones - agentes revisarán

sus planes para alcanzar un estado seguro.


• Administrar zonas. Sharding configurar zonas para ordenar los datos que se

almacenan en.
• Minutos después, el sistema se implementa - de forma segura y fiable.
• dat
Explor
un datos
explorador er .. Examine el esquema de la base de datos

ejecutar consultas para revisar la estructura del documento, la visualización de

metadatos colección, y la inspección de las estadísticas de uso de índice Más allá de la implementación de nuevas bases de datos, Operaciones Manager puede

"conectar a" o importar las implementaciones existentes MongoDB y hacerse cargo de su

control.
los servicio de operaciones Rapid Start da a sus operaciones y equipos DevOps las

habilidades y herramientas para ejecutar y administrar MongoDB con todas las mejores Además de despliegue inicial, Director de Operaciones hacen posible cambiar el tamaño de

prácticas acumuladas a lo largo de muchos años trabajando con algunas de las forma dinámica la capacidad añadiendo fragmentos y miembros del conjunto de réplicas.

compañías más grandes del mundo. Este compromiso ofrece una formación Otras tareas de mantenimiento tales como la mejora de MongoDB o cambiar el tamaño de

introductoria administrador y consultoría personalizada para ayudarle a configurar y la oplog pueden reducirse de decenas o cientos de pasos manuales para el clic de un botón,

utilizar cualquiera de Operaciones MongoDB MongoDB Gestor o Administrador de la todos con cero tiempo de inactividad.

nube.

Una tarea común es DBA para lanzar nuevos índices en los sistemas de producción.

Con el fin de minimizar el impacto en el sistema en vivo, la mejor práctica consiste en

Implementaciones y actualizaciones realizar una compilación índice de rodadura - a partir de cada uno de los secundarios y

finalmente aplicar los cambios a la primaria original, después de cambiar su


Ops Director coordina las tareas operativas críticas a través de los servidores

en un sistema de MongoDB. Se comunica con

19
papel con uno de los secundarios. Si bien este proceso de laminación se puede realizar el rendimiento y la utilización de la capacidad del sistema. Estas líneas de base deben

manualmente, Operaciones y Director de Cloud Manager puede automatizar el proceso a reflejar las cargas de trabajo que se pueden esperar que el sistema realice en la

través de conjuntos de réplicas de MongoDB, la reducción de los gastos operativos y el producción, y deben ser revisados ​periódicamente a medida que el número de

riesgo de conmutaciones causados ​por los procesos de gestión de forma incorrecta usuarios, funciones de la aplicación, el rendimiento de SLA, u otros factores de cambio.

secuenciación.

Las líneas de base le ayudará a entender cuando el sistema está funcionando como se

Los administradores pueden utilizar la interfaz de Operaciones Gerente de forma directa, o diseñó, y cuando los problemas comienzan a surgir que pueden afectar a la calidad de la

invocar la API REST de Operaciones Director de las herramientas existentes de la experiencia del usuario u otros factores críticos para el sistema. Es importante controlar

empresa, incluyendo marcos de vigilancia y de orquestación populares. integración su sistema de MongoDB para el comportamiento inusual para que las acciones se

específica se proporciona con las herramientas líderes Application Performance pueden tomar para abordar los problemas de forma proactiva. Lo siguiente representa las

Management (APM). Los detalles se incluyen más adelante en esta sección de la guía. herramientas más populares para el seguimiento de MongoDB, y también se describen

diferentes aspectos del sistema que debe vigilarse.

Nube de Integración
Nube de Integraciónnativa.
nativa.Ops Manager se puede integrar con Pivotal Cloud

Foundry, Red Hat OpenShift, y Kubernetes. Con el OPS Manager, puede

desplegar rápidamente MongoDB Empresa aplicaciones alimentadas por Monitoreo con el OPS Manager y Cloud Manager
abstraerse de las complejidades de la gestión, escalar y proteger las nubes

híbridas. Ops Director coordina la orquestación entre su plataforma nativa


gráficos que ofrece, cuadros de mando personalizados y alertas automáticas,
nube, que se encarga de la infraestructura subyacente, mientras ops Manager
Operaciones Manager realiza un seguimiento más de 100 bases de datos y sistemas de
maneja los casos de MongoDB, configurados y gestionados con las mejores
salud métricas clave, como los contadores de operaciones, la memoria y de la CPU, el
prácticas operacionales de forma automática.
estado de la replicación, conexiones abiertas, las colas y cualquier estado de los

ganglios. Ops Manager permite a los datos de telemetría que deben recogerse cada 10

segundos.

Con esta integración, se puede consistentemente y sin esfuerzo ejecutar cargas de

trabajo donde quiera que necesitan para ser, levantándose la misma configuración de

base de datos en diferentes ambientes, todo ello controlado desde un único panel de

vidrio.

Ops funciones del administrador como la agrupación de servidor que sea más fácil para

construir una base de datos como un servicio dentro de un entorno de nube privada. Ops

Administrador mantendrá un grupo de servidores provisionados a nivel mundial que tienen

los agentes ya instalados. Cuando los usuarios quieren crear un nuevo despliegue

MongoDB, pueden solicitar los servidores de este grupo a la sede de la agrupación

MongoDB. Los administradores pueden incluso asociar ciertas propiedades con los

servidores del grupo y exponer las propiedades del servidor como opciones seleccionables

cuando un usuario inicia una solicitud de nuevos casos.


Figur
4: Figura
e 4: Operaciones Representante: sencilla, intuitiva y potente.

Implementar y actualizar racimos enteros con un solo clic.

Las métricas son reportados de forma segura a Operaciones y Gerente de la nube donde

se procesan, agregada, alertados y se visualizan en un navegador, permitiendo a los


Control y planificación de capacidad
administradores determinar fácilmente la salud de MongoDB en tiempo real. Las vistas

El rendimiento del sistema y planificación de capacidad son dos temas importantes que se pueden estar basadas en permisos explícitos, por lo que la visibilidad del equipo de

deben abordar como parte de cualquier implementación de MongoDB. Parte de su proyecto se pueden restringir a sus propias aplicaciones, mientras

planificación debe incluir el establecimiento de líneas de base en el volumen de datos, la

carga del sistema,

20
los administradores de sistemas pueden monitorear todas las implementaciones El servicio de monitoreo gratuito está disponible para todos los usuarios de MongoDB,

de MongoDB en la organización. sin necesidad de instalar un agente, navegar por un muro de pago, o completar un

formulario de registro. Usted será capaz de ver las métricas y topología sobre su medio
histórica actuación puede ser revisada con el fin de crear líneas de base de operación y
ambiente desde el momento libre de monitorización está habilitada. Puede habilitar la
para apoyar la planificación de capacidad. Integración con herramientas de monitoreo
supervisión libre fácilmente utilizando la consola MongoDB, MongoDB brújula, o
existentes también es directa a través de la API REST de Operaciones Gerente, por lo que
iniciando el proceso de mongod con la opción de línea de comandos nueva
las profundas ideas de parte de Operaciones Gerente de una vista consolidada en todas
'db.enableFreeMonitoring ()', y se puede optar en cualquier momento.
sus operaciones.

Ops Manager permite a los administradores establecer alertas personalizadas cuando las
Con el Servicio de Vigilancia de la nube, los indicadores recogidos permiten evaluar
métricas clave están fuera de rango. Las alertas pueden ser configurados para una serie de
rápidamente la salud de base de datos y optimizar el rendimiento, todo desde la
parámetros que afectan a hosts individuales, conjuntos de réplicas, agentes y copia de
comodidad de una poderosa interfaz gráfica de usuario basada en navegador. Las
seguridad. Las alertas pueden enviarse a través de SMS, correo electrónico, WebHooks,
características de supervisión incluyen
Flowdock, HipChat, y Slack o integrados en los sistemas de gestión de incidencias

existentes, tales como PagerDuty para advertir de forma proactiva de problemas • información Medio Ambiente: Topología (independiente, conjuntos de réplicas

potenciales, antes de que escalen a interrupciones costosas. incluyendo nodos primario y secundario). Versión MongoDB.

• Gráficas con 24 horas de datos para las siguientes mediciones, actualizados cada
Si el uso de Cloud Manager, el acceso a los datos de vigilancia también puede ser
minuto: las operaciones de base de datos por segundo (promediada al minuto),
compartida con los ingenieros de soporte MongoDB, proporcionando una resolución de
incluyendo comandos, consultas, actualizaciones, elimina getMores, insertos y las
problemas rápida al eliminar la necesidad de enviar los registros entre los diferentes
operaciones de replicación para las secundarias conjunto de réplicas.
equipos.

• tiempo de ejecución de la operación.

• Las colas.

• Replicación de retraso.

• Red de E / S.

• Memoria (residente y virtual).

• Hardware: CPU de proceso, el disco% de utilización, disco% de espacio libre

Más información en la Nube MongoDB página.

Figur
5: Figura
e 5: Operaciones Manager proporciona visibilidad en tiempo real y en

el despliegue histórico MongoDB. mongotop

mongotop es una utilidad que se incluye con MongoDB. Realiza un seguimiento e


MongoDB libre Servicio de Monitoreo de la nube
informa de la actividad de lectura y escritura actual de un grupo de MongoDB. mongotop

Con la versión 4.0, la base de datos MongoDB puede empujar de forma nativa el proporciona estadísticas a nivel de colección.
seguimiento de metadatos directamente a la nube de Monitoreo MongoDB. Una vez

habilitado, se le mostrará una URL única que se puede navegar en un navegador

web, y ver al instante monitoreo métricas e información de topología recogidos para

su entorno. Puede compartir la dirección para proporcionar visibilidad a alguien en


mongostat

su equipo.
mongostat es una utilidad que se incluye con MongoDB. Muestra estadísticas en

tiempo real sobre todos los servidores de sistema de MongoDB. mongostat ofrece

una visión global de

21
todas las operaciones, incluyendo recuento de actualizaciones, inserciones, fallos de página, proactivamente advertir a los administradores de los problemas potenciales antes de que

errores de índice, y muchas otras medidas importantes de la salud del sistema. mongostat es los usuarios experimentan un problema.

similar al de la herramienta de Linux

vmstat.
Registros de la aplicación y los registros de base de datos

De aplicación de base de datos y los registros deben ser monitorizados para errores y
Otras herramientas populares
otra información del sistema. Es importante correlacionar sus aplicaciones y bases de

Hay una serie de herramientas de monitorización de código abierto populares para los datos los registros con el fin de determinar si la actividad en la aplicación es en última

que MongoDB plugins están disponibles. Si MongoDB está configurado con el motor de instancia responsable de otros problemas en el sistema. Por ejemplo, un aumento en

almacenamiento WiredTiger, garantizar la herramienta está utilizando un controlador las escrituras usuario puede aumentar el volumen de escrituras en MongoDB, que a

compatible con WiredTiger: su vez puede abrumar al sistema de almacenamiento subyacente. Sin la correlación

de registros de aplicaciones y bases de datos, puede tardar más tiempo de lo

necesario para establecer que la aplicación es responsable del aumento de las


• Nagios
escrituras en lugar de algún proceso en ejecución en MongoDB.

• ganglios

• cactus

• Explorar

En caso de errores, excepciones o comportamiento inesperado, los registros deben ser


• Zabbix
guardados y cargados en MongoDB al abrir un caso de soporte. Los registros de mongod procesos
• Datadog
que se ejecutan sobre los miembros del conjunto de réplicas primarias y secundarias, así

como mongo y los procesos de configuración permitirá al equipo de apoyo para mayor

rapidez de la raíz causa ningún problema.


Utilidades Linux

Otras utilidades comunes que pueden ser utilizados para monitorizar diferentes

aspectos de un sistema MongoDB:


Errores de página
• iostat: Proporciona estadísticas de uso para el subsistema de

Cuando un conjunto de trabajo deja de caber en la memoria, u otras operaciones se han


almacenamiento
trasladado de trabajo conjunto de datos de la memoria, el volumen de fallos de página
• vmstat: Proporciona estadísticas de uso de la memoria virtual
puede clavar en su sistema de MongoDB. fallos de página son parte del funcionamiento

• netstat: Proporciona estadísticas de uso de la red normal de un sistema de MongoDB, pero el volumen de fallos de página deben ser

controlados con el fin de determinar si el conjunto de trabajo está creciendo al nivel que ya
• sar: Captura una variedad de estadísticas del sistema periódicamente y los
no cabe en la memoria disponible y si existen alternativas tales como más memoria o
almacena para el análisis
sharding través de múltiples servidores es apropiado. En la mayoría de los casos, el

problema subyacente de los problemas en un sistema de MongoDB tiende a ser fallos de

Utilidades Windows página.

Monitor de rendimiento, una consola de administración de Microsoft complemento, es una

herramienta útil para medir una variedad de estadísticas en un entorno Windows.

Disco

Elementos a monitorear Más allá de la memoria, disco I / O es también una consideración clave de rendimiento

para un sistema de MongoDB, porque las escrituras se registran en el diario y


Ops Manager y Cloud Manager se pueden utilizar para controlar las estadísticas bases de
regularmente vuelca en disco. Bajo carga pesada de escritura del subsistema de disco
datos específicas, incluyendo fallos de página, contadores ops, las colas, las conexiones y
subyacente puede sentirse abrumado, u otros procesos podría rivalizar con MongoDB,
el estado de conjunto de réplicas. Las alertas se pueden configurar uno contra monitoreados
o la configuración RAID puede ser inadecuada
métrica

22
para el volumen de operaciones de escritura. Otros problemas potenciales podrían ser la Configuración del sistema
causa raíz, sino el síntoma es normalmente visible a través
No es raro para realizar cambios en el hardware y el software en el transcurso de una
iostat como mostrar una alta utilización de disco y de alta gestión de colas para las
implementación MongoDB. Por ejemplo, un subsistema de disco puede ser sustituido
escrituras.
para proporcionar un mejor rendimiento o mayor capacidad. Cuando se cambian los

componentes es importante para asegurar que sus configuraciones son apropiadas para

UPC el despliegue. MongoDB es muy sensible a las prestaciones del sistema operativo y el

hardware subyacente, y en algunos casos los valores predeterminados para las


Una variedad de temas podría desencadenar alta de la CPU. Esto puede ser normal
configuraciones del sistema no son ideales. Por ejemplo, el valor predeterminado leer por
en la mayoría de las circunstancias, pero si se observa el uso elevado de CPU sin
adelantado para el sistema de archivos podría ser de varios MB mientras que está
otras cuestiones tales como la saturación de disco o pagefaults, puede haber un
optimizado para MongoDB leer por adelantado Los valores más próximos a 32 KB. Si el
problema inusual en el sistema. Por ejemplo, un trabajo MapReduce con un bucle
nuevo sistema de almacenamiento se instala sin hacer el cambio a la leer por adelantado desde
infinito, o una consulta que ordena y filtra un gran número de documentos del
el valor predeterminado para la configuración adecuada, el rendimiento de la aplicación es
conjunto de trabajo sin una buena cobertura del índice, podría causar un aumento
probable que degrade sustancialmente. Recuerde revisar la Notas de producción de
en la CPU sin provocar problemas en el sistema de disco o pagefaults.
mejores prácticas más recientes.

conexiones

MongoDB conductores implementar la agrupación de conexiones para facilitar el

uso eficiente de los recursos. Cada conexión consume de 1 MB de memoria RAM, Equilibrio fragmento

así que ten cuidado para controlar el número total de conexiones para que no
Uno de los objetivos de sharding es distribuir uniformemente los datos a través de
abrumar RAM y reducir la memoria disponible para el conjunto de trabajo. Esto
múltiples servidores. Si la utilización de los recursos del servidor no es
suele ocurrir cuando las aplicaciones cliente no cerraba bien sus conexiones, o con
aproximadamente igual a través de servidores no puede ser un problema subyacente
Java, en particular, que se basa en la recolección de basura para cerrar las
que es problemático para el despliegue. Por ejemplo, una clave fragmento mal
conexiones.
seleccionado puede resultar en la distribución de datos desigual. En este caso, la

mayoría si no todas las consultas serán dirigidos a la sola mongod que es la gestión de

los datos. Por otra parte, MongoDB puede estar tratando de redistribuir los

Contadores op documentos para lograr un equilibrio más perfecto entre los servidores. Mientras que

la redistribución con el tiempo como resultado una distribución más deseable de los
Las líneas de base de utilización para su aplicación le ayudará a determinar un
documentos, hay un trabajo sustancial asociado con el reequilibrio de los datos y esta
recuento normal de las operaciones. Si estos conteos comienzan a desviarse
actividad sí puede interferir con el logro de la SLA rendimiento deseado. Mediante la
sustancialmente de sus líneas de base puede ser un indicador de que algo ha
ejecución db.currentOp () usted será capaz de determinar qué trabajo está siendo
cambiado en la aplicación, o que un ataque malicioso está en marcha.
realizado por la agrupación, incluyendo reequilibrio de documentos a través de los

fragmentos.

colas

Si MongoDB es incapaz de completar todas las solicitudes de manera oportuna, las

solicitudes se empiezan a hacer cola. Un despliegue sana exhibirá colas muy bajos. Si Si en el transcurso de una implementación se determina que un fragmento de la llave

métricas comienzan a desviarse de rendimiento de referencia, causada por una consulta se debe utilizar, será necesario volver a cargar los datos de la nueva llave fragmento

de larga duración, por ejemplo, solicitudes de las aplicaciones empezarán a hacer cola. porque designación y valores de las claves de fragmento son inmutables. Para

Por lo tanto, la cola es un buen primer lugar para buscar para determinar si hay apoyar el uso de un fragmento de la llave, es posible escribir un script que lee cada

problemas que afectan a la experiencia del usuario. documento, actualiza la clave fragmento, y lo escribe de nuevo a la base de datos.

23
Lag la replicación prueba y recuperación de las agrupaciones se pueden construir en unos pocos clics.

Los equipos de operaciones pueden configurar las copias de seguridad únicamente


retraso de replicación es la cantidad de tiempo que tarda una operación de escritura en el
contra las colecciones específicas, en lugar de toda la base de datos, la aceleración de
miembro de conjunto de réplicas primaria para replicar a un miembro secundario. Una
las copias de seguridad y reducir el espacio de almacenamiento requerido.
pequeña cantidad de retraso es normal, pero a medida que crece la replicación de retraso,

pueden surgir problemas. Las causas típicas de lag replicación incluyen problemas de

latencia de la red o de conectividad, y latencias de disco, tales como el rendimiento de los Consultable copias de seguridad permiten restauraciones parciales de datos

secundarios siendo inferior a la de la primaria. seleccionados, y la capacidad de consultar un archivo de copia de seguridad local, sin

tener que restaurarlo.

Ops Manager es compatible entre proyectos restablece, lo que permite a los usuarios

realizar restauraciones en un Project Manager diferentes de operaciones de la fuente

Config disponibilidad del servidor de copia de seguridad instantánea. Esto permite a los equipos DevOps ejecutar

fácilmente las tareas tales como la creación de múltiples entornos de ensayo o prueba
En ambientes fragmentados que es necesario para ejecutar tres o más servidores de
que responden a los últimos datos de producción, mientras configurado con diferentes
configuración. servidores de configuración son críticos para el sistema para la comprensión
privilegios de acceso de usuario o se ejecuta en diferentes regiones.
de la localización de documentos a través de fragmentos. La base de datos se mantendrá

en funcionamiento en este caso, pero el equilibrador será incapaz de moverse trozos y

otras actividades de mantenimiento serán bloqueados hasta que los tres servidores de Debido Operaciones Manager sólo lee el oplog, el impacto de rendimiento en
configuración están disponibles. servidores de configuración son, por defecto, pueden curso es mínimo - similar a la de la adición de una réplica adicional a un conjunto
implementar como un conjunto de réplicas MongoDB. de réplicas.

Mediante el uso de MongoDB Empresa avanzada puede implementar Operaciones

Manager para controlar las copias de seguridad en su centro de datos local o utilizar el

Recuperación de desastres: Backup y Recuperación servicio Administrador de la nube que ofrece una solución de copia de seguridad totalmente

gestionado con un modelo de pago por uso de reparto. MongoDB ingenieros dedicados
Una estrategia de copia de seguridad y la recuperación es necesaria para proteger sus
monitorean las copias de seguridad de los usuarios en una base 24x365, alertando a los
datos de misión crítica en contra de un fallo catastrófico, como un incendio o una inundación
equipos de operaciones si surgen problemas.
en un centro de datos o errores humanos tales como errores de código o colecciones se

caiga accidentalmente. Con una estrategia de backup y recuperación en su lugar, los Operaciones y Gerente de la nube no son los únicos mecanismos para hacer

administradores pueden restablecer las operaciones de negocios sin pérdida de datos y la copias de seguridad de MongoDB. Otras opciones incluyen:

organización pueden cumplir con los requisitos regulatorios y de cumplimiento. Realizar

copias de seguridad regulares ofrece otras ventajas, también. Las copias de seguridad se

pueden utilizar para sembrar nuevos entornos para el desarrollo, puesta en escena, o QA
• copias del sistema de archivos

sin impactar sistemas de producción. • Los mongodump herramienta de empaquetado con MongoDB

Las copias de seguridad del sistema de archivos


Ops Manager y Administrador de copias de seguridad de la nube se mantienen de forma
Presentar las copias de seguridad del sistema, como la proporcionada por Linux LVM, de
continua, a pocos segundos del sistema operativo. Si el clúster MongoDB experimenta un
forma rápida y eficiente de crear una imagen coherente del sistema de archivos que se
error, la copia de seguridad más reciente es sólo momentos atrás, minimizando la
puede copiar para copia de seguridad y restauración de los propósitos. Para bases de datos
exposición a la pérdida de datos. MongoDB Atlas, Operaciones Manager y Cloud
con un único conjunto de réplicas es posible detener las operaciones temporalmente para
Manager son las únicas soluciones que ofrecen MongoDB copia de seguridad de punto
que una instantánea coherente puede ser creado mediante la emisión de la db.fsyncLock ()
en el momento de conjuntos de réplicas e instantáneas de todo el grupo de grupos

fragmentados. Puede restaurar precisamente el momento en que necesita, rápida y


mando. Esto eliminará todas las escrituras pendientes en el disco y cerrar la
segura. ops equipos pueden automatizar su base de datos restaura de forma fiable y
totalidad mongod instancia para evitar escrituras adicionales hasta que el bloqueo se
segura a través de Operaciones y Gerente de la nube. desarrollo completo,
libera con db.fsyncUnlock ().

24
Para más información sobre cómo utilizar las instantáneas del sistema de archivos para

crear una copia de seguridad de MongoDB, consulte De seguridad y restauración del

sistema de ficheros con instantáneas en la Documentación de MongoDB.

Sólo MongoDB Atlas, Operaciones Manager y Cloud Manager proporcionan un método

automatizado para la toma de una copia de seguridad consistente a través de todos los

fragmentos.

Para más información sobre la copia de seguridad y restauración en entornos

fragmentados, vea la página de documentación sobre MongoDB De seguridad y

restauración Clusters fragmentados y el tutorial Copia de seguridad de un clúster con el

sistema de archivos fragmentados instantáneas . Figur


6: Figura
e 6: MongoDB integrados en una única vista de rendimiento de

las aplicaciones

mongodump Los conductores MongoDB incluyen una API que expone los parámetros de rendimiento

de la consulta a las herramientas de APM. Los administradores pueden controlar el


mongodump es una herramienta incluida con MongoDB que realiza una copia de seguridad
tiempo empleado en cada operación, e identificar las consultas de ejecución lenta que
en vivo de los datos en MongoDB. mongodump puede utilizarse para volcar toda una base
requieren mayor análisis y optimización.
de datos, recolección, o el resultado de una consulta. mongodump puede producir un

volcado de los datos que reflejan un solo momento en el tiempo por el dumping las

entradas oplog creados durante el volcado y después repetirlo durante mongorestore, una Además, Operaciones y Cloud Manager ahora proporcionan una integración

herramienta que importa el contenido de los vertederos de bases de datos producidas por empaquetada con la plataforma New Relic. Las métricas clave de Operaciones

BSON mongodump. Manager son accesibles para el APM para la visualización, permitiendo MongoDB la

salud a ser monitoreado y se correlacionó con el resto de la finca aplicación.

La integración de MongoDB con soluciones de Como se muestra en la Figura 6, Resumen de mediciones se presentan dentro de la IU de

la APM. Los administradores también pueden funcionar nuevos Relic Estadísticas de


monitorización externos
análisis con los datos de monitoreo para generar cuadros de mando que proporcionan el

La API de Operaciones proporciona integración con los marcos de gestión externa a seguimiento en tiempo real de los indicadores clave de rendimiento (KPI).

través de un acceso programático a las funciones de automatización y los datos de

seguimiento.

Además de Operaciones Gerente, MongoDB Empresa avanzada puede reportar la


Seguridad
información del sistema de trampas SNMP, el apoyo a la recopilación de datos

centralizada y la agregación a través de soluciones de monitoreo externo. Revisar la

documentación para aprender más sobre la integración de SNMP. Al igual que con todo el software, los administradores MongoDB deben tener en cuenta la

seguridad y el riesgo de exposición para un despliegue de MongoDB. No hay soluciones

mágicas para la mitigación de riesgos, y el mantenimiento de una implementación segura

MongoDB es un proceso continuo.


Integración APM

Muchos equipos de operaciones utilizan plataformas de aplicaciones de supervisión de

rendimiento (APM) para ganar la supervisión global de su infraestructura de TI completa


Defensa en profundidad
desde una única interfaz de usuario de gestión. Los problemas que el riesgo de afectar la

experiencia del cliente se pueden identificar de forma rápida y aislaron a los componentes Un enfoque de defensa en profundidad se recomienda para asegurar
específicos - ya sea atribuible a los dispositivos, infraestructura de hardware, redes, API, despliegues MongoDB, y se dirige a un número de diferentes métodos para
código de aplicación, bases de datos, y mucho más. la gestión de riesgos y la reducción de la exposición al riesgo.

25
La intención de un enfoque de defensa en profundidad es a la capa de su entorno para MongoDB también amplía el soporte existente para la autenticación de usuarios a través

asegurarse de que no hay puntos individuales explotables de fallo que podría permitir a de LDAP para incluir ahora la autorización LDAP. Esto permite a los privilegios de usuario

un intruso o un partido no es de confianza para acceder a los datos almacenados en la existentes almacenados en el servidor LDAP para ser asignada a los roles de MongoDB,

base de datos MongoDB. La forma más eficaz de reducir el riesgo de explotación es los usuarios sin tener que volver a crear en sí mismo MongoDB.

ejecutar MongoDB en un entorno de confianza, para limitar el acceso, a seguir un sistema

de privilegios mínimos, para instituir un ciclo de vida de desarrollo seguro, y para seguir

las mejores prácticas de implementación.


Revisión de cuentas

MongoDB Empresa avanzada permite a los administradores de seguridad para la

construcción y filtrar registros de auditoría para cualquier operación contra


MongoDB Empresa Avanzada cuenta con amplias capacidades para defender,
MongoDB, si DML, DDL o DCL. Por ejemplo, es posible registrar y auditar las
detectar y controlar el acceso a MongoDB, ofreciendo uno de los controles de
identidades de los usuarios que recuperan documentos específicos, y los cambios
seguridad más completas de cualquier base de datos moderna:
realizados en la base de datos durante la sesión. El registro de auditoría se puede

escribir a múltiples destinos en una variedad de formatos, incluyendo a la consola

• Control
Contr acceso.
de Acceso ol. Control de acceso a los datos sensibles utilizando y syslog ( en JSON formato), y en un archivo (JSON o BSON), que luego puede ser

mecanismos estándar de la industria para la autenticación y la autorización cargado a MongoDB y se analiza para identificar eventos relevantes

para la base de datos, recolección y hasta el nivel de los campos individuales

dentro de un documento.

• Revisión de cuentas. Garantizar el cumplimiento normativo e interna.

• Encriptación.
Encriptación. Proteger los datos en movimiento sobre la red y en reposo en

almacenamiento persistente. encriptación

• Los
administrativos.
controles administrativos Contr
oles. Identificar cualquier posible intrusión datos MongoDB pueden cifrarse en la red y en el disco.
más rápido y reducir su impacto.

• red Pr
Protección de la red. Consulte la sesión anterior de red para obtener más
otección.
Soporte para TLS permite que los clientes se conecten a MongoDB sobre
información.
un canal cifrado. MongoDB es compatible con FIPS 140-2 cifrado cuando se

Revisa el Arquitectura de referencia de seguridad MongoDB para aprender más sobre ejecuta en modo FIPS con FIPS validados módulo criptográfico.

cada una de las funciones de seguridad se discuten a continuación.

Los datos en reposo se pueden proteger mediante:

• Los MongoDB motor de almacenamiento cifrado


Autenticación
• soluciones de cifrado de base de datos MongoDB certificados de socios
La autenticación puede ser administrado desde dentro de la propia base de datos o por como IBM y Vormetric
medio de la integración avanzada MongoDB Enterprise con mecanismos de seguridad
• La lógica dentro de la propia aplicación
externos, incluyendo LDAP, Active Directory de Windows y Kerberos.

Con el motor de almacenamiento cifrado, protección de datos en reposo ahora se

convierte en una característica integral de la base de datos. Mediante el cifrado de forma

nativa archivos de bases de datos en el disco, los administradores eliminan tanto la gestión
Autorización
y el rendimiento por encima de los mecanismos de cifrado externos. Este nuevo motor de

MongoDB permite a los administradores definir permisos para un usuario o almacenamiento proporciona un nivel adicional de defensa, permitiendo sólo al personal

aplicación, y qué datos se puede acceder al consultar la base de datos. MongoDB con las credenciales de base de datos adecuados acceso a los datos cifrados.

ofrece la posibilidad de configurar el control de acceso basado en roles granular,

por lo que es posible realizar una separación de funciones entre diferentes

entidades acceso y gestión de la base de datos.

26
Utilizando el motor de almacenamiento cifrado, la base de datos en bruto “texto sin
MongoDB Atlas: Base de datos como un
formato” contenido se cifra utilizando un algoritmo que toma una clave de cifrado al

azar como entrada y genera "texto cifrado" que sólo se puede leer si descifrada con la servicio para MongoDB
clave de descifrado. El proceso es totalmente transparente para la aplicación.

MongoDB soporta una variedad de algoritmos de cifrado - el valor predeterminado es


Un número creciente de empresas se están moviendo a la nube pública no sólo para
AES-256 (cifrado de 256 bits) en el modo CBC. AES-256 en el modo de GCM también
reducir los gastos generales de funcionamiento de la gestión de la infraestructura, sino que
es compatible. El cifrado se puede configurar para cumplir con FIPS 140-2 requisitos.
también proporcionan a sus equipos con acceso a servicios a la carta que les dan la

agilidad que necesitan para cumplir con los ciclos de desarrollo de aplicaciones más

rápidos. Este movimiento de la construcción de TI para el consumo de TI como servicio

está bien alineado con los cambios organizativos paralelas que incluyen metodologías

ágiles y DevOps y microservicios arquitecturas. En conjunto, estos cambios sísmicos en TI


El motor de almacenamiento encripta cada base de datos con una clave separada. El
ayudan a las empresas priorizan la agilidad desarrollador, la productividad y el tiempo de
esquema de clave-envoltura en MongoDB envuelve todas las claves de bases de datos
comercialización.
internas individuales con una llave maestra externa para cada servidor. El motor de

almacenamiento cifrado admite dos opciones de gestión de claves - en ambos casos,

la única clave está manejando fuera de MongoDB es la llave maestra:

MongoDB ofrece la totalmente gestionado, bajo demanda y elástica

MongoDB Atlas servicio, en la nube pública. Atlas permite a los clientes implementar,

operar, y la escala de las bases de datos MongoDB en AWS, Azure, o GCP en tan sólo unos
• gestión de claves local a través de un archivo de claves
pocos clics o llamadas a la API de programación. MongoDB Atlas está disponible a través
• La integración con un dispositivo de gestión de claves terceros a través del
de un modelo de pago por you-go y se factura sobre una base horaria. Es fácil empezar -
protocolo KMIP (recomendado)
utilizar una interfaz gráfica de usuario sencilla para seleccionar el proveedor de la nube

pública, región, tamaño de la instancia, y las características que necesita. MongoDB Atlas

De sólo lectura, Redacted Vistas ofrece:

DBA pueden definir vistas no materializado que exponen sólo un subconjunto de

datos de una colección subyacente, es decir, una vista que filtra campos • Automatizado de base de datos y aprovisionamiento de la infraestructura para que los

específicos. DBA puede definir una vista de una colección que se genera a partir de equipos puedan obtener los recursos de base de datos que necesitan, cuando los

una agregación sobre otra colección (s) o vista. Los permisos concedidos en contra necesitan, y pueden escalar elásticamente siempre que lo necesiten.

de la vista se especifican por separado de permisos concedidos a la colección (s)

subyacente. • Las características de seguridad para proteger sus datos, con aislamiento de la

red, de grano fino control de acceso cifrado, auditoría, y de extremo a extremo,

lo que le permite cumplir con las normativas de la industria tales como HIPAA.
Las vistas se definen utilizando el estándar de tuberías Query Language MongoDB y

agregación. Permiten la inclusión o exclusión de los campos, el enmascaramiento de

los valores de los campos, el filtrado, la transformación del esquema, agrupar, • Construido en la replicación, tanto dentro de las regiones para siempre de la

ordenar, lo que limita, y la unión de los datos usando $ buscar y $ graphLookup a otra disponibilidad.

colección. • grupos globales le permite implementar una base de datos totalmente gestionada,

distribuida a nivel mundial que proporciona una baja latencia, sensible lectura y

escritura a los usuarios en cualquier lugar, con fuertes controles de colocación de


Usted puede aprender más acerca MongoDB vistas de sólo lectura de la
datos para el cumplimiento normativo.
documentación .

• Totalmente gestionado, las copias de seguridad continuas y consistentes con el punto

en el tiempo de recuperación para proteger contra la corrupción de datos, y la

capacidad de consultar las copias de seguridad en el lugar sin restauraciones

completas.

27
• monitoreo y alertas personalizables para una visibilidad completa de La plataforma de la puntada sin servidor aborda estos desafíos proporcionando

rendimiento de grano fino. cuatro servicios:

• parches automatizada y de un solo clic actualizaciones para nuevas versiones


• Stitc puntada QueryAnywher
h QueryAnywheree. Trae el lenguaje de consulta poderoso de MongoDB
principales de la base de datos, lo que le permite tomar ventaja de las últimas y
con seguridad hasta el borde. Un SDK intuitiva proporciona acceso completo a la
mejores características MongoDB.
base de datos MongoDB desde dispositivos móviles y la IO. reglas de acceso y

autenticación declarativa o programable le ayuden a controlar con precisión qué

• Vivir la migración para mover los racimos MongoDB autogestionados en el datos de sus usuarios y dispositivos pueden acceder.

servicio de Atlas o para mover grupos de Atlas entre los proveedores de la nube.

h funciones
• Stitc puntada Funciones. servicio y WebHooks HTTP de la puntada permiten crear

• de amplia cobertura en las principales plataformas en la nube con disponibilidad en APIs seguras como si integra con microservicios y lógica del lado del servidor. Lo

más de 50 regiones a través de la nube de Amazon Web Services, Microsoft Azure y mismo SDK que tiene acceso a su base de datos, también se conecta con

Google Cloud Platform. MongoDB Atlas ofrece una experiencia consistente a través servicios en la nube populares, enriquecer sus aplicaciones con una sola llamada

de cada una de las plataformas en la nube, asegurando los desarrolladores pueden al método. Su costumbre, funciones de JavaScript alojados traer todo junto.

implementar siempre que lo necesiten, sin comprometer la funcionalidad crítica o

correr el riesgo de lock-in.

• Stitc puntada Taparejadores. notificaciones en tiempo real permiten la aplicación


h disparadores

funciona reaccionan en respuesta a los cambios de base de datos, a medida que


MongoDB Atlas puede ser utilizado para todo, desde una Prueba rápida del concepto, a
ocurren, sin la necesidad de un desperdicio de votación, lag.
dev / entornos de prueba / control de calidad, a la alimentación de las aplicaciones de

producción. La experiencia del usuario en MongoDB Atlas, Cloud Manager, Gerente de

Operaciones y es consistente, asegurando que se mueve fácilmente desde local a la • Stitc puntada Mobile
h Mobile Sync Sync
(próximamente). sincroniza automáticamente los datos entre

nube pública, y entre los proveedores como evolucionan sus necesidades. los documentos en poder de forma local en MongoDB móvil y su base de datos

back-end, lo que ayuda a resolver los conflictos - incluso después de que el

dispositivo móvil ha sido desconectado.

Construido y gestionado por el mismo equipo que los ingenieros de la base de datos,

MongoDB Atlas es la mejor manera de ejecutar MongoDB en la nube. Aprende más o Al construir un móvil, la IO, o una aplicación web desde cero, añadiendo una nueva

implementar un cluster libre ahora. función para una aplicación existente, de manera segura exponer sus datos a los

nuevos usuarios, o la adición de integraciones de servicios, la puntada se puede tomar

el lugar de su servidor de aplicaciones y ahorrar escribir miles de líneas de código


MongoDB puntada
repetitivo.

los plataforma sin servidor MongoDB puntada facilita el desarrollo de aplicaciones con

acceso sencillo y seguro a los datos y servicios de cliente - conseguir sus aplicaciones

al mercado más rápido al tiempo que reduce los costes operativos. Conclusión

MongoDB es una base de datos moderna utilizada por organizaciones más sofisticadas
Puntada representa el siguiente paso en la migración de la industria para una
del mundo, a partir de nuevas empresas de vanguardia a las empresas más grandes,
infraestructura más ágil, gestionado. Las máquinas virtuales que se ejecutan en nubes
para crear aplicaciones nunca antes posible a una fracción del costo de las bases de
públicas (en particular AWS EC2) abrió el camino, seguido de contenedores alojados, y
datos heredados. MongoDB es el de más rápido crecimiento del ecosistema de base de
las ofertas sin servidor como AWS Lambda y Google Cloud funciones. Estos
datos, con más de 35 millones de descargas, miles de clientes y más de 1.000 socios de
desarrolladores de back-end todavía se requieren para implementar y gestionar los
tecnología y servicios. MongoDB usuarios se basan en las mejores prácticas discutidos
controles de acceso y APIs REST para proporcionar acceso a servicios en la nube,
en esta guía para mantener las operaciones de alta disponibilidad, seguras y escalables
microservicios públicas y de los datos del curso. desarrolladores frontend fueron
exigidos por las organizaciones de hoy.
frenados por la necesidad de trabajar con las API que no se adaptan a las consultas de

datos ricos.

28
Podemos ayudar recursos

Somos los expertos MongoDB. Más de 6.600 organizaciones confían en nuestros Para mayor información por favor visite mongodb.com o póngase en contacto con nosotros

productos comerciales. Ofrecemos software y servicios para hacer su vida más en sales@mongodb.com .

fácil:
Estudios de caso ( mongodb.com/customers ) Presentaciones ( mongodb.com/presentations

MongoDB Empresa Avanzada es la mejor manera de ejecutar MongoDB en su ) Formación en línea gratuito ( university.mongodb.com ) Seminarios y Eventos ( mongodb.com/ev

centro de datos. Es un paquete perfectamente ajustado de software avanzado, ) Documentación ( docs.mongodb.com ) MongoDB Empresa Descargar ( mongodb.com/download

soporte, certificaciones y otros servicios diseñados para la forma de hacer ) De base de datos MongoDB Atlas como un servicio para MongoDB ( mongodb.com/cloud

negocios. ) Backend MongoDB Stitch como un servicio ( mongodb.com/ nube / puntada )

MongoDB Atlas es una base de datos como un servicio para MongoDB, que le permite

centrarse en las aplicaciones en lugar de operaciones. Con MongoDB Atlas, que sólo

paga por lo que usa con un modelo de facturación por hora conveniente. Con el clic de

un botón, puede escalar hacia arriba y hacia abajo cuando se necesita, sin tiempo de

inactividad, la seguridad completa y de alto rendimiento.

MongoDB puntada es una plataforma sin servidor que acelera el desarrollo de

aplicaciones con acceso sencillo y seguro a los datos y servicios de cliente -

conseguir sus aplicaciones al mercado más rápidamente y reducir los costes

operativos y esfuerzo.

MongoDB móvil (Beta) MongoDB móvil le permite almacenar datos donde se

necesita, a partir de la IO, iOS y dispositivos móviles Android a su back-end -

usando una sola base de datos y consulta en lenguaje.

MongoDB Cloud Manager es una herramienta basada en la nube que te permite administrar

MongoDB en su propia infraestructura. Con aprovisionamiento automatizado, monitoreo de

grano fino, y las copias de seguridad continuas, se obtiene un conjunto completo de gestión

que reduce los gastos operativos, mientras que se mantiene el control total sobre sus bases

de datos.

Consulting MongoDB paquetes que llegan a una producción más rápida, que ayudará

a ajustar el rendimiento de la producción, le ayudan a escalar, y liberará para

centrarse en su próxima versión.

Formación MongoDB le ayuda a ser un experto en MongoDB, desde el diseño

hasta la operación de sistemas de misión crítica a gran escala. Tanto si eres un

desarrollador, DBA, o arquitecto, podemos hacer mejor en MongoDB.

Estados Unidos 866-237-8815 • INTL + 1-650-440-4474 • info@mongodb.com © 2018 MongoDB, Inc.

Todos los derechos reservados.

29

Potrebbero piacerti anche