4 min read
Couchbase, perchè passare a NoSql
Man mano che le aziende passano all'economia digitale - un'economia alimentata da cloud, dispositivi mobili, social media e tecnologie per i big data - i team di sviluppo e operazioni devono costruire e gestire applicazioni Web, mobili e Internet of Things (IoT) sempre più velocemente, e su larga scala. Sempre più spesso, queste applicazioni sono il modo in cui le aziende interagiscono con clienti, dipendenti, partner e prodotti.
Oggi, le aziende di ogni settore, da Internet, al dettaglio, ai servizi, sfruttano la tecnologia del database NoSQL per:
uno sviluppo più agile,
costi operativi ridotti
operazioni scalabili.
Per molti, l'uso di NoSQL è iniziato con:
una cache (per avere superperformance),
una prova di concetto (PoC),
una piccola applicazione,
per poi espandersi verso applicazioni mission-critical mirate. NoSQL è ora diventato una base per lo sviluppo di applicazioni Web, mobili e IoT moderne.
Esegui una rapida ricerca su Google di "NoSQL" oltre al nome di qualsiasi grande azienda nota per l'eccellenza IT e vedrai che stanno implementando NoSQL per molte applicazioni mission-critical. Gli esempi abbondano:
Gannett, editore di USA Today e oltre 90 proprietà multimediali, ha sostituito la tecnologia di database relazionale con NoSQL per alimentare la sua piattaforma di pubblicazione digitale;
Marriott ha distribuito NoSQL per modernizzare il suo sistema di prenotazione di hotel che supporta $ 38 miliardi di prenotazioni annuali;
Ryanair è passato a NoSQL per alimentare la sua app mobile che serve oltre 3 milioni di passeggeri.
Nota, ci sono casi d'uso in cui NoSQL non è un sostituto, ma un complemento, dell'infrastruttura esistente, facilitando l'uso di diverse tecnologie di archiviazione dei dati per gestire le diverse esigenze di archiviazione dei dati
Identifica la giusta applicazione
Molte aziende hanno introdotto con successo NoSQL identificando una singola applicazione o servizio per cominciare. Potrebbe essere una nuova in fase di sviluppo o un'applicazione esistente in fase di refactoring. Gli esempi includono:
un servizio di memorizzazione nella cache ad alte prestazioni e altamente disponibile
un'applicazione piccola e indipendente con un ambito ristretto
un servizio logico o fisico all'interno di un'applicazione di grandi dimensioni
un servizio globale che alimenta più applicazioni.
I candidati ideali hanno una o più delle seguenti caratteristiche o requisiti
Rapida iterazione: il modello di dati deve essere modificato continuamente o su richiesta (ad es. Per soddisfare nuove preferenze, nuovi account di social media, ecc.)
Leggere e scrivere documenti JSON (dati semi-strutturati) da / verso client Web e mobili
Fornire bassa latenza, accesso ai dati ad alta velocità effettiva - ad esempio, gli utenti si aspettano che le interazioni siano istantanee e l'attesa influisce negativamente sull'esperienza (ad esempio, gli utenti abbandonano i carrelli della spesa)
Supporto da migliaia a milioni di utenti simultanei - ad esempio, il numero di utenti è in aumento, a volte in modo esponenziale, come quando il contenuto diventa virale
Gli utenti non si limitano a un Paese o una regione specifici - sono ovunque
Gli utenti non si limitano a orari specifici - il servizio deve essere disponibile 24 ore su 24, 7 giorni su 7
Conservare terabyte di dati
Distribuire in più datacenter con una configurazione attiva / attiva
Alcuni esempi comuni di buoni adattamenti per NoSQL
Servizio di catalogo prodotti
Servizio di tracciamento delle risorse (ad esempio i click di navigazione in un sito ecommerce)
Servizio di gestione dei contenuti (questo è un tipico uso come CMS)
Servizio di configurazione dell'applicazione (dove un elevato numero di utenti memorizzano le loro preferenze, ad esempio. Questo è un caso dove la definizione dei dati può cambiare abbastanza spesso)
Servizio di gestione dei clienti (ad esempio: gli account di un sito ecommerce, o anche solo di chi si registra per ricevere newsletter o comunque contenuti)
Servizio di metadati di file o streaming (cioè la parte delle informazoni che descrivono il contenuto del file, ad esempio nel caso di un film: durata, genere, anno, attori, registi, plot, incassi, …)