Cos'è un database serverless?
Un database serverless è un tipo di tecnologia database in cui la gestione dei server di database e dell'infrastruttura IT correlata è interamente affidata a un provider di servizi cloud esterno. Tradizionalmente, le organizzazioni installavano sistemi di database su server gestiti internamente, dovendo assicurarsi che le configurazioni dei server fossero aggiornate e correttamente mantenute in base all'aumento della domanda. Di contro, i database serverless operano su un'infrastruttura cloud completamente gestita, offrendo un dimensionamento elastico in risposta alle variazioni dei carichi di lavoro. I database serverless più comuni possono essere database relazionali o database NoSQL. Questi sistemi offrono disponibilità intrinseca, tolleranza ai guasti e affidabilità, permettendo di pagare esclusivamente per l'utilizzo effettivo del database. Gli accordi sui livelli di servizio (SLA) garantiscono le prestazioni del sistema, consentendo di focalizzarsi con tranquillità sulla raccolta e l'analisi dei dati anziché sulla gestione dell'infrastruttura del database.
Quali sono i vantaggi di un database serverless?
Le aziende possono trarre diversi vantaggi dall'utilizzo di database serverless.
Scalabilità
I database serverless offrono scalabilità istantanea per ospitare grandi volumi di transazioni. La scalabilità on demand consente di assicurare che il database sia in grado di gestire efficacemente i picchi di carico di lavoro, mantenendo costanti le prestazioni senza subire rallentamenti. Un database scalabile offre alle aziende prestazioni affidabili indipendentemente dal traffico.
Affidabilità
I provider di terze parti che offrono servizi di database serverless utilizzano una gamma di funzioni serverless per garantire un'elevata disponibilità. I database serverless assicurano la durabilità proteggendo da varie forme di perdita di dati. Forniscono, ad esempio, funzionalità come repliche di lettura, zone di disponibilità e clonazione per migliorare l'affidabilità. Inoltre, implementano strategie di autoriparazione, tolleranza ai guasti e distribuzione dei dati per garantire una maggiore durabilità.
Facilità di gestione
I database serverless offrono una gestione automatizzata dei database, eliminando la necessità di gestire le risorse. Ciò permette di spostare il focus dai compiti di manutenzione a quelli legati allo sviluppo aziendale. Il provider di servizi cloud si occupa della gestione del database nel cloud per conto dell'utente.
Al contempo, le aziende possono ottimizzare gradualmente l'utilizzo dei database serverless per assicurarsi di pagare solo per le risorse e la capacità effettivamente utilizzate. La scalabilità granulare facilita l'allineamento tra costi e utilizzo, consentendo di trovare un equilibrio efficace.
Pagamento in base al consumo
I database serverless utilizzano un modello di pagamento in base al consumo, che prevede l'addebito agli utenti in base all'effettivo utilizzo delle risorse. Questo approccio flessibile si adatta al consumo variabile e offre alle aziende un ottimo rapporto qualità-prezzo.
Quali sono i casi d'uso dei database serverless?
Di seguito sono riportati alcuni casi d'uso per una strategia di database serverless.
Carichi di lavoro variabili
Le aziende che gestiscono applicazioni con modelli di utilizzo irregolari possono riscontrare problematiche nel provisioning adeguato delle risorse. Determinate circostanze possono causare aumenti improvvisi del traffico; ad esempio, in concomitanza con alcuni eventi pubblici, quando molte persone accedono contemporaneamente, può verificarsi un picco nell'uso dei social media. I database serverless offrono la flessibilità necessaria per affrontare questi aumenti di interazioni e di elaborazione dei dati mantenendo un'elevata reattività. Possono dimensionarsi in modo granulare per soddisfare la domanda di risorse durante le ore di punta, evitando al contempo spese inutili per le risorse inattive nei periodi di minore attività.
Gestione della flotta di database aziendali
Le aziende più grandi possono avere centinaia o addirittura migliaia di applicazioni in esecuzione contemporaneamente. Queste applicazioni possono condividere le stesse risorse o disporre di database individuali. Gestire manualmente le fluttuazioni del consumo e della domanda di risorse in un gran numero di applicazioni risulta complicato. Tuttavia, le aziende possono adottare un sistema di database serverless per regolare automaticamente disponibilità e prestazioni in base alle esigenze di ciascuna applicazione. Questo approccio garantisce un alto livello di disponibilità, prestazioni e capacità di ripristino, evitando la necessità di affrontare complesse attività di gestione.
Applicazioni software as a service
I fornitori di software as a service (SaaS) possono gestire istanze di database separate per ogni cliente. Anche se queste istanze di database vengono collocate in un unico cluster, è necessario gestirle individualmente. Utilizzando una soluzione di database serverless, i fornitori SaaS possono offrire cluster di database specifici per ciascun cliente senza preoccupazioni riguardo a costi aggiuntivi. Quando un database non è in uso, viene automaticamente chiuso per ridurre il consumo di risorse.
Database di grandi dimensioni
Laddove si ha a che fare con requisiti di lettura o scrittura elevati è possibile suddividere i database in diverse istanze per migliorare la velocità di trasmissione effettiva. Quando si suddividono i database utilizzando un database serverless, è possibile regolare automaticamente la capacità in risposta alla domanda. Adottare un approccio basato su database serverless permette di minimizzare i tempi di inattività, fornendo esattamente la capacità richiesta dalle applicazioni.
Applicazioni con utilizzo saltuario
Alcune applicazioni che utilizzano database tradizionali utilizzano le proprie risorse solo di rado. Ad esempio, i team di sviluppo software e di controllo qualità potrebbero non necessitare di accedere ai database di sviluppo durante la notte o nei fine settimana. Inoltre, se un'applicazione o un sito web è attivo solamente per alcuni minuti al giorno, sostenere i costi per un servizio attivo 24 ore su 24 diventa superfluo. Utilizzando un database serverless, le aziende sono chiamate a pagare esclusivamente per le risorse effettivamente utilizzate, trovando così una soluzione efficiente a questo problema. I database serverless, infatti, si disattivano automaticamente quando non sono in uso.
Come funzionano i database serverless?
I database serverless rappresentano un notevole cambiamento nel modo in cui i database vengono gestiti e utilizzati. Tutte le attività amministrative come backup, manutenzione e aggiornamenti sono completamente gestite dal provider di servizi cloud. I database serverless supportano anche tutte le altre funzioni vitali del database, come la fornitura di controlli di sicurezza degli accessi, la sincronizzazione con l'accesso ai dati offline e il supporto per le librerie di sviluppo. Utilizzano la crittografia, le autorizzazioni a livello di risorsa, l'isolamento della rete e il controllo avanzato per mantenere i dati sicuri e protetti.
Inoltre, possono essere configurati e pronti all'uso in pochi minuti. Per funzionare in modo efficace, infine, si avvalgono di varie funzioni serverless.
Configurazione on demand
I database serverless regolano la capacità del database in base alle esigenze di un'applicazione. Dimensionano automaticamente sia l'I/O sia il volume in base all'archiviazione di dati e alle esigenze computazionali. Possono arrestarsi, avviarsi e aumentare o diminuire verticalmente per adattarsi al carico di lavoro. Grazie a questa funzionalità, gli utenti possono accedere ai database senza gestire singole istanze.
Endpoint personalizzati e repliche di lettura
È possibile configurare gli endpoint del database per indirizzare il carico di lavoro verso specifiche istanze configurate, isolandone altre. Questo approccio consente di distribuire e bilanciare i carichi di lavoro tra diverse istanze. Nei database serverless, inoltre, gli utenti possono creare repliche di lettura a bassa latenza per gestire richieste di lettura ad alto volume. Queste repliche condividono lo stesso pool di archiviazione del database, riducendo così al minimo i ritardi e i costi.
In che modo AWS può supportare i tuoi requisiti di database serverless?
Amazon Aurora è un servizio di database relazionale moderno che offre prestazioni e disponibilità elevata su vasta scala, edizioni compatibili con MySQL e PostgreSQL totalmente open source e una gamma di strumenti di sviluppo per creare applicazioni serverless e basate sul machine learning (ML). Amazon Aurora serverless è una configurazione on demand con scalabilità automatica per Amazon Aurora che si avvia, si spegne e aumenta o riduce automaticamente la capacità in base alle esigenze dell'applicazione.
Per esempio, puoi:
- Dimensionare all'istante passando a centinaia di migliaia di transazioni.
- Utilizzare un database di documenti serverless completamente gestito senza gestire le istanze.
- Dimensionare la capacità del database senza interferire con le richieste in arrivo dell'applicazione.
Amazon Timestream è un servizio di database di serie temporali veloce, scalabile e serverless per applicazioni IoT e operative. Timestream archivia e analizza migliaia di miliardi di eventi al giorno più velocemente e a costi inferiori rispetto ai database relazionali.
Per esempio, puoi:
- Analizzare rapidamente i dati delle serie temporali nei database SQL utilizzando funzioni analitiche integrate per lo snellimento, l'interpolazione e l'approssimazione.
- Elaborare milioni di query al giorno e ridimensionare automaticamente le risorse di calcolo e l'archiviazione per supportare carichi di lavoro elevati.
- Semplificare la gestione del ciclo di vita dei dati con un archivio in memoria per i dati recenti e un archivio magnetico per i dati storici.
AWS offre anche una gamma di database NoSQL serverless, come Amazon DynamoDB, Amazon ElasticCache e Amazon Neptune.
Inizia a usare i database serverless su AWS creando un account gratuito oggi stesso.
Fasi successive su AWS
Ottieni accesso istantaneo al Piano gratuito di AWS.