Com'era questo contenuto?
Il caso dei database dedicati
Di Cullen Dejean, Senior Solutions Architect presso AWS, e Matthew de Anda, Startup Solutions Architect presso AWS.
In qualità di startup in fase iniziale, hai molte decisioni tecniche da prendere mentre persegui l'obiettivo di idoneità del prodotto al mercato. Alcune di queste decisioni tecniche sono reversibili, mentre altre sono momenti critici con impatto a lungo termine. La scelta di un database tende a rientrare in quest'ultima categoria, motivo per cui un approccio unico con un database relazionale non funziona più. È necessario fare un passo indietro e rivedere gli esatti casi d'uso prima di passare alla selezione di un database. Cambia la tua aspettativa che un database possa fare tutto e scegli invece il servizio di database più adatto alle tue esigenze. AWS offre un portafoglio ampio e completo di database dedicati che supportano diversi modelli di dati e consentono di creare applicazioni distribuite, basate sui dati e altamente scalabili. In questo post del blog, tratteremo i fattori che una startup in fase iniziale dovrebbe prendere in considerazione quando esamina le opzioni di database su AWS.
Fattori da considerare nella scelta di un database
Esperienza
Le startup in fase iniziale devono concentrarsi sulla creazione di un prodotto minimo realizzabile e sulla dimostrazione di trazione e crescita, quindi ogni decisione deve essere presa tenendo conto della rapidità di commercializzazione e delle competenze disponibili. La scelta di una tecnologia con cui il tuo team non ha esperienza spesso allunga le tempistiche e si traduce in MVP più difficili da modificare in risposta al feedback degli utenti. Questo è uno dei motivi più comuni per cui l'utilizzo di un database relazionale può continuare a essere l'approccio giusto all'inizio. Se il tuo team ha esperienza con uno specifico servizio dati (ad esempio relazionale, documentale, ecc.), iniziare da lì può essere la scelta giusta.
Scalabilità futura
La scalabilità futura è un altro fattore a cui le startup in fase iniziale devono prestare attenzione. La scelta di una tecnologia familiare per consentire una distribuzione più rapida deve essere bilanciata da una nuova analisi del caso d'uso e dalla determinazione delle esigenze di scalabilità future. Essere in grado di sfruttare delle soluzioni che si dimensionano automaticamente con l'utente continuando a funzionare come previsto può essere un moltiplicatore di forza. È sempre possibile migrare a una tecnologia diversa in un secondo momento, ma tieni presente che le migrazioni diventeranno più complesse con la crescita dei dati. Alcune migrazioni, come quelle tra Amazon Relational Database Service (Amazon RDS) e Amazon Aurora, sono reversibili, ossia quelle che chiamiamo "decisioni bidirezionali". Le decisioni bidirezionali consentono una sperimentazione più rapida e adottano un approccio di anticipazione dell'errore (fail fast). Nella prossima sezione parleremo ulteriormente dei servizi di database come Amazon RDS e Aurora.
Database dedicati e relativi casi d'uso
Per molto tempo, i database relazionali come MySQL e Postgres hanno dominato il panorama dei database. Oggi ci sono molti altri tipi di database tra cui scegliere. Per prendere una decisione consapevole, è utile valutare i database in base alle loro caratteristiche di accesso e alla forma dei dati.
Database relazionali
Un database relazionale è autodescrittivo, perché consente agli sviluppatori di definire lo schema del database, nonché le relazioni e i vincoli tra righe e tabelle del database. Gli sviluppatori si affidano alla funzionalità del database relazionale e non al codice dell'applicazione per applicare lo schema e preservare l'integrità referenziale dei dati all'interno del database. Alcuni casi d'uso tipici di un database relazionale includono applicazioni web e mobili. Le startup utilizzano Amazon RDS e Amazon Aurora per applicazioni scalabili e ad alte prestazioni su AWS. Sia RDS che Aurora sono database completamente gestiti e scalabili.
NoSQL: database chiave-valore e database di documenti
Man mano che il sistema cresce, grandi quantità di dati sono spesso sotto forma di dati chiave-valore, in cui una singola riga corrisponde a una chiave primaria. I database chiave-valore sono altamente partizionabili e consentono una scalabilità orizzontale a livelli che altri tipi di database non possono raggiungere. Casi d'uso come giochi, tecnologia pubblicitaria e IoT si prestano particolarmente bene al modello di dati chiave-valore, in cui i modelli di accesso richiedono Get/Puts a bassa latenza per valori chiave noti.
Amazon DynamoDB è un database NoSQL completamente gestito, serverless e chiave-valore che offre prestazioni a una cifra al millisecondo su qualsiasi scala. Per casi d'uso chiave-valore altamente performanti, offriamo anche Amazon Keyspaces, un servizio di database scalabile, altamente disponibile e gestito, compatibile con Apache Cassandra.
Un altro tipo di database rilevante è un database di documenti. I database di documenti sono intuitivi da usare per gli sviluppatori, poiché i dati a livello di applicazione sono in genere rappresentati come documenti JSON. I database di documenti sono diffusi per casi d'uso come l'archiviazione e l'interrogazione dei dati del sistema di gestione dei contenuti, nonché per la gestione di profili utente, preferenze e richieste per generare consigli e abilitare le transazioni.
Per i dati dei documenti, gli sviluppatori possono mantenere i dati con lo stesso formato del modello di documento utilizzato nel codice dell'applicazione, avvalendosi del modello di schema flessibile di Amazon DocumentDB (compatibile con MongoDB), un database completamente gestito e durevole per raggiungere l'efficienza degli sviluppatori e supportare milioni di letture di documenti al secondo, scalando al contempo elaborazione e storage in modo indipendente.
Data warehouse
Quando si determina la necessità di data warehouse, è importante distinguere tra database transazionali (OLTP) e analitici (OLAP). I database OLAP sono database più grandi per il warehousing e l'archiviazione dei dati. Per molte startup in fase iniziale, prendere in considerazione Amazon Athena per gestire i casi d'uso OLAP può essere la scelta giusta. Amazon Athena è un'interfaccia di query SQL serverless che consente di analizzare i dati archiviati in Amazon Simple Storage Service (Amazon S3) con SQL standard.
Quando le tue applicazioni iniziano a richiedere query più complesse e SLA più rigorosi, è qui che la potenza dei data warehouse può aiutarti a dimensionare la strategia e i requisiti dei dati. Amazon Redshift è un servizio di data warehouse nel cloud completamente gestito e con capacità di più petabyte.
Database in memoria
I database in memoria vengono utilizzati per applicazioni che richiedono l'accesso in tempo reale ai dati forniti con una latenza di microsecondi. I servizi finanziari, l'e-commerce, il web, i dispositivi mobili e le applicazioni di gioco hanno utilizzato database in memoria per creare classifiche, archivi di sessioni, cache e analisi in tempo reale. I database in memoria possono facilitare il caricamento dei database relazionali, fornire risultati a bassa latenza o sostituire il database relazionale ed essere un archivio primario di dati chiave-valore in memoria.
Amazon ElastiCache semplifica la configurazione, la gestione e la scalabilità di un data store o di un ambiente di cache in memoria. Amazon ElastiCache funziona con entrambi i motori Redis e Memcached. Amazon MemoryDB per Redis è un servizio di database in memoria durevole e compatibile con Redis che offre prestazioni ultraveloci. È stato creato appositamente per applicazioni moderne con architetture di microservizi. Un modo per decidere tra queste offerte dipende dal fatto che il tuo caso d'uso sia effimero oppure che richieda una maggiore durabilità. Amazon ElastiCache viene spesso utilizzato come database autonomo, ma solo per applicazioni che non richiedono durabilità. Al contrario, MemoryDB è progettato per essere un database primario. L'altro fattore sarebbe la familiarità del tuo team con i motori Redis o Memcached.
Ricerca
I database di ricerca forniscono analisi e ricerche quasi in tempo reale. I casi d'uso comuni per i database di ricerca includono l'analisi dei log, il monitoraggio delle applicazioni in tempo reale e l'analisi dei clickstream.
Il servizio OpenSearch di Amazon semplifica l'esecuzione di analisi interattive dei log, il monitoraggio delle applicazioni in tempo reale, la ricerca di siti Web e altro ancora. Il servizio OpenSearch di Amazon supporta OpenSearch e il precedente OSS Elasticsearch.
Database a grafo
Lo scopo di un database a grafo è semplificare la creazione e l'esecuzione di applicazioni che funzionano con set di dati altamente connessi. I casi d'uso tipici di un database a grafo includono i social network, i motori di raccomandazione, il rilevamento delle frodi e i grafici di conoscenze. Per decidere se un database a grafo è la scelta giusta occorre innanzitutto determinare se i dati possono essere rappresentati al meglio come struttura a grafo. L'ampiezza e la profondità delle relazioni stanno aumentando? Le query per i database relazionali diventeranno più lente man mano che le relazioni diventeranno più complesse. I modelli stessi stanno cambiando tanto da rendere le modifiche allo schema un peso per il vostro team? Infine, dovrai rispondere a domande sulle relazioni presenti nei tuoi dati? I database a grafo offrono questo tipo di flessibilità fornendo al contempo query complesse su queste relazioni. Amazon Neptune è un servizio di database a grafo veloce, affidabile e completamente gestito.
Database di libro mastro
I database di libro mastro possono aiutare a tracciare l'intero percorso dei dati. Amazon Quantum Ledger Database (QLDB) è un database di libro mastro completamente gestito che fornisce un log delle transazioni trasparente, immutabile e verificabile crittograficamente di proprietà di un'autorità centrale affidabile.
database di serie temporali
I database di serie temporali gestiscono i casi d'uso in cui le applicazioni trattano dati di serie temporali e devono analizzare rapidamente questi dati utilizzando funzioni analitiche integrate. Amazon Timestream è un servizio di database di serie temporali veloce, scalabile e serverless per applicazioni IoT e operative.
Tipo di database | Casi d'uso | Servizio AWS |
Relazionale | Applicazioni tradizionali, e-commerce, transazioni OLTP | Amazon AuroraAmazon RDS |
Chiave-valore | Applicazioni web a traffico elevato, sistemi di e-commerce, applicazioni per videogiochi, trading finanziario | Amazon DynamoDBAmazon Keyspaces |
Documento | Gestione dei contenuti, cataloghi, profili utente | Amazon DocumentDBAmazon AthenaAmazon Elasticache |
In memoria | Caching, gestione sessioni, classifiche per videogiochi, applicazioni geospaziali | Amazon MemoryDB per Redis |
Cerca | Logging consolidato, ricerca personalizzata | Amazon OpenSearch |
Grafo | Rilevamento di attività fraudolente, social network, profili utente | Amazon Neptune |
Contabilità | Sistemi di record, catena di approvvigionamento, registrazioni, transazioni bancarie | Amazon QLDB |
Serie temporali | IoT, DevOps, telemetria industriale | Amazon Timestream |
Conclusioni
In qualità di startup in fase iniziale, una delle decisioni più critiche da prendere è il tipo di tecnologia di database da utilizzare. Quando esamini i database dedicati offerti da AWS, parti dal caso d'uso e definisci i requisiti necessari per filtrare quali servizi di database sono adatti. Quindi, valuta la velocità di commercializzazione e le competenze disponibili del tuo team, ma assicurati di bilanciare questi fattori con le tue esigenze future. È importante dedicare il tempo necessario a considerare questi fattori e a scegliere il servizio di database più adatto.
AWS Editorial Team
Il team Content Marketing di Startup AWS collabora con startup di varie dimensioni e in ogni settore, al fine di sviluppare contenuti eccezionali che siano informativi, coinvolgenti e autentici fonti di ispirazione.
Com'era questo contenuto?