MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Ein Überblick über den MongoDB-Atlas:Teil Eins

Der Cloud-Computing-Ansatz geht einige der Herausforderungen an, die mit dem Betrieb von Datenverarbeitungssystemen verbunden sind. Datengesteuerte Unternehmen treiben mit Cloud-Diensten eine schnelle Geschäftstransformation voran, und viele sehen Cloud-Dienste als eine wesentliche Verbesserung der Automatisierung, Zuverlässigkeit und Skalierung nach Bedarf im Vergleich zu den herkömmlichen Infrastrukturmodellen, die es zuvor gab. Die On-Demand-Natur des Software-as-a-Service (SaaS)-Paradigmas bedeutet, dass Unternehmen kaufen können, was sie brauchen, wenn sie es brauchen. Natürlich sind die Kosten- und Wirtschaftlichkeitsaspekte entscheidend, aber nicht die einzigen.

Beim Entwurf von Systemarchitekturen suchen wir immer nach Systemen, die für die richtige Anzahl von Benutzern mit dem richtigen Leistungsniveau für jeden geeignet sind. Wir wollen Leistungsprobleme und Engpässe vermeiden, und wenn diese Probleme auftreten, wollen wir ein System, das sich an die sich ändernde Nachfrage anpasst.

Wir wollen auch schneller. Der agile Entwicklungsprozess wird immer beliebter; hauptsächlich, weil es die Bereitstellung des anfänglichen Geschäftswerts beschleunigt und (durch einen Prozess der kontinuierlichen Planung und des Feedbacks) sicherstellen kann, dass der ROI maximiert wird.

Zu guter Letzt wollen wir die Komplexität reduzieren. Ein Hauptmerkmal von MongoDB ist die eingebaute Redundanz. Wenn Sie über zwei oder mehr Datenknoten verfügen, können diese als Replikatsatz oder Mongodb-Shards konfiguriert werden. Ohne angemessene Automatisierung kann dies eine wiederkehrende Aufgabe für mehrere Teams sein (Netzwerk, Speicher, Betriebssystem usw.). Cloud-Automatisierung kann Ihnen helfen, Abhängigkeiten zwischen den verschiedenen Gruppen in Ihrer Organisation zu reduzieren. Beispielsweise müssen Sie das Netzwerkteam möglicherweise nicht einbeziehen, wenn Sie ein neues Datenbanksystem erstellen.

Cloud-Automatisierung spart nicht nur Zeit und Geld, sondern macht Ihr Unternehmen auch wettbewerbsfähiger auf dem herausfordernden Markt.

In diesem Blog werfen wir einen Blick auf Atlas, die Lösung von MongoDB, die versucht, all diese Probleme zu lösen.

Erste Schritte mit MongoDB Atlas

Um mit MongoDB Atlas zu beginnen, gehen Sie zu https://cloud.mongodb.com. Im Registrierungsformular müssen Sie nur minimale Informationen wie E-Mail, Firma, Land und Handynummer angeben.

MongoDB Atlas leistet hervorragende Arbeit bei der Bereitstellung und Einrichtung der Infrastruktur. Der gesamte Prozess verwendet eine dynamische Weboberfläche, die Sie durch verschiedene Bereitstellungsoptionen führt. Es ist einfach, intuitiv und erfordert keine Fachkenntnisse.

Nach der ersten Anmeldung werden Sie aufgefordert, Ihren ersten Cluster zu erstellen eine der drei bedeutendsten Wolken. Atlas funktioniert mit Amazon AWS, Google Cloud und Microsoft Azure. Basierend auf Ihrer Auswahl können Sie den Standort des bevorzugten Rechenzentrumsstandorts auswählen. Um die Verfügbarkeit zu erhöhen, können Sie Multi-Region, Workload Isolation oder verschiedene Replikationsoptionen festlegen. Jedes Atlas-Projekt unterstützt bis zu 25 Cluster, aber nach dem Kontakt mit dem Support sollten Sie in der Lage sein, mehr zu hosten.

Sie müssen die geeignete Größe des Servers auswählen, gekoppelt mit IO und Speicherkapazität. In diesem Artikel verwenden wir die kostenlose Version. Es ist kostenlos, mit MongoDB Atlas für das Prototyping, die frühe Entwicklung oder zum Lernen zu beginnen. Die Kreditkarte wird nicht benötigt, sodass Sie sich keine Gedanken über versteckte Kosten machen müssen. Die kostenlose Edition namens M0 Sandbox ist beschränkt auf:

  • 512 MB Speicherplatz
  • vCPU freigegeben
  • RAM freigegeben
  • Maximal 100 Verbindungen
  • Es gibt ein Limit von einem M0-Cluster pro Projekt.

Für dedizierte Cluster wird MongoDB Atlas stündlich basierend auf Ihrer Nutzung abgerechnet. Die Rate hängt von einer Reihe von Faktoren ab, vor allem von der Größe und Anzahl der von Ihnen verwendeten Server. Der Preis beginnt bei 0,08/h (M10, 2 GB RAM, 10 GB Speicher, 1 vCPU) bis M700 mit 768 GB RAM, 4096 GB Speicher, 96 vCPUs ab 33,26 $/h. Natürlich müssten Sie andere Kostenfaktoren einbeziehen, wie zum Beispiel die Kosten für Backups.

Laut MongoDB-Berechnungen würde Sie ein AWS, ein 3-Knoten-Nachbildungssatz von M40s, rund 947 $ kosten, wenn Sie ihn einen Monat lang rund um die Uhr mit den enthaltenen 80 GB Standard-Blockspeicher ausführen.

Die Grundeinstellung funktioniert mit Replikation. Wenn Sie Sharding benötigen, ist der Instance-Typ M30 mindestens erforderlich (8 GB RAM, 40 GB Speicher, 2 vCPUs, Preis ab 0,54 $/Std.).

MongoDB Atlas Network Access Ersteinrichtung

Einer der ersten Schritte, die wir nach der Cluster-Erstellung durchführen müssen, ist die Aktivierung einer IP-Whitelist. Um den Zugriff von überall zu ermöglichen, können Sie den Whitelist-Eintrag auf 0.0.0.0/0 setzen, aber es wird nicht empfohlen. Wenn Sie Ihre IP-Adresse nicht kennen, hilft Atlas Ihnen, sie zu identifizieren.

Um Ihre Verbindung sicherer zu halten, können Sie auch eine Netzwerk-Peering-Verbindung einrichten . Diese Funktion ist für M0-, M2- und M5-Cluster nicht verfügbar. Netzwerk-Peering ermöglicht die Konnektivität zwischen MongoDB VPC und Ihrem Cloud-Anbieter. Das Peer-VPC-Netzwerk ermöglicht es verschiedenen VOC ti, im privaten Bereich zu kommunizieren, der Datenverkehr durchquert nicht das öffentliche Internet.

Um mit der Arbeit mit Ihrem neuen Cluster zu beginnen, erstellen Sie einen ersten Benutzer. Tun Sie dies auf der Registerkarte Datenbankzugriff. MongoDB verwendet den Salted-Challenge-Response-Authentifizierungsmechanismus. Es ist ein Sicherheitsmechanismus, der auf SHA-256 basiert, Benutzeranmeldeinformationen gegen den Namen, das Passwort und die Authentifizierungsdatenbank des Benutzers.

Migration eines bestehenden MongoDB-Clusters zu MongoDB Atlas

Es besteht auch die Möglichkeit, Ihren bestehenden On-Prem-Cluster zu Mongo Atlas zu migrieren. Dies erfolgt über einen dedizierten Dienst namens Live Migration Service. Der Atlas Live-Migrationsprozess streamt Daten über einen MongoDB-gesteuerten Anwendungsserver.

Live-Migration funktioniert, indem ein Cluster in MongoDB Atlas mit Ihrer Quelldatenbank synchronisiert wird. Während dieses Vorgangs kann Ihre Anwendung weiterhin aus Ihrer Quelldatenbank lesen und schreiben. Da der Prozess kommende Änderungen überwacht, werden alle repliziert und die Migration kann online durchgeführt werden. Sie entscheiden, wann die Anwendungsverbindungseinstellung geändert und die Umstellung durchgeführt wird. Um den Prozess weniger anfällig zu machen, bietet Atlas eine Validate-Option, die den IP-Zugriff auf die Whitelist, die SSL-Konfiguration, CA usw. prüft.

Wichtig ist hier, dass der Service kostenlos ist.

Wenn Sie keine Online-Migration benötigen, können Sie auch mongoimport verwenden. Verwenden Sie die Mongo-Shell mit mindestens Version 3.2.7, verwenden Sie immer SSL. Hier können Sie Testdaten abrufen.

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

Um Daten zu überprüfen, melden Sie sich mit der Mongo-Shell an.

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>

Fazit

Das ist alles für Teil eins. Im nächsten Artikel werden wir Überwachung, Backups, tägliche Verwaltung und den neuen Service von MongoDB zum Erstellen von Data Lakes behandeln. Bleiben Sie dran!