De benadering van cloudcomputing lost enkele van de uitdagingen op die gepaard gaan met het uitvoeren van gegevensverwerkingssystemen. Gegevensgestuurde bedrijven stimuleren een snelle bedrijfstransformatie met cloudservices, en velen zien cloudservices als een substantiële verbetering in automatisering, betrouwbaarheid en on-demand schaling dan de traditionele infrastructuurmodellen die eerder bestonden. Het on-demand karakter van het Software-as-a-Service (SaaS)-paradigma betekent dat organisaties kunnen kopen wat ze nodig hebben, wanneer ze het nodig hebben. Natuurlijk zijn de kosten- en kosteneffectieve aspecten cruciaal, maar niet de enige.
Bij het ontwerpen van systeemarchitecturen zijn we altijd op zoek naar de systemen die passen bij het juiste aantal gebruikers, op het juiste prestatieniveau voor elk. We willen prestatieproblemen en knelpunten vermijden, en als die problemen zich voordoen, willen we een systeem dat zich aanpast aan de veranderende vraag.
We willen ook dingen sneller. Het agile ontwikkelproces wordt steeds populairder; vooral omdat het de levering van initiële bedrijfswaarde versnelt en (door een proces van continue planning en feedback) ervoor kan zorgen dat de ROI wordt gemaximaliseerd.
Ten slotte willen we de complexiteit verminderen. Een belangrijk kenmerk van MongoDB is de ingebouwde redundantie. Als u twee of meer gegevensknooppunten hebt, kunnen deze worden geconfigureerd als een replicaset of mongodb-scherven. Zonder de juiste automatisering kan het een terugkerende taak zijn voor verschillende teams (netwerk, opslag, besturingssysteem, enz.). Cloudautomatisering kan u helpen om de afhankelijkheden tussen de verschillende groepen in uw organisatie te verminderen. Het is bijvoorbeeld mogelijk dat u het netwerkteam niet hoeft te betrekken bij het maken van een nieuw databasesysteem.
Cloudautomatisering bespaart niet alleen tijd en geld, maar maakt uw organisatie ook concurrerender in de uitdagende markt.
In deze blog zullen we kijken naar Atlas, de oplossing van MongoDB die al deze problemen probeert aan te pakken.
Aan de slag met MongoDB Atlas
Ga naar https://cloud.mongodb.com om te beginnen met MongoDB Atlas. In het registratieformulier moet u absoluut minimale informatie verstrekken, zoals e-mail, bedrijf, land en mobiel nummer.
MongoDB Atlas doet uitstekend werk bij het inrichten en instellen van infrastructuur. Het hele proces maakt gebruik van een dynamische webinterface die u door verschillende implementatie-opties leidt. Het is gemakkelijk, intuïtief en vereist geen gespecialiseerde kennis.
Na de eerste keer inloggen, wordt u gevraagd om uw eerste cluster te bouwen in een van de drie belangrijkste wolken. Atlas werkt met Amazon AWS, Google Cloud en Microsoft Azure. Op basis van uw keuze kunt u de locatie van de gewenste datacenterlocatie ophalen. Om de beschikbaarheid te vergroten, kunt u Multi-Region, Workload Isolation of verschillende replicatie-opties instellen. Elk Atlas-project ondersteunt maximaal 25 clusters, maar na contact met de ondersteuning zou u meer moeten kunnen hosten.
U moet de juiste grootte van de server selecteren, gekoppeld aan IO en opslagcapaciteit. In dit artikel gebruiken we de gratis versie. Het is gratis om met MongoDB Atlas te beginnen voor prototyping, vroege ontwikkeling of om te leren. De creditcard is niet nodig, dus u hoeft zich geen zorgen te maken over verborgen kosten. De gratis editie genaamd M0 Sandbox is beperkt tot:
- 512 MB opslagruimte
- vCPU gedeeld
- RAM gedeeld
- 100 max verbindingen
- Er is een limiet van één M0-cluster per project.
Voor speciale clusters wordt MongoDB Atlas per uur gefactureerd op basis van hoeveel u gebruikt. Het tarief is afhankelijk van een aantal factoren, vooral de grootte en het aantal servers dat u gebruikt. De prijs begint met 0,08/uur (M10, 2GB RAM, 10GB opslag, 1vCPU) tot M700 met 768GB RAM, 4096 GB opslag, 96vCPU's vanaf $33.26/uur. Uiteraard moet u andere kostenfactoren meenemen, zoals bijvoorbeeld de kosten van back-ups.
Volgens MongoDB-berekeningen zou een AWS-replicaset met 3 knooppunten van M40's en deze een maand lang 24/7 draaien met de meegeleverde 80 GB standaard blokopslag ongeveer $ 947 kosten.
De basisconfiguratie werkt met replicatie. Als u sharding nodig heeft, is het M30-instantietype minimaal (8 GB RAM, 40 GB opslag, 2vCPU's, prijs vanaf $ 0,54/uur).
MongoDB Atlas Network Access Initial Setup
Een van de eerste stappen die we moeten doen nadat het cluster is gemaakt, is het inschakelen van een IP-witte lijst. Om overal toegang mogelijk te maken, kunt u de vermelding op de witte lijst instellen op 0.0.0.0/0, maar dit wordt niet aanbevolen. Als u uw IP-adres niet weet, helpt Atlas u om het te identificeren.
Om uw verbinding veiliger te houden, kunt u ook een netwerkpeering-verbinding instellen . Deze functie is niet beschikbaar voor M0-, M2- en M5-clusters. Netwerkpeering maakt connectiviteit mogelijk tussen MongoDB VPC en uw cloudprovider. Peer VPC-netwerk stelt verschillende VOC-ti in staat om in de privéruimte te communiceren, het verkeer gaat niet over het openbare internet.
Als u met uw nieuwe cluster wilt gaan werken, maakt u een eerste gebruiker aan. Doe het op het tabblad Databasetoegang. MongoDB maakt gebruik van Salted Challenge Response Authentication Mechanism. Het is een beveiligingsmechanisme gebaseerd op SHA-256, gebruikersreferenties tegen de gebruikersnaam, het wachtwoord en de authenticatiedatabase.
Migratie van bestaande MongoDB-cluster naar MongoDB Atlas
Er is ook een mogelijkheid om uw bestaande on-prem cluster te migreren naar Mongo Atlas. Het wordt gedaan via een speciale service genaamd Live Migration Service. Atlas Live Migration-proces streamt gegevens via een MongoDB-gestuurde applicatieserver.
Live-migratie werkt door een cluster in MongoDB Atlas gesynchroniseerd te houden met uw brondatabase. Tijdens dit proces kan uw toepassing blijven lezen en schrijven vanuit uw brondatabase. Aangezien het proces toekomstige veranderingen in de gaten houdt, wordt alles gerepliceerd en kan de migratie online worden uitgevoerd. U bepaalt wanneer u de verbindingsinstelling van de toepassing wilt wijzigen en omschakeling wilt uitvoeren. Om het proces minder gevoelig te maken, biedt Atlas de optie Valideren waarmee IP-toegang, SSL-configuratie, CA, enz. op de witte lijst wordt gecontroleerd.
Wat hier belangrijk is, is dat de service gratis is.
Als u geen online migratie nodig heeft, kunt u ook mongoimport gebruiken. Gebruik mongo shell met minimale versie 3.2.7 gebruik altijd SSL. U kunt hier testgegevens ophalen.
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.
Log in met mongo shell om gegevens te controleren.
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>
Conclusie
Dat is alles voor deel één. In het volgende artikel gaan we het hebben over monitoring, back-ups, dagelijks beheer en MongoDB's nieuwe service voor het bouwen van Data Lakes. Blijf op de hoogte!