4. Atlas, MongoDB as a Service
● Es un servicio para provisionar, monitorizar, realización de backups y mantener entornos de MongoDB en la nube.
DBaaS
● La operación de los clúster está delegada en MongoDB
● Las instancias son desplegadas sobre AWS (en el futuro habrá más proveedores de IaaS)
● Podemos escalar nuestros entornos en cualquier momento bajo demanda
● Soporte 24x7x365 sobre las instancias desplegadas
1 Introducción
1. ¿Qué es MongoDB Atlas?
5. Atlas, MongoDB as a Service
● Generación de despliegues bajo demanda
● POC’s
● Segmentación de proyectos por grupos independientes
● Monitorización de entornos out-of-box
● Gestión unificada y desatendida de backup
● API para creación de entornos y todo tipo de recursos del
servicio (clústers, grupos, alertas…)
1 Introducción
¿Por qué usarlo?
7. Atlas, MongoDB as a Service
2 Grupos
● Los grupos en Atlas son equivalentes a los grupos en Ops Manager.
● Un grupo sirve para organizar tus clústers desplegados, asignar permisos, crear usuarios, reglas de seguridad …
● Se pueden crear tanto grupos de Cloud Manager como de Atlas
● Cada grupo en Atlas tiene asociado un VPC de AWS
9. Atlas, MongoDB as a Service
3 Clústers
● Cualquier despliegue en Atlas sea en Replica Set o Sharding es un clúster en Atlas
● Atlas utiliza la versión 3.2 de MongoDB con WiredTiger como storage engine
● Al crear tu primer clúster de tu grupo, eliges la zona de AWS donde se desplegará. En ese mismo momento es cuando
se creará el VPC
● Los clúster siempre se despliegan en distintas zonas de disponibilidad dentro de la misma región de AWS
10. Atlas, MongoDB as a Service
3 Clústers
Para crear un clúster debemos indicar:
● Nombre del clúster
● Región (el primero del grupo)
● Tamaño de la instancia
● Replica Factor
● ¿Sharded Clúster?
● ¿Backup?
● ¿Usuario y Password?
Proceso de creación
11. Atlas, MongoDB as a Service
3 Clústers
Un clúster puede escalar de distintas formas
● Escalado vertical (IOPS, más disco o mayor tamaño de instancia)
● Cambio de Replica Set a Sharding
● Escalado horizontal (añadir más shards)
Escalado
26. Atlas, MongoDB as a Service
4 Seguridad
Cualquier clúster en Atlas es seguro por defecto:
● Se habilita SSL para la conexión
● Autenticación habilitada
● Filtrado de las conexiones mediante lista blancas de IP’s
● VPC Peering + Security Groups
● Cifrado de volumen de datos
● Utilización de tokens para uso de API’s e integraciones con
otros servicios
28. Atlas, MongoDB as a Service
5 Monitorización
Todo clúster en un grupo dispone de métricas:
● Estado de las Bases de datos
● Métricas de la base de datos
● Hardware
Además dispone de sistema de alertas:
● Problemas en el clúster
● Cambio de roles
● Facturación
● Notificaciones (SMS, correo / Hip Chat …)
30. Atlas, MongoDB as a Service
La condición de un backup es
desconocida hasta que no se realiza
su restore.
Erwin Schrödinger
31. Atlas, MongoDB as a Service
6 Backup
● Se puede habilitar el backup de nuestros clúster
● Se realiza un snapshot y guarda las diferencias entre los
sucesivos
● En Sharding, deshabilita el balanceador para realizar el
snapshot
● Utiliza compresión y deduplicación a nivel de bloque
● Todos los backups se almacenan en Norteamérica
independientemente de dónde se despliegue el clúster
● 2 Métodos de restauración (implica downtime)
36. Atlas, MongoDB as a Service
8 Migraciónes a Atlas
● MongoDB está desarrollando una herramienta para sincronizar dos instancias para poder migrar los datos en vivo
● Si decides migrar ten en cuenta:
○ Ejecuta un mongodump para tomar tiempos, calcular el espacio necesario del dump y calcular tu ventana
○ Planificar una versión de solo lectura de tu aplicación
○ Recolectar las IP’s de las aplicaciones para añadirlas a la whitelist de MongoDB
○ Switchear la aplicación a Atlas una vez migrado
○ Calcular la instancia de Atlas que vas a necesitar de cara a la migración, así como la región donde desplegarla
37. Atlas, MongoDB as a Service
8 Migraciones a Atlas
● La empresa Checkr ha desarrollado go-sync-mongo
https://github.com/checkr/go-sync-mongo
● Ejecutamos mongodump --oplogreplay
● Ejecutamos mongorestore --oplogreplay
● Ejecutamos go-sync-mongo + última operación de oplog restaurada
¡CUIDADO! : No es capaz de replicar operaciones de creación de nuevas bases de datos, deben existir en origen y destino.
Usar con mucha precaución.