MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Un aperçu de MongoDB Atlas :première partie

L'approche du cloud computing répond à certains des défis associés à l'exécution de systèmes de traitement de données. Les entreprises axées sur les données poussent à une transformation rapide de l'entreprise avec des services cloud, et beaucoup considèrent les services cloud comme une amélioration substantielle de l'automatisation, de la fiabilité et de la mise à l'échelle à la demande par rapport aux modèles d'infrastructure traditionnels qui les ont précédés. La nature à la demande du paradigme Software-as-a-Service (SaaS) signifie que les organisations peuvent acheter ce dont elles ont besoin, quand elles en ont besoin. Bien sûr, les aspects coût et rentabilité sont cruciaux, mais pas les seuls.

Dans la conception des architectures système, nous recherchons toujours les systèmes qui correspondent au bon nombre d'utilisateurs, au bon niveau de performance pour chacun. Nous voulons éviter les problèmes de performances et les goulots d'étranglement, et si ces problèmes se produisent, nous voulons un système qui s'adapte à l'évolution de la demande.

Nous voulons aussi que les choses soient plus rapides. Le processus de développement agile devient de plus en plus populaire; principalement parce qu'il accélère la livraison de la valeur commerciale initiale et (grâce à un processus de planification et de retour d'information continus) qu'il peut garantir que le retour sur investissement est maximisé.

Enfin, nous voulons une réduction de la complexité. Une caractéristique clé de MongoDB est sa redondance intégrée. Si vous avez deux nœuds de données ou plus, ils peuvent être configurés en tant qu'ensemble de répliques ou fragments mongodb. Sans automatisation adéquate en place, cela peut être une tâche récurrente pour plusieurs équipes (réseau, stockage, OS, etc.). L'automatisation du cloud peut vous aider à réduire les dépendances entre les différents groupes de votre organisation. Par exemple, vous n'aurez peut-être pas besoin d'impliquer l'équipe réseau lorsque vous créez un nouveau système de base de données.

L'automatisation du cloud permet non seulement d'économiser du temps et de l'argent, mais rend également votre organisation plus compétitive sur un marché difficile.

Dans ce blog, nous allons jeter un œil à Atlas, la solution de MongoDB qui tente de résoudre tous ces problèmes.

Démarrer avec MongoDB Atlas

Pour commencer avec MongoDB Atlas, rendez-vous sur https://cloud.mongodb.com. Dans le formulaire d'inscription, vous devez fournir des informations minimales telles que l'e-mail, l'entreprise, le pays et le numéro de téléphone portable.

MongoDB Atlas fait un excellent travail dans le provisionnement et la configuration de l'infrastructure. L'ensemble du processus utilise une interface Web dynamique qui vous guide à travers diverses options de déploiement. C'est simple, intuitif et ne nécessite aucune connaissance spécialisée.

Après la première connexion, il vous sera demandé de créer votre premier cluster dans l'un des trois nuages ​​les plus significatifs. Atlas fonctionne avec Amazon AWS, Google Cloud et Microsoft Azure. En fonction de votre choix, vous pouvez choisir l'emplacement de l'emplacement du centre de données préféré. Pour augmenter la disponibilité, vous pouvez définir plusieurs régions, l'isolation de la charge de travail ou définir diverses options de réplication. Chaque projet Atlas prend en charge jusqu'à 25 clusters, mais après le contact avec le support, vous devriez pouvoir en héberger davantage.

Vous devez sélectionner la taille appropriée du serveur, couplé avec IO et capacité de stockage. Dans cet article, nous utiliserons la version gratuite. Il est libre de commencer avec MongoDB Atlas pour le prototypage, le développement précoce ou pour apprendre. La carte de crédit n'est pas nécessaire, vous n'avez donc pas à vous soucier des coûts cachés. L'édition gratuite appelée M0 Sandbox est limitée à :

  • 512 Mo de stockage
  • vCPU partagé
  • RAM partagée
  • 100 connexions maximum
  • Il y a une limite d'un cluster M0 par projet.

Pour les clusters dédiés, MongoDB Atlas est facturé à l'heure en fonction de votre utilisation. Le tarif dépend d'un certain nombre de facteurs, dont le plus important est la taille et le nombre de serveurs que vous utilisez. Le prix commence par 0,08/h (M10, 2 Go de RAM, 10 Go de stockage, 1 vCPU) à M700 avec 768 Go de RAM, 4096 Go de stockage, 96 vCPU à partir de 33,26 $/h. Évidemment, vous devrez inclure d'autres facteurs de coût comme, par exemple, le coût des sauvegardes.

Selon les calculs de MongoDB, un ensemble de réplicas AWS à 3 nœuds de M40 et l'exécuter 24h/24 et 7j/7 pendant un mois en utilisant les 80 Go de stockage de bloc standard inclus vous coûterait environ 947 $.

La configuration de base fonctionne avec la réplication. Si vous avez besoin d'un partage, le type d'instance M30 est un minimum (8 Go de RAM, 40 Go de stockage, 2 vCPU, prix à partir de 0,54 $/h).

Configuration initiale de l'accès au réseau MongoDB Atlas

L'une des premières étapes que nous devons effectuer après la création du cluster consiste à activer une liste blanche d'adresses IP. Pour permettre l'accès de partout, vous pouvez définir l'entrée de la liste blanche sur 0.0.0.0/0, mais ce n'est pas recommandé. Si vous ne connaissez pas votre adresse IP, Atlas vous aidera à l'identifier.

Pour sécuriser davantage votre connexion, vous pouvez également configurer une connexion d'appairage réseau . Cette fonctionnalité n'est pas disponible pour les clusters M0, M2 et M5. L'appairage réseau permet la connectivité entre MongoDB VPC et votre fournisseur de cloud. Le réseau Peer VPC permet à différents VOC ti de communiquer dans un espace privé, le trafic ne traversant pas l'Internet public.

Pour commencer à travailler avec votre nouveau cluster, créez un utilisateur initial. Faites-le dans l'onglet Accès à la base de données. MongoDB utilise le mécanisme d'authentification Salted Challenge Response. Il s'agit d'un mécanisme de sécurité basé sur SHA-256, les informations d'identification de l'utilisateur par rapport au nom de l'utilisateur, au mot de passe et à la base de données d'authentification.

Migration du cluster MongoDB existant vers MongoDB Atlas

Il est également possible de migrer votre cluster sur site existant vers Mongo Atlas. Cela se fait via un service dédié appelé Live Migration Service. Le processus Atlas Live Migration diffuse les données via un serveur d'applications contrôlé par MongoDB.

La migration en direct fonctionne en gardant un cluster dans MongoDB Atlas synchronisé avec votre base de données source. Au cours de ce processus, votre application peut continuer à lire et à écrire à partir de votre base de données source. Étant donné que le processus surveille les modifications à venir, tout sera répliqué et la migration peut être effectuée en ligne. Vous décidez quand modifier le paramètre de connexion de l'application et effectuer le basculement. Pour rendre le processus moins enclin, Atlas fournit l'option Valider qui vérifie l'accès IP de la liste blanche, la configuration SSL, l'autorité de certification, etc.

Ce qui est important ici, c'est que le service est gratuit.

Si vous n'avez pas besoin de migration en ligne, vous pouvez également utiliser mongoimport. Utilisez mongo shell avec la version minimale 3.2.7, utilisez toujours SSL. Vous pouvez obtenir des données de test à partir d'ici.

​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.

Pour vérifier les données, connectez-vous avec 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>

Conclusion

C'est tout pour la première partie. Dans le prochain article, nous allons couvrir la surveillance, les sauvegardes, l'administration quotidienne et le nouveau service de MongoDB pour la construction de Data Lakes. Restez à l'écoute !