Confronto tra aumento delle risorse e della capacità
Introduzione alla scalabilità dei database nel cloud computing.
Dati ovunque: cosa si intende per scalabilità
La scalabilità nel cloud computing è la possibilità di aumentare o ridurre in modo semplice e rapido le dimensioni o la potenza di una soluzione IT o di una risorsa. Benché il termine scalabilità possa fare riferimento alla capacità di qualsiasi sistema di gestire una quantità crescente di lavoro, quando si parla di aumento delle risorse o della capacità ci si riferisce spesso a database e dati di grandi dimensioni.
La scalabilità dei database è essenziale per gli sviluppatori di app moderne. Supponiamo che una nuova app abbia successo e che la domanda per tale app cresca da qualche utente a milioni di utenti in tutto il mondo. Una delle capacità più importanti per aiutare gli sviluppatori a soddisfare la domanda e ridurre al minimo il tempo di inattività consiste nella possibilità di eseguire il dimensionamento in modo efficiente.
Questa conversazione sul confronto tra aumento della capacità e delle risorse è incentrata sul modo in cui la scalabilità consente di adattarsi e gestire il volume elevato e la vasta gamma di dati, i volumi di dati in continua evoluzione e i criteri variabili dei carichi di lavoro, generati da cloud, dispositivi mobili, social media e Big Data.
Confronto tra aumento della capacità e delle risorse
Al livello più semplice, la scalabilità dei database può essere divisa in due tipi:
Aumento delle risorse, ovvero aumento o riduzione della capacità di calcolo o dei database in base alla necessità, mediante la modifica dei livelli di prestazioni o mediante l'uso di pool di database elastici per l'adeguamento automatico alle esigenze del carico di lavoro.
Aumento della capacità, ovvero aggiunta di più database o divisione di un database di grandi dimensioni in nodi più piccoli, mediante un approccio di partizionamento dei dati che può essere gestito in modo più semplice e rapido tra i server.
Aumento delle risorse
L'aumento delle risorse viene usato quando devi reagire rapidamente per risolvere un problema di prestazioni che non può essere risolto mediante le tecniche classiche per l'ottimizzazione dei database, ad esempio per modifiche alle query o indicizzazione. L'aumento delle risorse risulta utile per gestire i picchi nei carichi di lavoro nel caso in cui il livello di prestazioni corrente non riesca a soddisfare tutte le domande. L'aumento delle risorse ti permette di aggiungere più risorse per gestire i picchi dei carichi di lavoro. Quando le risorse non sono più necessarie, la riduzione delle risorse ti permette quindi di tornare allo stato originale e risparmiare sui costi del cloud.
Aumenta le risorse quando:
-
Noti che i carichi di lavoro raggiungono un limite relativo alle prestazioni, ad esempio limiti per CPU o I/O.
-
Devi reagire rapidamente per risolvere problemi delle prestazioni che non possono essere risolti con l'ottimizzazione classica dei database.
-
Ti serve una soluzione che ti permetta di cambiare i livelli di servizio per adattarti ai requisiti variabili per la latenza.
Aumento della capacità
Gli sviluppatori di app iniziano a valutare l'aumento della capacità solo quando non possono ottenere risorse sufficienti per i propri carichi di lavoro, anche se usano i livelli più elevati di prestazioni. Grazie all'aumento della capacità, i dati vengono suddivisi in più database, o partizioni, nei server e le risorse di ogni partizione possono essere aumentare o ridotte in modo indipendente.
In che modo il partizionamento dei dati migliora la scalabilità? Quando si aumentano le risorse di un database singolo aggiungendo risorse quali macchine virtuali, il database raggiungerà a un certo punto un limite dell'hardware fisico. Poiché ogni partizione di dati è ospitata in un server separato, se dividi i dati in più partizioni potrai aumentare la capacità di un sistema quasi senza limitazioni.
Alcuni tipi di tecnologie di database, in particolare database non relazionali o database NoSQL, vengono sviluppate con funzionalità esclusive per l'aumento della capacità per i dati mediante partizione di database, in modo da consentire la gestione di dati di grandi dimensioni, non correlati, indeterminati o in rapida evoluzione.
Alcuni servizi di database relazionali (SQL) che offrivano inizialmente servizi per l'aumento o la riduzione delle risorse stanno iniziando a offrire opzioni interessanti per adeguarsi ai vantaggi a livello di scalabilità offerti dai database non relazionali. I servizi con iperscalabilità come Database SQL di Microsoft Azure - Hyperscale e Database PostgreSQL di Azure - Hyperscale consentono agli utenti di dimensionare rapidamente le risorse di archiviazione fino a 100 TB, forniscono architettura flessibile nativa del cloud per consentire l'aumento delle risorse di archiviazione in base alla necessità e abilitano backup quasi immediati e ripristini veloci dei database in pochi minuti.
Aumenta la capacità quando:
-
Sono presenti applicazioni con distribuzione geografica in cui ogni app deve accedere a parte dei dati nell'area specifica. Ogni app accederà solo alla partizione associata a tale area senza influire sulle altre partizioni.
-
È disponibile uno scenario di partizionamento globale, ad esempio il bilanciamento del carico, che include un numero elevato di client con distribuzione geografica che inseriscono dati nelle rispettive partizioni dedicate.
-
Hai superato i limiti massimi dei requisiti di prestazioni, anche nei livelli di prestazioni più elevati del servizio, oppure se i dati non possono essere inclusi in un database singolo.
Scalabilità automatica
La scalabilità automatica è il processo di associazione automatica e dinamica di risorse per soddisfare i requisiti di prestazioni di un sistema. Con l'aumentare del volume di lavoro, è possibile che le app necessitino di risorse aggiuntive per mantenere i livelli di prestazioni necessari o soddisfare la domanda crescente. Se la domanda rallenta e le risorse aggiuntive non sono più necessarie, è possibile risparmiare sulla spesa per il cloud usando un servizio automatico per la deallocazione delle risorse inutilizzate.
La scalabilità automatica sfrutta la flessibilità degli ambienti ospitati nel cloud. Attenua il sovraccarico di gestione riducendo la necessità da parte degli operatori del sistema di prendere costantemente decisioni sull'aggiunta o sulla rimozione di risorse o sul controllo delle prestazioni del sistema.
Benché siano disponibili due modalità principali per il dimensionamento delle app, ovvero aumento delle risorse o della capacità, l'aumento delle risorse è meno comune perché richiede spesso la non disponibilità temporanea del sistema durante la ridistribuzione.
La scalabilità automatica è più comune per l'aumento della capacità perché comporta semplicemente l'aggiunta o la rimozione di istanze di una risorsa, mentre l'esecuzione dell'app continua senza interruzioni durante il provisioning di nuove risorse. In caso di riduzione della domanda, le risorse possono essere arrestate facilmente senza tempi di inattività e deallocate.
Molti provider di sistemi basati sul cloud, tra cui Microsoft Azure, supportano l'aumento automatico della capacità.
Domande frequenti
-
Un database è una qualsiasi raccolta di informazioni correlate archiviate e organizzate in modo da semplificarne la gestione e l'accesso. Nuovi dati e tipi di dati vengono generati a ritmo elevato e risulta quindi complesso garantire che tali dati siano sempre organizzati, accessibili e sicuri. I sistemi di gestione di database, che includono un livello di strumenti di gestione, vengono spesso usati per gestire volumi elevati di dati.
Nuovi tipi di database e nuove tecnologie emergono continuamente per adattarsi al volume e alla vasta gamma di dati generati da cloud, dispositivi mobili, social media e Big Data.
-
I database NoSQL, definiti spesso non relazionali o "non solo" SQL, sono un set diversificato di tecnologie di database che gestiscono l'archiviazione e il recupero dei dati in modo diverso rispetto ai database relazionali tradizionali (SQL).
I database NoSQL non richiedono uno schema predefinito e possono usare più modelli di dati. Sono quindi estremamente efficaci per la gestione di volumi elevati di dati non strutturati e il dimensionamento di progetti di database per Big Data.
-
PostgreSQL è un database open source solido compatibile con query relazionali e non relazionali e noto per l'affidabilità e l'integrità dei dati. PostgreSQL è ampiamente usato in campi quali servizi finanziari, produzione, sistemi di informazioni geografiche governative e tecnologia Web. Gli sviluppatori creano app con PostgreSQL, mentre gli amministratori si affidano a PostgreSQL per la protezione dei dati.
-
La memorizzazione nella cache è una tecnica comune usata da sviluppatori e professionisti IT per migliorare le prestazioni e la scalabilità del sistema. La memorizzazione nella cache copia temporaneamente i dati usati di frequente in una risorsa di archiviazione rapida vicina all'app. Se questa risorsa di archiviazione rapida dei dati si trova più vicina all'app rispetto all'origine iniziale, la memorizzazione nella cache può migliorare significativamente i tempi di risposta per le app client fornendo i dati più rapidamente. Gli sviluppatori spesso progettano app affinché memorizzino nella cache i dati elaborati e quindi riconvertono la cache per gestire le richieste più velocemente rispetto alle query su database standard.
-
Il partizionamento dei dati è un tipo di partizionamento che consente di dividere un database di grandi dimensioni in database più piccoli, che possono essere gestiti in modo più semplice e rapido tra server.
Altre informazioni sul partizionamento orizzontale del database
-
Una piattaforma distribuita come servizio, spesso indicata come PaaS (Platform as a Service), è un servizio fornito da un provider di servizi cloud che offre un ambiente on demand per lo sviluppo, il test, la distribuzione e la gestione di app. Una soluzione PaaS semplifica e accelera la creazione di app Web o per dispositivi mobili da parte degli sviluppatori, senza che sia necessario gestire la configurazione o la gestione dell'infrastruttura sottostante di server, risorse di archiviazione, risorse di rete e database necessari per gli sviluppatori.
Risorse
Avvii rapidi e moduli di apprendimento
Esplora la scalabilità cloud con Azure
Scopri un approccio completo per l'aumento delle risorse o della capacità, ottimale per il tuo scenario in ambienti locali, multi-cloud e perimetrali. La famiglia Azure di servizi di database offre diverse opzioni di database relazionali, NoSQL e in memoria completamente gestiti, che includono motori proprietari e open source, per soddisfare le esigenze degli sviluppatori di app moderne.
Risparmia tempo e denaro con la gestione automatizzata dell'infrastruttura, incluse soluzioni di automazione per scalabilità, disponibilità e sicurezza.
Prodotti e servizi correlati
Azure SQL
Famiglia di database cloud SQL che offre opzioni flessibili per la migrazione, la modernizzazione e lo sviluppo di app.
Azure Cosmos DB
Database NoSQL veloce con API aperte per qualsiasi scala.
Azure PostgreSQL
PostgreSQL completamente gestito, intelligente e scalabile.
Database SQL di Azure
SQL intelligente gestito sul cloud.
Istanza gestita di SQL di Azure
Istanza gestita, sempre aggiornata di SQL sul cloud.
SQL Server in macchine virtuali
Esegui la migrazione dei carichi di lavoro di SQL Server al cloud con il costo totale di proprietà più basso disponibile.
Database di Azure per MySQL
Database MySQL scalabile e completamente gestito.
Azure Maria DB
Servizio di database MariaDB gestito per gli sviluppatori di app.
Cache di Azure per Redis
Accelera le applicazioni con la memorizzazione nella cache a velocità effettiva elevata e bassa latenza.
-
Scalabilità illimitata con i database gestiti
Concentrati sulla creazione di app e semplifica il tuo lavoro con i database gestiti da Microsoft Azure.