sql >> Base de Datos >  >> NoSQL >> MongoDB

Una descripción general de MongoDB Atlas:primera parte

El enfoque de computación en la nube aborda algunos de los desafíos asociados con la ejecución de sistemas de procesamiento de datos. Las empresas basadas en datos están impulsando una rápida transformación comercial con servicios en la nube, y muchas ven los servicios en la nube como una mejora sustancial en la automatización, la confiabilidad y la escalabilidad según demanda que los modelos de infraestructura tradicionales que surgieron antes. La naturaleza bajo demanda del paradigma de software como servicio (SaaS) significa que las organizaciones pueden comprar lo que necesitan, cuando lo necesitan. Por supuesto, los aspectos de costo y rentabilidad son cruciales, pero no los únicos.

En el diseño de arquitecturas de sistemas, siempre estamos buscando los sistemas que se ajusten al número adecuado de usuarios, al nivel adecuado de rendimiento para cada uno. Queremos evitar problemas de rendimiento y cuellos de botella, y si esos problemas ocurren, queremos un sistema que se adapte a la demanda cambiante.

También queremos que todo sea más rápido. El proceso de desarrollo ágil es cada vez más popular; principalmente porque acelera la entrega del valor comercial inicial y (a través de un proceso de planificación y retroalimentación continuos) puede garantizar que se maximice el ROI.

Por último, queremos una reducción de la complejidad. Una característica clave de MongoDB es su redundancia integrada. Si tiene dos o más nodos de datos, se pueden configurar como un conjunto de réplicas o fragmentos mongodb. Sin la automatización adecuada, puede ser una tarea recurrente para varios equipos (red, almacenamiento, sistema operativo, etc.). La automatización en la nube puede ayudarlo a reducir las dependencias entre los distintos grupos de su organización. Por ejemplo, es posible que no necesite involucrar al equipo de red cuando cree un nuevo sistema de base de datos.

La automatización en la nube no solo ahorra tiempo y dinero, sino que también hace que su organización sea más competitiva en el desafiante mercado.

En este blog, echaremos un vistazo a Atlas, la solución de MongoDB que intenta abordar todos estos problemas.

Introducción a MongoDB Atlas

Para comenzar con MongoDB Atlas, vaya a https://cloud.mongodb.com. En el formulario de registro, debe proporcionar información mínima, como correo electrónico, empresa, país y número de teléfono móvil.

MongoDB Atlas hace un trabajo excelente en el aprovisionamiento y la configuración de la infraestructura. Todo el proceso utiliza una interfaz web dinámica que lo guía a través de varias opciones de implementación. Es fácil, intuitivo y no requiere conocimientos especializados.

Después del primer inicio de sesión, se le pedirá que cree su primer clúster en una de las tres nubes más significativas. Atlas trabaja con Amazon AWS, Google Cloud y Microsoft Azure. Según su elección, puede seleccionar la ubicación del centro de datos preferido. Para aumentar la disponibilidad, puede configurar varias regiones, aislamiento de carga de trabajo o configurar varias opciones de replicación. Cada proyecto de Atlas admite hasta 25 clústeres, pero después del contacto con el soporte, debería poder alojar más.

Debe seleccionar el tamaño apropiado del servidor, junto con IO y capacidad de almacenamiento. En este artículo, utilizaremos la versión gratuita. Es gratis comenzar con MongoDB Atlas para la creación de prototipos, el desarrollo temprano o para aprender. No se necesita la tarjeta de crédito, por lo que no necesita preocuparse por los costos ocultos. La edición gratuita llamada M0 Sandbox está limitada a:

  • 512 MB de almacenamiento
  • vCPU compartida
  • RAM compartida
  • 100 conexiones máx.
  • Hay un límite de un clúster M0 por proyecto.

Para clústeres dedicados, MongoDB Atlas se factura por hora en función de la cantidad que utilice. La tarifa depende de una serie de factores, el más importante, el tamaño y la cantidad de servidores que utiliza. El precio comienza con 0,08/h (M10, 2 GB de RAM, 10 GB de almacenamiento, 1 vCPU) hasta M700 con 768 GB de RAM, 4096 GB de almacenamiento, 96 vCPU desde 33,26 $/h. Obviamente, deberá incluir otros factores de costo como, por ejemplo, el costo de las copias de seguridad.

Según los cálculos de MongoDB, una réplica de M40 de 3 nodos de AWS y ejecutarla las 24 horas del día, los 7 días de la semana durante un mes utilizando los 80 GB de almacenamiento en bloque estándar incluidos le costaría alrededor de $947.

La configuración básica funciona con replicación. Si necesita fragmentación, el tipo de instancia M30 es un mínimo (8 GB de RAM, 40 GB de almacenamiento, 2 vCPU, precio desde $0,54/hora).

Configuración inicial de MongoDB Atlas Network Access

Uno de los primeros pasos que debemos realizar después de la creación del clúster es habilitar una lista blanca de IP. Para habilitar el acceso desde cualquier lugar, puede configurar la entrada de la lista blanca en 0.0.0.0/0, pero no se recomienda. Si no conoce su dirección IP, Atlas le ayudará a identificarla.

Para mantener su conexión más segura, también puede configurar una conexión de interconexión de red . Esta función no está disponible para los clústeres M0, M2 y M5. El emparejamiento de redes permite la conectividad entre MongoDB VPC y su proveedor de nube. La red Peer VPC permite que diferentes VOC ti se comuniquen en un espacio privado, el tráfico no atraviesa la Internet pública.

Para comenzar a trabajar con su nuevo clúster, cree un usuario inicial. Hágalo en la pestaña Acceso a la base de datos. MongoDB utiliza el mecanismo de autenticación de respuesta de desafío salado. Es un mecanismo de seguridad basado en SHA-256, credenciales de usuario contra el nombre de usuario, contraseña y base de datos de autenticación.

Migración del clúster MongoDB existente a MongoDB Atlas

También existe la posibilidad de migrar su clúster local existente a Mongo Atlas. Se realiza a través de un servicio dedicado llamado Servicio de migración en vivo. El proceso Atlas Live Migration transmite datos a través de un servidor de aplicaciones controlado por MongoDB.

La migración en vivo funciona manteniendo un clúster en MongoDB Atlas sincronizado con su base de datos de origen. Durante este proceso, su aplicación puede continuar leyendo y escribiendo desde su base de datos de origen. Dado que el proceso observa los próximos cambios, todos se replicarán y la migración se puede realizar en línea. Usted decide cuándo cambiar la configuración de conexión de la aplicación y realizar la transición. Para hacer el proceso menos propenso, Atlas proporciona la opción Validar que verifica el acceso IP de la lista blanca, la configuración SSL, CA, etc.

Lo importante aquí es que el servicio es gratuito.

Si no necesita una migración en línea, también puede usar mongoimport. Use mongo shell con la versión mínima 3.2.7 siempre use SSL. Puede obtener datos de prueba desde aquí.

​mongoimport --host TestCluster-shard-0/testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-****.azure.mongodb.net:27017,testcluster-shard-******.azure.mongodb.net:27017 --ssl --username admin --authenticationDatabase admin  --type JSON --file city_inspections.json

2019-08-15T21:53:09.921+0200 WARNING: ignoring unsupported URI parameter 'replicaset'

2019-08-15T21:53:09.922+0200 no collection specified

2019-08-15T21:53:09.922+0200 using filename 'city_inspections' as collection

Enter password:



2019-08-15T21:53:14.288+0200 connected to: mongodb://testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017,testcluster-shard-*****.azure.mongodb.net:27017/?replicaSet=TestCluster-shard-0

2019-08-15T21:53:17.289+0200 [........................] test.city_inspections 589KB/23.2MB (2.5%)

2019-08-15T21:53:20.290+0200 [#.......................] test.city_inspections 1.43MB/23.2MB (6.2%)

2019-08-15T21:53:23.292+0200 [##......................] test.city_inspections 2.01MB/23.2MB (8.6%)

...

2019-08-15T21:55:09.140+0200 [########################] test.city_inspections 23.2MB/23.2MB (100.0%)

2019-08-15T21:55:09.140+0200 81047 document(s) imported successfully. 0 document(s) failed to import.

Para comprobar los datos, inicie sesión con mongo shell.

mongo "mongodb+srv://testcluster-*****.azure.mongodb.net/test" --username admin

MongoDB shell version v4.2.0

Enter password:

connecting to: mongodb://testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017/test?authSource=admin&compressors=disabled&gssapiServiceName=mongodb&replicaSet=TestCluster-shard-0&ssl=true

2019-08-15T22:15:58.068+0200 I  NETWORK [js] Starting new replica set monitor for TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.069+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-01-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.070+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-00-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.070+0200 I  CONNPOOL [ReplicaSetMonitor-TaskExecutor] Connecting to testcluster-shard-00-02-*****.azure.mongodb.net:27017

2019-08-15T22:15:58.801+0200 I  NETWORK [ReplicaSetMonitor-TaskExecutor] Confirmed replica set for TestCluster-shard-0 is TestCluster-shard-0/testcluster-shard-00-00-*****.azure.mongodb.net:27017,testcluster-shard-00-01-*****.azure.mongodb.net:27017,testcluster-shard-00-02-*****.azure.mongodb.net:27017

Implicit session: session { "id" : UUID("6a5d1ee6-064b-4ba8-881a-71aa4aef4983") }

MongoDB server version: 4.0.12

WARNING: shell and server versions do not match

MongoDB Enterprise TestCluster-shard-0:PRIMARY> show collections;

city_inspections

MongoDB Enterprise TestCluster-shard-0:PRIMARY> db.city_inspections.find();

{ "_id" : ObjectId("56d61033a378eccde8a83557"), "id" : "10284-2015-ENFO", "certificate_number" : 9287088, "business_name" : "VYACHESLAV KANDZHANOV", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Misc Non-Food Retail - 817", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2655 } }

{ "_id" : ObjectId("56d61033a378eccde8a83559"), "id" : "10302-2015-ENFO", "certificate_number" : 9287089, "business_name" : "NYC CANDY STORE SHOP CORP", "date" : "Feb 25 2015", "result" : "No Violation Issued", "sector" : "Cigarette Retail Dealer - 127", "address" : { "city" : "NEW YORK", "zip" : 10030, "street" : "FREDRCK D BLVD", "number" : 2653 } }

...

{ "_id" : ObjectId("56d61033a378eccde8a8355e"), "id" : "10391-2015-ENFO", "certificate_number" : 3019415, "business_name" : "WILFREDO DELIVERY SERVICE INC", "date" : "Feb 26 2015", "result" : "Fail", "sector" : "Fuel Oil Dealer - 814", "address" : { "city" : "WADING RIVER", "zip" : 11792, "street" : "WADING RIVER MANOR RD", "number" : 1607 } }

Type "it" for more

MongoDB Enterprise TestCluster-shard-0:PRIMARY>

Conclusión

Eso es todo por la primera parte. En el próximo artículo, cubriremos el monitoreo, las copias de seguridad, la administración diaria y el nuevo servicio de MongoDB para crear lagos de datos. ¡Estén atentos!