MongoDB ha fatto molta strada dalla sua fondazione nel 2007. Molte persone hanno incontrato MongoDB per la prima volta durante i suoi primi anni. Hanno formato opinioni sul database basandosi sulle impressioni dal 2012 al 2014. Tuttavia, molto è cambiato da allora.
Negli ultimi undici anni, MongoDB ha fatto passi da gigante. Il più importante è stato il lancio di MongoDB Atlas nel 2016. Ha posto un'attenzione sostanziale al miglioramento delle quattro aree critiche che contano di più sia per le aziende che per gli sviluppatori: sicurezza, durabilità, disponibilità e prestazioni.
Sicurezza: protezione dei dati sensibili da accessi non autorizzati e garanzia di conformità alle normative.
Durabilità: garantire che i dati rimangano intatti e affidabili, anche in caso di guasti al sistema o interruzioni impreviste.
Disponibilità: riduzione al minimo dei tempi di inattività e mantenimento del funzionamento del sistema, indipendentemente da ciò che accade.
Prestazioni: fornitura di tempi di risposta delle applicazioni rapidi e coerenti e scalabilità efficiente per soddisfare la domanda crescente.
Questi progressi hanno conquistato la fiducia di alcune delle più grandi aziende al mondo, tra cui Toyota, Cisco, Wells Fargo, Bosch e Verizon.
Tuttavia, nonostante questi progressi, persistono miti obsoleti su MongoDB, in particolare in queste quattro aree fondamentali. In questo blog, affronteremo direttamente queste idee sbagliate e faremo chiarezza sulla sicurezza, la durabilità, la disponibilità e le prestazioni di MongoDB. Iniziamo.
Mito 1: “MongoDB non è sicuro quanto un relational database”

Uno dei miti più persistenti su MongoDB è che non sia sicuro, certamente non quanto i tradizionali relational database. Questa idea errata deriva probabilmente da una serie di attacchi ransomware avvenuti a metà degli anni 2010. Gli hacker hanno sfruttato database non protetti, privi di un'autenticazione adeguata e lasciati esposti sulle porte TCP predefinite. Sebbene questi incidenti abbiano evidenziato pratiche di configurazione inadeguate, hanno gettato ingiustamente un'ombra sulle moderne funzionalità di sicurezza di MongoDB.
MongoDB fornisce funzionalità di sicurezza robuste e intelligenti progettate per proteggere i dati sensibili in ogni fase del loro ciclo di vita. MongoDB crittografa i dati sia durante il transito che a riposo, proprio come altri database NoSQL e relational database leader. Tuttavia, ciò che distingue MongoDB è la sua capacità di mantenere i dati crittografati mentre sono in uso. Con Queryable Encryption, un'innovazione unica nel settore esclusiva di MongoDB, i dati sensibili possono rimanere crittografati anche mentre vengono interrogati. Ciò elimina la necessità di decrittografare i dati e riduce l'esposizione alle minacce.
MongoDB supporta inoltre autenticazione e autorizzazione flessibili che si integrano perfettamente con molti sistemi di gestione delle identità. Funzionalità come il controllo degli accessi basato sui ruoli e le autorizzazioni granulari garantiscono che gli utenti abbiano accesso solo a ciò per cui sono autorizzati. Contemporaneamente, una configurazione intuitiva rende questi controlli facili da implementare.
Oltre alla crittografia e al controllo degli accessi, MongoDB include potenti strumenti di auditing per monitorare l'attività del database e funzionalità avanzate di sicurezza di rete, come l'elenco di accesso IP e il networking privato. Insieme, queste funzionalità offrono una protezione completa contro l'accesso non autorizzato e aiutano le organizzazioni a soddisfare rigorosi requisiti di conformità.
La cosa migliore è che queste funzionalità di sicurezza avanzate sono incluse per impostazione predefinita sia in MongoDB Atlas che in MongoDB Enterprise Advanced senza costi aggiuntivi. L’approccio di MongoDB semplifica la gestione della sicurezza riducendo al minimo le spese. Ciò consente ai team di concentrarsi sulla creazione di applicazioni con la certezza che i propri dati siano protetti.
Mito 2: “Le funzionalità multi-cloud di MongoDB non lo distinguono dagli altri database”

A prima vista, l'affermazione che MongoDB sia multi-cloud potrebbe non sembrare speciale. Dopotutto, molti database sono disponibili tramite più di un provider cloud; tuttavia, questo non deve essere confuso con il fatto che siano tutti multi-cloud. Il vero multi-cloud supporta implementazioni “cross-cloud”, ovvero la capacità di distribuire singoli nodi di un unico cluster su più provider cloud. Questa distinzione viene spesso offuscata dai fornitori che non sono in grado di eseguire i propri cluster in tale configurazione. Il supporto per i cluster multi-cloud in Atlas è diventato generalmente disponibile nell'ottobre del 2020.
MongoDB Atlas consente la distribuzione non solo su Amazon Web Services (AWS), Microsoft Azure o Google Cloud, ma anche su tutti e tre i cloud simultaneamente con un singolo cluster. È possibile impostare e configurare distribuzioni cross-cloud esclusivamente dalla console di gestione di Atlas. Non è richiesta alcuna ulteriore configurazione tramite i singoli provider cloud. Non si tratta solo di una comodità; è una funzionalità trasformativa che elimina i confini tra i provider cloud. Con MongoDB Atlas, è come se AWS, Azure e Google Cloud operassero come un unico ambiente cloud unificato.
Perché è importante?
Per cominciare, distribuire un singolo cluster di database su più cloud elimina la complessità operativa della gestione della replica e della migrazione dei dati tra i provider. È possibile ottenere una mobilità dei dati senza interruzioni. La parte di qualsiasi applicazione più difficile da spostare — i dati — diventa ora la più semplice.
Il multi-cloud consente inoltre la creazione di architetture di applicazioni che sfruttano contemporaneamente i migliori servizi offerti da più provider di cloud. Inoltre, le implementazioni cross-cloud offrono una resilienza senza pari. Con il failover cross-cloud, in caso di interruzione, i dati possono essere trasferiti automaticamente a un altro provider cloud nella stessa area geografica. Garantendo così un servizio ininterrotto.
Infine, MongoDB Atlas offre la flessibilità necessaria per soddisfare con facilità le preferenze relative alle regioni e ai provider cloud. Atlas copre oltre 115 regioni supportate tra i tre principali provider cloud. Ciò semplifica il soddisfacimento delle richieste dei clienti o la conformità alle normative locali utilizzando un unico database.
MongoDB Atlas offre la possibilità di eseguire il nostro database su più cloud tramite lo stesso servizio. Con Atlas, abbiamo la libertà di eseguire il blocco: ogni cliente può scegliere dove ospitare i propri dati nel modo più comodo.
”Mito 3: “Capisco che MongoDB sia progettato per la scalabilità orizzontale, ma è così difficile scalare”

La scalabilità orizzontale, nota anche come scale-out, è un punto di forza fondamentale di MongoDB. Consente di distribuire i carichi di lavoro aggiungendo più nodi man mano che i dati e le applicazioni si espandono. Tuttavia, alcune convinzioni hanno perpetuato l'idea che scalare MongoDB sia difficile e complesso. La realtà? MongoDB rende la scalabilità non solo possibile, ma semplice, sia che si tratti di scalare orizzontalmente che verticalmente.
Con MongoDB Atlas, la scalabilità verticale, o scale-up, è semplice. Abilitando l'auto-scaling, MongoDB Atlas regola dinamicamente le risorse del cluster per soddisfare le esigenze dei carichi di lavoro. L'aggiunta di ulteriore RAM, CPU o capacità di storage può essere eseguita automaticamente e on demand. Ciò garantisce prestazioni ottimali senza la necessità di interventi o supervisione manuali continui.
Se è necessario andare oltre la scalabilità verticale, MongoDB offre tre modi flessibili per scalare orizzontalmente:
Partizionamento orizzontale basato su hash: i dati vengono distribuiti in modo casuale tra i nodi utilizzando una shard key basata su hash. Ciò garantisce una distribuzione uniforme dei dati e dei carichi di lavoro per prevenire colli di bottiglia.
Partizionamento in base a intervalli: i dati vengono distribuiti in base a intervalli di un campo specifico. Ciò consente un controllo granulare su come vengono suddivisi i dati. Questo approccio è particolarmente utile per prevenire hotspot nei carichi di lavoro.
Partizionamento orizzontale basato su zone: i dati sono distribuiti geograficamente. Ciò consente la conformità ai requisiti di residenza dei dati e riduce la latency mantenendo i dati più vicini agli utenti.
Cosa succede se la strategia di partizionamento orizzontale iniziale non va come previsto? MongoDB affronta questa sfida con la possibilità di affinare le shard key e ripartizionare una tabella senza tempi di inattività. Ciò garantisce che le strategie di distribuzione dei dati possano adattarsi all'evolversi delle esigenze, il tutto senza interrompere le applicazioni o gli utenti.
Mito 4: “Poiché MongoDB è creato per la flessibilità, non deve essere molto performante”

Un equivoco comune su MongoDB è che la sua flessibilità e versatilità debbano andare a scapito delle prestazioni. Dopotutto, un database così Agile, creato per consentire agli sviluppatori di modellare i dati come preferiscono, può davvero offrire la velocità e l'efficienza di una soluzione orientata alle prestazioni? MongoDB è progettato per offrire entrambe le cose: flessibilità impareggiabile e prestazioni eccezionali, il tutto mantenendo bassi i costi.
Le prestazioni di MongoDB derivano dalla sua architettura intelligente e dalle sue potenti funzionalità. Le query ad hoc, l'indicizzazione e le aggregazioni in tempo reale rendono semplice l'accesso e l'analisi rapida dei dati. Quanto sono veloci le query? Le query su chiave primaria o indicizzate vengono solitamente eseguite in pochi millisecondi. Anche le query complesse non indicizzate rimangono efficienti. Le prestazioni dipendono solitamente da fattori come le dimensioni della tabella e le specifiche della macchina.
E per quanto riguarda i carichi di lavoro come search e analytics? Alcuni sviluppatori potrebbero presumere che questi competano per le risorse e riducano le prestazioni delle attività operative. Tuttavia, MongoDB risolve questo problema con l'isolamento dei carichi di lavoro. Questa funzionalità garantisce che i carichi di lavoro operativi e non operativi siano separati. Ciò consente a ciascuno di essere eseguito con prestazioni ottimali senza richiedere costosi e lunghi processi di estrazione, trasformazione e caricamento (ETL).
Latenza di rete? Per le applicazioni distribuite a livello globale, le hedged reads di MongoDB consentono di leggere dai nodi replica più vicini invece di attendere una risposta da nodi distanti. Ciò riduce la latenza e garantisce che le applicazioni rimangano altamente reattive.
Le prestazioni reali di MongoDB sono supportate da incredibili casi d'uso:
Amadeus elabora 630 milioni di prenotazioni all’anno.
Idealo supporta 200.000 query e 60.000 aggiornamenti al secondo.
Temenos raggiunge 150.080 transazioni al secondo.
Ciò è avvenuto prima della release di MongoDB 8.0, la versione del database più performante di sempre. MongoDB 8.0 ha offerto:
Letture più veloci del 36%
Letture e aggiornamenti più veloci del 32%
inserimenti in blocco più veloci del 56%
Un sorprendente miglioramento del 200% per le query su Time Series
MongoDB Atlas non risolve solo i nostri problemi di prestazioni. Semplifica il lavoro degli sviluppatori web, che possono creare e gestire un codice più semplice e diretto.
”MongoDB oggi
MongoDB si è evoluto ben oltre i miti perpetuati durante i suoi primi anni. MongoDB 8.0 offre funzionalità robuste in termini di sicurezza, durabilità, disponibilità e prestazioni. Crittografa i dati sensibili durante l'intero ciclo di vita e consente distribuzioni cross-cloud senza interruzioni. Semplifica la scalabilità orizzontale e verticale e alimenta alcune delle applicazioni più esigenti al mondo. Queste funzionalità consolidano la posizione di MongoDB come database preferito per le applicazioni moderne.
Leggi altri miti ed equivoci su MongoDB nei nostri due post precedenti di questa serie:
Non lasciarti frenare da idee errate obsolete. Sperimenta l'innovazione e le prestazioni di MongoDB. Inizia a utilizzare MongoDB Atlas gratuitamente oggi stesso. Oppure, per saperne di più su MongoDB, vai alla MongoDB University e segui il nostro corso gratuito di introduzione a MongoDB.