Overview
Con MongoDB Atlas como tu plataforma de datos, tu enfoque operativo puede alejarse de las tareas operativas y flujos de trabajo mundanos requeridos para compilar y mantener la infraestructura de la base de datos, permitiéndote concentrarte en ayudar a los ingenieros a agregar valor al negocio. En lugar de mantener el hardware y estar al día con los parches de software a nivel de sistema operativo, los ingenieros pueden dedicar su tiempo y energía a desarrollar modelos de datos que satisfagan las necesidades actuales y futuras de su empresa.
Este documento describe algunas de las mejores prácticas para establecer y mantener una implementación exitosa en producción de MongoDB utilizando clústeres de MongoDB Atlas.
Para obtener más mejores prácticas de Atlas, consulta el Architecture Center de Atlas.
Tip
Para aprender sobre consideraciones de dimensionamiento, véase Dimensionamiento de clústeres Atlas y selección de nivel.
Para obtener más información sobre resiliencia, consulte Compile una aplicación resiliente con MongoDB Atlas.
Para obtener más información sobre Continuous Cloud Backup. ver Recupera un punto en el tiempo con las copias de seguridad continuas en la nube.
Roles y responsabilidades
MongoDB gestiona y opera la infraestructura requerida para proporcionar el servicio de base de datos de MongoDB al cliente. Las responsabilidades de MongoDB incluyen lo siguiente:
Gestione los clústeres de bases de datos y la infraestructura subyacente, asegurando la disponibilidad, estabilidad y rendimiento de MongoDB, respaldado por un 99.995% Acuerdo de Nivel de Servicio (SLA) de Disponibilidad para clústeres de tamaño
M10y mayores.Asegura la salud de los nodos de cómputo subyacentes. Asegúrate de que están activos, que tienen conectividad de red y que cuentan con todos los parches recomendados a nivel de sistema operativo para mantener el Acuerdo de Nivel de Servicio (ANS) de tiempo de actividad.
Administrar la configuración de la base de datos MongoDB en función de las elecciones de diseño específicas del cliente realizadas a través de la interfaz de usuario de Atlas o la REST API.
Aplica todas las actualizaciones de mantenimiento de MongoDB automáticamente para garantizar que se estén utilizando las últimas correcciones de errores del producto.
Administra el perfil de seguridad, incluidos el Control de Acceso Basado en Roles, adición de direcciones IP a una lista de acceso IP y emparejamiento para maximizar la seguridad del clúster según las indicaciones del cliente.
Proporcione servicios de copia de seguridad y restauración.
El cliente continúa desarrollando e implementando aplicaciones que acceden a MongoDB, sin tener que gestionar directamente los recursos subyacentes de la base de datos y/o la infraestructura.
Gestión de clústeres
Importante
Atlas no admite la migración de clústeres de un Proyecto a otro. En su lugar, realiza una migración en vivo.
MongoDB Atlas abstrae las operaciones de base de datos para que puedas centrarte en las decisiones de gestión de alto nivel y alto valor. Puedes gestionar el acceso a tus clústeres de Atlas con Roles de Atlas user. Puedes aplicar estos permisos sólo a nivel de organización o nivel de proyecto. Por lo tanto, debe planificar cuidadosamente la jerarquía de sus organizaciones y proyectos.
Tip
Si necesitas crear más proyectos que el límite de 250 organizaciones de Atlas, crea más organizaciones para almacenarlos. Para obtener más información, consulte Límites de organización y proyecto de Atlas.
Para crear una jerarquía bien diseñada de organizaciones y proyectos dentro de Atlas, divide tus clústeres en proyectos que tengan sentido para tus casos de uso. Esto permite la máxima eficiencia empresarial con una fricción operativa mínima.
Tip
Utiliza Facturación de varias organizaciones para vincular varias organizaciones de Atlas y recibir una sola factura por todas ellas. Para obtener más información, consulta Casos de uso de facturación en varias organizaciones.
El nivel de la organización
A nivel de Organización, puedes implementar controles de seguridad y crear usuarios que funcionen en uno o más Proyectos. La facturación de Atlas se realiza a nivel de la organización.
Para controlar eficientemente el acceso y los privilegios de los usuarios, puedes agruparlos en equipos a nivel de la Organización.
Importante
No incluya información confidencial en los nombres de su organización.
El nivel del proyecto
Los proyectos ofrecen un aislamiento de seguridad y un límite de autorización, por lo que normalmente son asignados por el equipo de la aplicación y el entorno de la aplicación. Por ejemplo, dentro de dos equipos de aplicación puede haber seis proyectos: uno para cada equipo en los entornos de Desarrollo, Preproducción y Producción.
Puedes crear usuarios y roles a nivel de proyecto en Atlas con el acceso adecuado a los diferentes entornos de aplicaciones de producción y desarrollo.
Las personas usuarias con el rol de
Project Read Onlypueden acceder a la supervisión a nivel de proyecto y a los metadatos de la salud del sistema sin tener acceso a ningún dato de colección ni a operaciones administrativas.Los usuarios con el rol
Project Cluster Managerpueden escalar los clústeres y realizar otras operaciones administrativas, pero no tienen acceso a nivel de datos.
Importante
Funcionalidades no disponibles en los Clústeres Flex
Los clústeres flexibles no admiten la mayoría de las siguientes responsabilidades. Para obtener más información, consulte Limitaciones del clúster flexible.
Otras responsabilidades a nivel de proyecto incluyen:
Configura la protección contra terminación para evitar que los usuarios borren accidentalmente tu clúster.
Implementar funcionalidades opcionales de seguridad empresarial, que incluyan:
Configura la configuración de acceso a la red, incluyendo:
Define alertas de base de datos apropiadas a través de la interfaz de Atlas o la API y responde a aquellas que requieran atención.
Integrate con sistemas de supervisión/alerta externos, como DataDog y New Relic.
Importante
A partir del miércoles 16 de junio de 2021, New Relic ya no admite la integración basada en complementos con MongoDB. No recomendamos que se registre para la integración basada en complementos.
Para aprender más, consulte la instrucción EOL del Plugin de New Relic.
Importante
Convenciones de nombres de clúster
Elegir la convención de nomenclatura adecuada para tus clústeres de Atlas es un buen primer paso para operar un entorno de producción exitoso. Una vez que hayas nombrado un clúster, no podrás cambiar su nombre, por lo que es importante hacerlo bien desde el principio. Las siguientes sugerencias pueden facilitar el análisis de registros y la diferenciación de clústeres.
Usa nombres descriptivos en minúsculas.
Evita caracteres especiales.
Junta palabras con guiones o guiones bajos. Evita los espacios en blanco entre palabras.
Emplear una convención que deje claro si un clúster es para producción, pruebas previas o propósitos de desarrollo.
No incluya información confidencial en los nombres de sus clústeres.
Algunos ejemplos de buenos nombres de clúster:
prod-aws-websitestaging-gcp-internaldev-azure-analytics
Clústeres de una sola región y de varias regiones
La alta disponibilidad y durabilidad del clúster dependen de la configuración de implementación geográfica del clúster. Los clústeres que se implementan dentro de una sola región se distribuyen entre zonas de disponibilidad dentro de esa región, por lo que pueden soportar interrupciones parciales del servicio de la región sin que se interrumpa la disponibilidad de lectura o guardado.
Puede optar por distribuir sus clústeres en dos o más regiones para una mayor resiliencia y aislamiento de cargas de trabajo.
El orden de las regiones determina el orden de prioridad para la ubicación del nodo primario. Por lo tanto, si deseas dirigir las operaciones de escritura en la base de datos a una región en particular cuando esa región esté disponible, debes listar esa región primero. La segunda región de la lista debe ser la segunda opción para donde deben dirigirse los guardados si la primera región no está disponible.
El siguiente ejemplo de Atlas en la IU de Crear un clúster muestra un clúster multiregional con nodos elegibles en tres regiones diferentes, organizados por prioridad de mayor a menor:

Si la región us-east-1 no está disponible, se elegirá un nuevo principal en la región us-west-1.
Nota
Los clústeres deben tener un número impar de nodos para garantizar la elegibilidad primaria. Para obtener más información, consulta Elecciones del set de réplicas.
Implementación en dos regiones
Implementar un clúster en dos regiones garantiza que siempre se mantenga una copia de los datos en más de una región. Sin embargo, la pérdida de la región que contiene la mayoría de los nodos del clúster dejará la segunda región en un estado de solo lectura hasta que un administrador intervenga o la región original se vuelva disponible.
Implementación en tres o más regiones
Implementar un clúster en tres o más regiones garantiza que el clúster pueda soportar una Interrupción del servicio completa a nivel de región y mantenga la disponibilidad de lectura y guardar, siempre que la capa de la aplicación sea tolerante a fallas.
Si mantener las operaciones de guardar en su región preferida en todo momento es una prioridad alta, se recomienda implementar el clúster de modo que al menos dos nodos elegibles se encuentren en al menos dos centros de datos dentro de su región preferida.
Clústeres globales
Para obtener el mejor rendimiento de la base de datos en una implementación a nivel mundial, los usuarios pueden configurar un clúster global que utiliza particionado basada en la ubicación para minimizar la latencia de lectura y escritura. Los usuarios con requisitos de almacenamiento geográfico también pueden asegurarse de que los datos se almacenen en una determinada área geográfica.
Información confidencial
No proporciones información sensible como información de identificación personal (PII) o información de salud protegida (PHI) para los siguientes ítems:
Gestión de aplicaciones
Las responsabilidades a nivel de aplicación incluyen:
Diseño de esquemas, incluyendo la optimización de consultas e índices.
Selección de topología y nivel de clúster. Elegir el tamaño y la topología de clúster adecuados (set de réplicas o clúster), junto con la capacidad de almacenamiento e IOPS es crucial para un rendimiento óptimo de la base de datos.
Provisionamineto de clústeres no productivos. Las copias de seguridad de producción pueden restaurarse en clústeres que no sean de producción con la interfaz de usuario de Atlas o la API.
Planificación de capacidad. Determinar cuándo se necesita capacidad computacional adicional, generalmente utilizando la telemetría de supervisión que proporciona Atlas. Se puede añadir capacidad adicional sin tiempo de inactividad de la aplicación y, opcionalmente, se puede activar el escalado automático para responder automáticamente a picos de uso.
Decidir cuándo implementar una actualización de versiónimportante de la base de datos.
Implementación y prueba de un plan de copia de seguridad y restauración.
Garantizar que las aplicaciones gestionen correctamente la conmutación por error del clúster mediante pruebas.
Configurando servicios de análisis de datos con herramientas como BI Connector y Charts.
Escalar clústeres
MongoDB Atlas ofrece dos métodos de escalado, vertical y horizontal.
El escalado vertical implica aumentar la capacidad de almacenamiento, la potencia de computación y/o la tasa de IOPS de un clúster. El escalado vertical se puede lograr rápidamente y es útil para períodos de máxima utilización. El escalado vertical a partir de clústeres gratuitos o Flex requiere algunos minutos de inactividad. El escalado entre clústeres dedicados (M10 y superiores) se produce sin tiempo de inactividad.
Al hacer escalado vertical, se recomiendan los clústeres M30 y superiores para los entornos de producción. Puedes utilizar los siguientes niveles de clúster como entornos de producción para aplicaciones de bajo tráfico, pero se recomienda utilizar estos niveles para entornos de desarrollo:
{+Clusters Flex+}
M10yM20{+Clusters dedicados+}
El escalado horizontal implica implementar granularidad o agregar particiones en un clúster particionado existente. La escalado horizontal requiere una planificación y ejecución cuidadosas, y forma parte de una estrategia de crecimiento a largo plazo para los clústeres de M30+. También puedes reducir el número de particiones en un clúster particionado.
IMPORTANTE: Cuando remuevas una partición en 8.0, Atlas utiliza el comando moveCollection para mover toda colección no particionada en esa partición a una partición restante. Todas las colecciones no particionadas permanecen En linea durante este proceso.
Todas las colecciones particionadas permanecen en línea y disponibles durante el proceso de eliminación de particiones. Debes activar el balanceador para vaciar las colecciones particionadas de la partición eliminada.
Atlas mueve cualquier colección no particionada que no pueda vaciarse mediante el comando
moveCollectionutilizando el comando movePrimary. Para obtener más información sobre las limitaciones demoveCollection, consulta Restricciones.movePrimaryes una operación sin conexión.Para obtener más información sobre la remoción de particiones, consulta Remover particiones de un clúster.
El particionado vertical y horizontal se pueden combinar en Atlas. Por ejemplo, un clúster particionado puede escalarse verticalmente hacia arriba durante un período pico, aumentando la capacidad de almacenamiento y la potencia de cómputo de los nodos individuales del clúster particionado.
Por defecto, Atlas realiza el escalado automático del almacenamiento de clústeres de forma vertical hasta el límite de tamaño de nivel de clúster configurado.
Puedes configurar Atlas para escalar automáticamente el nivel de clúster y la capacidad de almacenamiento del clúster en respuesta a un aumento en el uso del clúster, lo que permite una respuesta rápida y automatizada a la necesidad de una mayor potencia informática de almacenamiento.
Gestionar Windows de mantenimiento
Atlas realiza operaciones regulares de mantenimiento para garantizar que tus clústeres se mantengan seguros, estables y actualizados. Por defecto, el mantenimiento se ejecuta automáticamente de forma continua para preservar la disponibilidad continua. Sin embargo, puedes configurar los periodos de mantenimiento para obtener más control sobre cuándo se llevan a cabo estas operaciones.
los períodos de mantenimiento son especialmente útiles para:
Alinear el mantenimiento entre los entornos: Retrase el mantenimiento una o dos semanas en algunos entornos para probar las actualizaciones en desarrollo o pruebas antes de que lleguen a producción.
Controla el tiempo y las notificaciones: programa el mantenimiento durante las horas valle y recibe notificaciones anticipadas para que puedas planificar en consecuencia.
Lotes de operaciones de mantenimiento: utilice la funcionalidad de auto-retraso para consolidar automáticamente varias operaciones de mantenimiento, reduciendo el número total de eventos de mantenimiento que experimentan sus clústeres.
Los periodos de mantenimiento se aplican a Clústers Dedicados (M10 y superiores) y se configuran a nivel de Proyecto. Para obtener más información sobre cómo configurar los periodos de mantenimiento y utilizar funcionalidades como el auto-diferimiento, consulta Configurar periodo de mantenimiento.
Multiarrendamiento
Puedes implementar la multi-inquilino en Atlas para que una sola instancia de una aplicación sirva a múltiples inquilinos. Tus decisiones de diseño iniciales para una arquitectura multi-inquilino pueden tener efectos imprevistos con el tiempo a medida que los requisitos evolucionen o cambien las expectativas de escalado. Para obtener más información, consulta Compilar una arquitectura multi-inquilino.
Delegar y consultar datos de ficheros
Como parte del ciclo de vida de los datos, si necesitas trasladar datos fríos a un nivel de almacenamiento diferente, puedes configurar una regla de Archivo en línea de Atlas para trasladar datos en función de una fecha o criterios personalizados. Una vez que Atlas almacena tus datos de acceso poco frecuente, tienes una vista unificada de tus datos de Atlas y del fichero en linea a través de una instancia federada de base de datos de solo lectura.
Query de datos federados
Puedes utilizar Atlas Data Federation para consultar datos en su lugar en una infraestructura diversa o para mover datos entre varios sistemas. Puedes usar el pipeline de agregación en datos de múltiples fuentes para extraer perspectivas de tus datos o transformarlos para otros fines. Por ejemplo, puedes usar $out a S3 y $out a Atlas para mover datos entre niveles de almacenamiento. También puedes usar $out a S3 para transformar fácilmente datos de tu clúster de Atlas en JSON, BSON, CSV, TSV, Avro, Parquet y ORC, así como guardarlos en AWS S3 para alimentar sistemas posteriores que necesiten acceso.
Audita usuarios temporales de base de datos
Habilitar la auditoría para todos los usuarios de base de datos, incluidos los usuarios de servicios de aplicaciones, podría afectar gravemente el rendimiento del clúster. Si necesitas auditar las acciones de un usuario temporal de la base de datos, puedes crear un rol personalizado orientado a la auditoría, crear un usuario temporal con privilegios elevados y conceder a ese usuario el rol personalizado para auditar sus acciones.
Para auditar las acciones de un usuario temporal de la base de datos:
Crear un rol personalizado para auditar.
Crea un rol personalizado dirigido a auditar.
Habilita auditar la base de datos.
Para auditar las operaciones de CRUD para el rol que creaste, habilita la auditoría de la base de datos."
Cree un usuario temporal.
Para auditar sus acciones, crea un usuario temporal.
Asignar al usuario el rol personalizado creado para la auditoría. Cuando cree el usuario, seleccione la opción Save as temporary user, y luego seleccione el período de tiempo que desea que el usuario exista. Cuando este período llegue a su fin, Atlas borrará al usuario.
Agregar una entrada temporal a una lista de acceso IP.
Agrega una entrada temporal a la lista de acceso IP para limitar el acceso de los usuarios temporales a los clústeres de Atlas.
Cuando cree la entrada de la lista de acceso IP para el usuario temporal, seleccione la opción Save as temporary access list, y luego seleccione el periodo de tiempo durante el cual desea que exista la entrada en la lista de acceso. Cuando transcurre este periodo, Atlas elimina la entrada de la lista de acceso.
Descarga los registros.
Para auditar las acciones del usuario temporal de la base de datos, descarga los registros.
Integraciones opcionales de supervisión y registro
Para obtener más información sobre las integraciones de supervisión y registro disponibles en Atlas, consulta Supervisa Tus Clústeres.
Gestionar el volumen de datos del clúster
Atlas ofrece las siguientes herramientas integradas para ayudarte a gestionar el volumen de datos de tu clúster:
El autoescalado de clúster reacciona automáticamente a la carga de tu aplicación y ajusta el nivel de clúster.
Online Archive automatiza el archivado de datos a los que se accede con poca frecuencia.
Búsqueda en nodos escalan de forma independiente y delegan el almacenamiento de índices de MongoDB Search y MongoDB Vector Search de tu clúster.
Índices TTL eliminan automáticamente los documentos de una colección de series de tiempo para liberar espacio.
Además de estas herramientas, consulta la guía de dimensionamiento de clústeres para aprender cómo ajustar el tamaño de tu clúster hacia arriba o hacia abajo. También puede pausar un clúster para ahorrar costos al apagarlo temporalmente, mientras conserva los datos hasta por 30 días.
Soporte
Hay disponibles diferentes niveles de soporte, incluidas opciones para clientes en desarrollo y para clientes empresariales.
Las posibles áreas de soporte incluyen:
Problemas y preocupaciones con los clústeres de MongoDB en gestión.
Consultas relacionadas con el desempeño.
Consulta del lado de la aplicación y controlador.