Ignora esplorazione

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:

Ridimensionamento verticale o aumento o riduzione, in cui è possibile aumentare o ridurre la potenza di calcolo o i database in base alle esigenze, modificando i livelli di prestazioni o usando pool di database elastici, per adattarsi automaticamente alle esigenze del carico di lavoro.

Ridimensionamento orizzontale o scalabilità orizzontale o interna, in cui puoi aggiungere più database o dividere database di grandi dimensioni in nodi più piccoli, usando un approccio di partizionamento dei dati denominato partizionamento orizzontale, che può essere gestito più rapidamente e più facilmente tra 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 partizionamento, 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à.

  • 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.

    Scopri di più sui database
  • 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.

    Scopri di più sui database NoSQL
  • 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.

    Scopri di più su PostgreSQL
  • 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.

    Scopri di più sulla memorizzazione nella cache
  • 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.

    Scopri di più sul partizionamento di 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.

    Scopri di più su PaaS

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 nelle macchine virtuali

Esegui la migrazione di carichi di lavoro di SQL Server al cloud con il costo totale di proprietà più basso disponibile

Database di Azure per MySQL

Database MySQL completamente gestito e scalabile

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

Possiamo iniziare quando vuoi a configurare il tuo account gratuito

Serve aiuto?