Da un paio di anni i database NoSql raccolgono sempre maggiori consensi, ed il trend sembra tutt’altro che cambiare. Sicuramente soluzioni come MongoDb, CouchDB o Apache Cassandra hanno aiutato il segmento ad acquisire popolarità.

Tutte queste soluzioni sono facilmente ottenibili sulla infrastruttura di Azure, tramite l’uso di una Virtual Machine, e quindi l’installazione del Db che si preferisce, o tramite il Marketplace di azure, ottenendo direttamente un’istanza di MongoDB as a Service (trattasi di un PaaS, in quanto la gestione delle risorse hardware e del os sono delegate al vendor).

DocumentDB – La soluzione PaaS di Microsoft

Nonostante la disponibilità e la possibilità di ospitare uno dei precedenti servizi, Microsoft ha comunque ovviato alla mancanza di un proprio prodotto, sviluppando un PaaS dedicato. DocumentDB, come il nome fa d’altronde intendere, è un NoSql Document oriented Database.

Vediamo in breve cosa offre il servizio.

Una delle caratteristiche che rendono particolare DocumentDB è il fatto di essere SchemaFree. Eviterò discussioni sui pro e contro di una simile soluzione.

Altra caratteristica, costosa, è la disponibilità di solo 3 piani tariffari, tutti e 3 sotto la SLA di Azure e tutti e tre i piani prevedono storage su SSD.

Supporta la gestione degli allegati, i blob verrano salvati su un blob storage dedicato, rimanendo nello stesso datacenter( in preview mentre scrivo).

Venendo ai contro, pur essendo un ottimo prodotto ci sono delle carenze da non sottovalutare, tra queste la mancanza di librerie per molti linguaggi di programmazione; DocumentDb espone comunque delle API restful facilmente utilizzabili, ricordiamoci anche che è un prodotto giovane rispetto alla concorrenza. Nonostante ciò esistono già librerie ufficiali per .Net ( ovviamente ), Java, Python, Javascript.

Sicuramente altre verranno rese disponibili dal team di DocumentDB nelle prossime settimane.

La carenza principale, per la quale è stato fortemente criticato, è che si tratta di un prodotto che nasce e vive esclusivamente sul Cloud, ed esclusivamente su Azure, pertanto non è possibile utilizzarlo in scenari offline, come lo sviluppo di una applicazione, ne tanto meno è possibile inserirlo all’interno di un contenitore come Docker per poterlo usare su altri vendor  (e d’altronde con le specifiche dello storage sarebbe anche arduo).

The following two tabs change content below.
Andrea Giunta

Andrea Giunta

Mi occupo di IT da differenti anni. Ho iniziato con il linguaggio C e con Asp per poi migrare a .Net, nell'arco dell'ultimo decennio ho avuto modo di lavorare con differenti tecnologie e piattaforme, open e non.
Ho collaborato per 6 anni con Microsoft in veste di Microsoft student partner, collaborazione nella quale nel 2014 sono stato lo speaker sull'Azure tour nelle università del sud Italia.
Dal 2012 sono un membro di OrangeDotNet, community IT siciliana, con la quale organizziamo eventi tecnici.
Ho partecipato come speaker a differenti eventi tecnici, sia della community sia di altre, come i Community Days ed il DotNetCampus, la mia area di expertise è Azure, per la quale ho ricevuto il Microsoft MVP Award 2015