sql >> Databasteknik >  >> NoSQL >> MongoDB

En översikt av MongoDB Atlas:Del ett

Den molnbaserade metoden tar itu med några av de utmaningar som är förknippade med att köra databehandlingssystem. Datadrivna företag driver ut snabb affärstransformation med molntjänster, och många ser molntjänster som en betydande förbättring av automatisering, tillförlitlighet och on-demand-skalning än de traditionella infrastrukturmodellerna som kom tidigare. On-demand-karaktären hos Software-as-a-Service (SaaS) paradigmet innebär att organisationer kan köpa vad de behöver, när de behöver det. Naturligtvis är kostnads- och kostnadseffektiva aspekter avgörande, men inte de enda.

I designen av systemarkitekturer letar vi alltid efter de system som passar rätt antal användare, med rätt prestandanivå för var och en. Vi vill undvika prestandaproblem och flaskhalsar, och om dessa problem inträffar vill vi ha ett system som anpassar sig till den förändrade efterfrågan.

Vi vill också ha saker snabbare. Den agila utvecklingsprocessen blir mer och mer populär; främst för att det påskyndar leveransen av initialt affärsvärde och (genom en process av kontinuerlig planering och feedback) kan det säkerställa att avkastningen på investeringen maximeras.

Sistligen vill vi ha en minskning av komplexiteten. En nyckelfunktion hos MongoDB är dess inbyggda redundans. Om du har två eller flera datanoder kan de konfigureras som en replikuppsättning eller mongodb-skärvor. Utan ordentlig automatisering på plats kan det vara en återkommande uppgift för flera team (nätverk, lagring, OS, etc.). Molnautomation kan hjälpa dig att minska beroenden mellan de olika grupperna i din organisation. Till exempel kanske du inte behöver involvera nätverksteamet när du skapar ett nytt databassystem.

Molnautomatisering sparar inte bara tid och pengar utan gör din organisation mer konkurrenskraftig på den utmanande marknaden.

I den här bloggen kommer vi att ta en titt på Atlas, lösningen från MongoDB som försöker lösa alla dessa problem.

Komma igång med MongoDB Atlas

För att börja med MongoDB Atlas gå till https://cloud.mongodb.com. I registreringsformuläret måste du ange minsta möjliga information som e-post, företag, land och mobilnummer.

MongoDB Atlas gör ett utmärkt jobb i infrastrukturförsörjning, installation. Hela processen använder ett dynamiskt webbgränssnitt som leder dig genom olika distributionsalternativ. Det är enkelt, intuitivt och kräver ingen specialkunskap.

Efter den första inloggningen kommer du att bli ombedd att bygga ditt första kluster i ett av de tre mest betydande molnen. Atlas fungerar med Amazon AWS, Google Cloud och Microsoft Azure. Baserat på ditt val kan du välja platsen för önskad datacenterplats. För att öka tillgängligheten kan du ställa in Multi-Region, Workload Isolation eller ställa in olika replikeringsalternativ. Varje Atlas-projekt stöder upp till 25 kluster, men efter kontakten med supporten bör du kunna vara värd för fler.

Du måste välja lämplig storlek på servern, tillsammans med IO och lagringskapacitet. I den här artikeln kommer vi att använda gratisversionen. Det är gratis att börja med MongoDB Atlas för prototyper, tidig utveckling eller för att lära sig. Kreditkortet behövs inte, så du behöver inte bry dig om dolda kostnader. Den kostnadsfria utgåvan som heter M0 Sandbox är begränsad till:

  • 512 MB lagringsutrymme
  • vCPU delad
  • RAM delat
  • 100 max anslutningar
  • Det finns en gräns på ett M0-kluster per projekt.

För dedikerade kluster faktureras MongoDB Atlas varje timme baserat på hur mycket du använder. Hastigheten beror på ett antal faktorer, viktigast av allt, storleken och antalet servrar du använder. Priset börjar med 0,08/h (M10, 2GB RAM, 10GB lagring, 1vCPU) till M700 med 768GB RAM, 4096GB lagring, 96vCPU:er från $33,26/timme. Självklart skulle du behöva inkludera andra kostnadsfaktorer som till exempel kostnaden för säkerhetskopiering.

Enligt MongoDB-beräkningar skulle en AWS en 3-nods replikuppsättning av M40:or och köra den 24/7 i en månad med den inkluderade 80 GB standardblocklagring kosta dig cirka 947 USD.

Den grundläggande installationen fungerar med replikering. Om du behöver skärpa är M30-instanstypen ett minimum (8GB RAM, 40GB lagring, 2vCPU, pris från $0,54/timme).

Initial installation av MongoDB Atlas Network Access

Ett av de första stegen vi måste göra efter att klustret skapats är att aktivera en IP-vitlista. För att aktivera åtkomst från överallt kan du ställa in vitlista till 0.0.0.0/0 men det rekommenderas inte. Om du inte känner till din IP-adress hjälper Atlas dig att identifiera den.

För att hålla din anslutning säkrare kan du också ställa in en peering-anslutning för nätverk . Den här funktionen är inte tillgänglig för M0-, M2- och M5-kluster. Nätverkspeering möjliggör anslutning mellan MongoDB VPC och din molnleverantör. Peer VPC-nätverk tillåter olika VOC ti att kommunicera i privata utrymmen, trafik passerar inte det offentliga internet.

För att börja arbeta med ditt nya kluster skapa en första användare. Gör det på fliken Databasåtkomst. MongoDB använder Salted Challenge Response Authentication Mechanism. Det är en säkerhetsmekanism baserad på SHA-256, användaruppgifter mot användarens namn, lösenord och autentiseringsdatabas.

Migrering av befintligt MongoDB-kluster till MongoDB Atlas

Det finns också en möjlighet att migrera ditt befintliga lokala kluster till Mongo Atlas. Det görs via en dedikerad tjänst som heter Live Migration Service. Atlas Live Migration process strömmar data genom en MongoDB-kontrollerad applikationsserver.

Livemigrering fungerar genom att hålla ett kluster i MongoDB Atlas synkroniserat med din källdatabas. Under denna process kan din applikation fortsätta att läsa och skriva från din källdatabas. Eftersom processen övervakar kommande förändringar kommer alla att replikeras och migrering kan göras online. Du bestämmer när du vill ändra applikationens anslutningsinställning och göra cutover. För att göra processen mindre benägen tillhandahåller Atlas Validate-alternativet som kontrollerar vitlista IP-åtkomst, SSL-konfiguration, CA, etc.

Vad som är viktigt här är att tjänsten är kostnadsfri.

Om du inte behöver migrering online kan du också använda mongoimport. Använd mongo-skal med minsta version 3.2.7 använd alltid SSL. Du kan få testdata härifrån.

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

För att kontrollera data, logga in 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>

Slutsats

Det är allt för del ett. I nästa artikel kommer vi att täcka övervakning, säkerhetskopiering, daglig administration och MongoDB:s nya tjänst för att bygga datasjöar. Håll utkik!


  1. Mongoose.js:Hitta användare efter användarnamn LIKE-värde

  2. Hur man konfigurerar vårstartwebbappen med redis med Docker

  3. Deserialisering av polymorfa typer med MongoDB C#-drivrutin

  4. Redis tangentutrymmesaviseringar med StackExchange.Redis