sql >> Database teknologi >  >> NoSQL >> MongoDB

En oversigt over MongoDB Atlas:Første del

Cloud computing-tilgangen løser nogle af de udfordringer, der er forbundet med at køre databehandlingssystemer. Datadrevne virksomheder skubber hurtig forretningstransformation ud med cloud-tjenester, og mange ser cloud-tjenester som en væsentlig forbedring af automatisering, pålidelighed og on-demand-skalering end de traditionelle infrastrukturmodeller, der kom før. On-demand karakteren af ​​Software-as-a-Service (SaaS) paradigmet betyder, at organisationer kan købe, hvad de har brug for, når de har brug for det. Selvfølgelig er omkostnings- og omkostningseffektive aspekter afgørende, men ikke de eneste.

I design af systemarkitekturer leder vi altid efter de systemer, der passer til det rigtige antal brugere, på det rigtige niveau af ydeevne for hver enkelt. Vi ønsker at undgå præstationsproblemer og flaskehalse, og hvis disse problemer opstår, ønsker vi et system, der tilpasser sig den skiftende efterspørgsel.

Vi vil også gerne have tingene hurtigere. Den agile udviklingsproces bliver mere og mere populær; hovedsagelig fordi det accelererer leveringen af ​​initial forretningsværdi og (gennem en proces med kontinuerlig planlægning og feedback) kan det sikre, at ROI er maksimeret.

Til sidst ønsker vi en reduktion af kompleksiteten. En nøglefunktion ved MongoDB er dens indbyggede redundans. Hvis du har to eller flere dataknuder, kan de konfigureres som et replikasæt eller mongodb-shards. Uden ordentlig automatisering på plads kan det være en tilbagevendende opgave for flere teams (netværk, storage, OS osv.). Cloud-automatisering kan hjælpe dig med at reducere afhængigheden mellem de forskellige grupper i din organisation. For eksempel behøver du muligvis ikke involvere netværksteamet, når du opretter et nyt databasesystem.

Cloudautomatisering sparer ikke kun tid og penge, men gør også din organisation mere konkurrencedygtig på det udfordrende marked.

I denne blog vil vi tage et kig på Atlas, løsningen fra MongoDB, der forsøger at løse alle disse problemer.

Kom godt i gang med MongoDB Atlas

For at starte med MongoDB Atlas, gå til https://cloud.mongodb.com. I registreringsformularen skal du angive et minimum af oplysninger som e-mail, virksomhed, land og mobilnummer.

MongoDB Atlas gør et fremragende stykke arbejde med infrastrukturprovisionering, opsætning. Hele processen bruger en dynamisk webgrænseflade, der leder dig gennem forskellige implementeringsmuligheder. Det er nemt, intuitivt og kræver ikke specialviden.

Efter det første login bliver du bedt om at bygge din første klynge i en af ​​de tre mest betydningsfulde skyer. Atlas arbejder med Amazon AWS, Google Cloud og Microsoft Azure. Baseret på dit valg kan du hente placeringen af ​​den foretrukne datacenterplacering. For at øge tilgængeligheden kan du indstille Multi-Region, Workload Isolation eller indstille forskellige replikeringsindstillinger. Hvert Atlas-projekt understøtter op til 25 klynger, men efter kontakten med supporten burde du være i stand til at være vært for flere.

Du skal vælge den passende størrelse på serveren, kombineret med IO og lagerkapacitet. I denne artikel vil vi bruge den gratis version. Det er gratis at starte med MongoDB Atlas til prototyping, tidlig udvikling eller for at lære. Kreditkortet er ikke nødvendigt, så du behøver ikke bekymre dig om skjulte omkostninger. Den gratis udgave kaldet M0 Sandbox er begrænset til:

  • 512 MB lagerplads
  • vCPU delt
  • RAM delt
  • 100 maks. forbindelser
  • Der er en grænse på én M0-klynge pr. projekt.

For dedikerede klynger faktureres MongoDB Atlas hver time baseret på hvor meget du bruger. Satsen afhænger af en række faktorer, vigtigst af alt, størrelsen og antallet af servere, du bruger. Prisen starter med 0,08/time (M10, 2GB RAM, 10GB lagerplads, 1vCPU) til M700 med 768GB RAM, 4096GB lagerplads, 96vCPU'er fra $33,26/time. Det er klart, at du skal inkludere andre omkostningsfaktorer som f.eks. omkostningerne ved sikkerhedskopiering.

Ifølge MongoDB-beregninger ville en AWS et 3-node replikasæt af M40'ere og køre det 24/7 i en måned ved at bruge det inkluderede 80 GB standardbloklager koste dig omkring 947 USD.

Den grundlæggende opsætning fungerer med replikering. Hvis du har brug for sharding, er M30-instanstypen et minimum (8 GB RAM, 40 GB lagerplads, 2vCPU'er, pris fra $0,54/time).

MongoDB Atlas Netværksadgang indledende opsætning

Et af de første trin, vi skal gøre efter klyngen er oprettet, er at aktivere en IP-hvidliste. For at aktivere adgang overalt kan du indstille hvidlisteindgang til 0.0.0.0/0, men det anbefales ikke. Hvis du ikke kender din IP-adresse, hjælper Atlas dig med at identificere den.

For at holde din forbindelse mere sikker kan du også konfigurere en peering-forbindelse . Denne funktion er ikke tilgængelig for M0-, M2- og M5-klynger. Netværkspeering muliggør forbindelse mellem MongoDB VPC og din cloud-udbyder. Peer VPC-netværk tillader forskellige VOC ti at kommunikere i det private rum, trafikken krydser ikke det offentlige internet.

For at begynde at arbejde med din nye klynge skal du oprette en første bruger. Gør det på fanen Databaseadgang. MongoDB bruger Salted Challenge Response Authentication Mechanism. Det er en sikkerhedsmekanisme baseret på SHA-256, brugerlegitimationsoplysninger mod brugerens navn, adgangskode og godkendelsesdatabase.

Migration af eksisterende MongoDB-klynge til MongoDB Atlas

Der er også en mulighed for at migrere din eksisterende on-prem klynge til Mongo Atlas. Det gøres via en dedikeret tjeneste kaldet Live Migration Service. Atlas Live Migration-processen streamer data gennem en MongoDB-styret applikationsserver.

Live-migrering fungerer ved at holde en klynge i MongoDB Atlas synkroniseret med din kildedatabase. Under denne proces kan din applikation fortsætte med at læse og skrive fra din kildedatabase. Da processen overvåger kommende ændringer, vil alle blive replikeret, og migrering kan udføres online. Du bestemmer, hvornår du vil ændre applikationsforbindelsesindstillingen og foretage cutover. For at udføre processen mindre udsat giver Atlas mulighed for Validering, som kontrollerer hvidliste IP-adgang, SSL-konfiguration, CA osv.

Det, der er vigtigt her, er, at tjenesten er gratis.

Hvis du ikke har brug for online migrering, kan du også bruge mongoimport. Brug mongo shell med minimum version 3.2.7 brug altid SSL. Du kan få testdata herfra.

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

For at kontrollere data skal du logge ind med 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>

Konklusion

Det er alt for del et. I den næste artikel skal vi dække overvågning, sikkerhedskopier, daglig administration og MongoDBs nye service til at bygge Data Lakes. Hold dig opdateret!


  1. MongoDB installation

  2. Hvad er fordelene ved at bruge en skemafri database som MongoDB sammenlignet med en relationel database?

  3. MongoDB $runde

  4. Hvorfor Mongodb ydeevne bedre på Linux end på Windows?