MongoDB: scalabilità orizzontale e alta disponibilità | ELbuild
mongodb

MongoDB

MongoDB è un sistema di gestione di database non relazionale open source orientato ai documenti e che supporta varie forme di dati. Lo utilizziamo quando il volume o la struttura dei dati di uno specifico progetto non si adatta ai classici DB relazionali.

Documenti, non tabelle

I DBMS relazionali sono stati a lungo l'unica soluzione possibile per archiviare e gestire i dati. Da metà 2000 abbiamo altre opzioni!

Tradizionalmente i dati sono sempre stati organizzati in tabelle, ciascuna dotata di un numero finito di colonne, e poplate da record omogenei. Questa struttura ha dei limiti in alcuni scenari, per cui dalla metà del 2000 grazie anche agli avanzamenti in campo hardware (SSD, e RAM in primis) sono emersi approcci alternativi. Uno di questi è costituito dall'utilizzo di un approccio 'documentale' in cui record eterogenei fra loro sono organizzati in 'collection' e indicizzati tramite una chiave. L'aspetto fondamentale è l'assenza di uno schema, per cui record appartenenti alla stessa collection possono avere un numero diverso di campi, e contenere a loro volta strutture nidificate.

Scalabilità orizzontale e alta disponibilità

Tradizionalmente i DB relazionali sono complessi da scalare su molteplici istanze, finendo per essere un collo di bottiglia o assorbire molte risorse nel tentativo di scalarle verticalmente aumentando la capacità di una singola macchina. MongoDB risolve questo problema.

MongoDB consente di distribuire i dati su più macchine, utilizzando lo sharding, una forma di ridimensionamento orizzontale che facilitare operazioni ad alta produttività con grandi serie di dati. Invece di affidarsi a un singolo server ad alta velocità e alta capacità, MongoDB permette agli amministratori di sistema di aumentare la capacità al momento richiesto, anche in maniera automatica, definendo solamente quante macchine possono essere connesse correttamente. Oltre al ridimensionamento orizzontale MongoDB garantisce un’alta disponibilità dei dati. Questo avviene tramite il processo di sincronizzazione dei dati tra più server (detto replica), in modo da avere più copie dei dati su diversi server di database.

Il DBMS perfetto non esiste

Anni di esperienza nella progettazione e gestione di DB relazionali e non ci qualificano per offrire servizi di consulenza negli scenari più critici.

In numerosi contesti la scelta di un database relazionale è ancora la migliore. Esistono invece scenari applicativi che per la mole di dati da gestire, la loro dinamicità o la loro struttura eterogenea e poco 'schematizzabile' non si possono affrontare efficientemente con i DB relazionali. In ELbuild, anche grazie alla scomposizione degli applicativi in microservizi, selezioniamo scenario per scenario la soluzione migliore per la persistenza dei dati progettando frequentemente architetture ibride. Scopri come possiamo aiutarti a migliorare un applicativo esistente o a progettarne uno nuovo.