MongoDB Atlas
e' l'ambiente Cloud su cui vengono ospitati
database MongoDB.
MongoDB e' uno dei piu' diffusi DB NoSQL grazie alla sua velocita',
alla flessibilita, alla semplicita' di installazione ed utilizzo.
MongoDB e' utilizzabile con tutti i piu' recenti linguaggi di programmazione
ed dal nuovo ambiente Stitch.
Stitch e' un nuovo paradigma di programmazione che consente di sviluppare
applicazioni serverless che utilizzano la base dati MongoDB.
Questo documento presenta gli aspetti principali di MongoDB Atlas: Configurazione, Utilizzo, Stitch, ... Varie ed eventuali,
Per configurare MongoDB in Cloud si accede al sito
https://www.mongodb.com/cloud/atlas.
E' necessario registrarsi per creare la propria utenza, cosa che richiede pochi minuti;
la registrazione e' gratuita e non richiede dettagli economici
(eg. niente carta di credito).
A questo punto e' possibile creare un nuovo cluster premendo il bottone "Build a New Cluster".
Vanno definite le caratteristiche del cluster configurando le sezioni:
E' possibile scegliere tra diversi Cloud dei principali fornitori (AWS di Amazon, GCP di Google, Azure di Microsoft). Tutti prevedono tier nelle varie Region tra cui l'Europa. Per provare il servizio e' possibile scegliere un tier gratuito:
La scelta della Region e' importante per diminuire la latenza all'accesso. Noi italiani sceglieremo un datacenter in Europa [NdA in attesa delle previste prossime aperture in Italia].
Sono disponibili Tier con prestazioni e costi differenti. M0 e' un tier gratuito con RAM/CPU condivise e fino a 512MB di storage. Vi sono poi diverse configurazioni adatte ad ambienti di sviluppo dedicati fino ad arrivare ad ambienti adatti a deployment di produzione molto significativi: ambiente dedicato, 72 vCPU, 512GB RAM, 4TB storage SSD, 25Gb network, 128K max connections; naturalmente con un costo commisurato.
Premendo sul bottone Create Cluster in pochi minuti MongoDB e' disponibile.
Gia' fatto! MongoDB si puo' gia' utilizzare! Viene presentata la console con l'elenco dei cluster disponibili:
Tutti i Tier sono gestiti: basta qualche click si possono attivare backup, sharding,
attivare il monitoraggio esteso, modificare la configurazione, ...
Selezionando il cluster appena creato si evidenziano i dettagli.
Vi e' un'istanza Primary e due istanze Secondary come previsto
dalla configurazione dei Replica Set:
Premendo il bottone CONNECT sono evidenziati i parametri per connettersi al DB...
Utilizzare MongoDB in Cloud e' facile come se fosse in locale.
Vediamo come installare il client mongo su Mac ed accedere:
Se non si collega... avete dimenticato la password? avete impostato la IP whitelist? La sicurezza innanzi tutto!
Naturalmente e' possibile utilizzare anche un'interfaccia grafica come quella di NoSQLBooster. Ecco come appare un cluster appena creato: vi sono i tre nodi, il database admin, il database local...
Non riportiamo altro perche' utilizzare MongoDB e' molto semplice e non vi sono altre differenze rispetto ad un'installazione locale.
Stitch e' l'ambiente Cloud che consente di sviluppare applicazioni serverless che operano su MongoDB.
Si tratta di un nuovo paradigma applicativo che consente di realizzare servizi in rete tra loro distinti senza richiedere alcun server fisico o virtuale.
Una caratteristica delle applicazioni Serverless e' che non e' necessario attivare un tier per rispondere alle chiamate. Il costo del servizio dipende dal numero di richieste e dai trasferimenti occorsi. Attualmente su Atlas fino a 25GB e 100GBs il servizio e' gratuito.
Un'applicazione Stitch viene realizzata in modo dichiarativo indicando quali sono gli oggetti a cui fa riferimento. Ad esempio le Rules definiscono su Stitch quali collection MongoDB sono accessibili e con quali diritti (eg. Read, Write):
I Triggers sono le azioni da intraprendere quando avviene una modifica sui dati,
e' possibile agganciarsi a servizi esterni (eg. mandare messaggi),
definire funzioni, ...
I Services di Stitch possono essere richiamati da Clients diversi come applicazioni Web,
applicazioni Java su Android, Swift per iOS.
Poiche' in queste cose un esempio vale piu' di mille parole ecco un'applicazione Web completa [NdA consente di registrare i commenti alle degustazioni]:
A parte le fasi dichiarative e di connessione iniziale la parte di programmazione e' davvero compatta e quindi si puo' essere molto produttivi nello sviluppo del software.
Negli ambienti in Cloud gli aspetti di sicurezza sono molto importanti.
MongoDB Atlas utilizza configurazioni e suggerisce impostazioni sicure... ma occorre comunque attenzione.
Dalla console si configurano le utenze, i ruoli e l'IP Whitelist per l'accesso. E' inoltre possibile configurare in peering la propria VPC (Virtual Private Cloud).
Atlas fornisce alcune impostazioni Enterprise sulla sicurezza [NdA con costo supplementare anche se limitato].
L'encryption at-rest e' gia' attiva per default ma puo' essere integrata con
AWS Key Management Service or Azure Key Vault per maggior sicurezza.
E' possibile attivare il Database Auditing.
E' possibile attivare l'autenticazione e la profilazione LDAP.
Anche su Stitch sono presenti diverse possibilita' di autenticazione (eg. Anonymous vs Email/Password ...) e specifiche protezioni verso i dati (eg. Rules) adatte all'utilizzo in Cloud.
Da ultimo, ma assolutamente non per ultimo, vanno sempre utilizzate password sicure!
Per una descrizione piu' completa sulle funzionalita' di MongoDB si rimanda ai documenti MongoDB 4.0 ed Introduzione a MongoDB.
Sono molte le funzionalita' disponibili su Atlas che non abbiamo descritto in questo breve documento. Sicuramente molto interessante sono i recentissimi Charts richiamabili dal menu principale di Atlas:
Atlas fornisce la versione piu' recenti di MongoDB; la storia delle versioni di MongoDB e' riassunta in questo paginetta.
Titolo: MongoDB Atlas
Livello: Medio
Data: 31 Ottobre 2018
Versione: 1.0.1 -
14 Febbraio 2019 ❤️ San Valentino
Autore: mail [AT] meo.bogliolo.name