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

Una panoramica di MongoDB Atlas:parte prima

L'approccio del cloud computing affronta alcune delle sfide associate all'esecuzione dei sistemi di elaborazione dati. Le aziende basate sui dati stanno spingendo verso una rapida trasformazione del business con i servizi cloud e molte vedono i servizi cloud come un sostanziale miglioramento dell'automazione, dell'affidabilità e della scalabilità su richiesta rispetto ai tradizionali modelli di infrastruttura precedenti. La natura on-demand del paradigma Software-as-a-Service (SaaS) significa che le organizzazioni possono acquistare ciò di cui hanno bisogno, quando ne hanno bisogno. Naturalmente, gli aspetti relativi al costo e all'economicità sono cruciali, ma non gli unici.

Nella progettazione delle architetture di sistema, siamo sempre alla ricerca di sistemi che si adattino al giusto numero di utenti, al giusto livello di prestazioni per ciascuno. Vogliamo evitare problemi di prestazioni e colli di bottiglia e, se questi problemi si verificano, vogliamo un sistema che si adatti all'evoluzione della domanda.

Vogliamo anche che le cose siano più veloci. Il processo di sviluppo agile sta diventando sempre più popolare; principalmente perché accelera la consegna del valore di business iniziale e (attraverso un processo di pianificazione e feedback continui) può garantire che il ROI sia massimizzato.

Infine, vogliamo una riduzione della complessità. Una caratteristica fondamentale di MongoDB è la sua ridondanza integrata. Se hai due o più nodi di dati, possono essere configurati come set di repliche o shard mongodb. Senza un'adeguata automazione in atto, può essere un'attività ricorrente per diversi team (rete, archiviazione, sistema operativo, ecc.). L'automazione del cloud può aiutarti a ridurre le dipendenze tra i vari gruppi della tua organizzazione. Ad esempio, potrebbe non essere necessario coinvolgere il team di rete quando crei un nuovo sistema di database.

L'automazione del cloud non solo consente di risparmiare tempo e denaro, ma rende anche la tua organizzazione più competitiva nel difficile mercato.

In questo blog daremo un'occhiata ad Atlas, la soluzione di MongoDB che cerca di risolvere tutti questi problemi.

Introduzione a MongoDB Atlas

Per iniziare con MongoDB Atlas, vai su https://cloud.mongodb.com. Nel modulo di registrazione, devi fornire informazioni minime come e-mail, azienda, paese e numero di cellulare.

MongoDB Atlas fa un ottimo lavoro nel provisioning dell'infrastruttura, nella configurazione. L'intero processo utilizza un'interfaccia Web dinamica che guida l'utente attraverso varie opzioni di distribuzione. È facile, intuitivo e non richiede conoscenze specialistiche.

Dopo il primo accesso, ti verrà chiesto di creare il tuo primo cluster in una delle tre nuvole più significative. Atlas funziona con Amazon AWS, Google Cloud e Microsoft Azure. In base alla tua scelta, puoi prelevare la posizione della posizione preferita del data center. Per aumentare la disponibilità, puoi impostare Multi-regione, Isolamento del carico di lavoro o impostare varie opzioni di replica. Ogni progetto Atlas supporta fino a 25 cluster, ma dopo il contatto con il supporto dovresti essere in grado di ospitarne di più.

È necessario selezionare la dimensione appropriata del server, insieme a IO e capacità di memoria. In questo articolo utilizzeremo la versione gratuita. È gratuito iniziare con MongoDB Atlas per la prototipazione, lo sviluppo iniziale o per l'apprendimento. La carta di credito non è necessaria, quindi non devi preoccuparti di costi nascosti. L'edizione gratuita denominata M0 Sandbox è limitata a:

  • 512 MB di spazio di archiviazione
  • vCPU condivisa
  • RAM condivisa
  • 100 connessioni massime
  • C'è un limite di un cluster M0 per progetto.

Per i cluster dedicati, MongoDB Atlas viene fatturato ogni ora in base a quanto utilizzi. La tariffa dipende da una serie di fattori, soprattutto dalle dimensioni e dal numero di server utilizzati. Il prezzo parte da 0,08/ora (M10, 2 GB di RAM, 10 GB di spazio di archiviazione, 1vCPU) a M700 con 768 GB di RAM, 4096 GB di spazio di archiviazione, 96vCPU a partire da $ 33,26/ora. Ovviamente, dovresti includere altri fattori di costo come, ad esempio, il costo dei backup.

Secondo i calcoli di MongoDB, un AWS un set di repliche a 3 nodi di M40 ed eseguirlo 24 ore su 24, 7 giorni su 7 per un mese utilizzando gli 80 GB inclusi di storage a blocchi standard ti costerebbe circa $ 947.

L'impostazione di base funziona con la replica. Se è necessario lo sharding, il tipo di istanza M30 è minimo (8 GB di RAM, 40 GB di spazio di archiviazione, 2 vCPU, prezzo a partire da $ 0,54/ora).

Installazione iniziale di MongoDB Atlas Network Access

Uno dei primi passi che dobbiamo fare dopo la creazione del cluster è abilitare una whitelist IP. Per abilitare l'accesso da qualsiasi luogo puoi impostare la voce della whitelist su 0.0.0.0/0 ma non è consigliato. Se non conosci il tuo indirizzo IP Atlas ti aiuterà a identificarlo.

Per mantenere la tua connessione più sicura puoi anche impostare una connessione peering di rete . Questa funzione non è disponibile per i cluster M0, M2 e M5. Il peering di rete consente la connettività tra MongoDB VPC e il provider cloud. La rete peer VPC consente a diversi VOC ti di comunicare in uno spazio privato, il traffico non attraversa la rete Internet pubblica.

Per iniziare a lavorare con il tuo nuovo cluster, crea un utente iniziale. Fallo nella scheda Accesso al database. MongoDB utilizza il meccanismo di autenticazione della risposta alla sfida salata. È un meccanismo di sicurezza basato su SHA-256, credenziali utente rispetto al nome utente, password e database di autenticazione.

Migrazione del cluster MongoDB esistente in MongoDB Atlas

C'è anche la possibilità di migrare il tuo cluster on-prem esistente a Mongo Atlas. Viene eseguito tramite un servizio dedicato chiamato Live Migration Service. Il processo Atlas Live Migration trasmette i dati attraverso un server delle applicazioni controllato da MongoDB.

La migrazione in tempo reale funziona mantenendo un cluster in MongoDB Atlas sincronizzato con il database di origine. Durante questo processo, l'applicazione può continuare a leggere e scrivere dal database di origine. Poiché il processo osserva le modifiche imminenti, tutto verrà replicato e la migrazione può essere eseguita online. Decidi tu quando modificare l'impostazione della connessione dell'applicazione ed eseguire il cutover. Per eseguire il processo in modo meno incline, Atlas fornisce l'opzione Convalida che controlla l'accesso IP nella whitelist, la configurazione SSL, la CA, ecc.

Quello che conta qui è che il servizio è gratuito.

Se non hai bisogno della migrazione online, puoi anche usare mongoimport. Usa mongo shell con versione minima 3.2.7 usa sempre SSL. Puoi ottenere i dati dei test da qui.

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

Per controllare i dati, accedi con 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>

Conclusione

Questo è tutto per la prima parte. Nel prossimo articolo tratteremo il monitoraggio, i backup, l'amministrazione quotidiana e il nuovo servizio di MongoDB per la creazione di Data Lakes. Resta sintonizzato!