Sfrutta la scalabilità orizzontale

Last reviewed 2024-12-30 UTC

Questo principio del pilastro dell'affidabilità del Google Cloud framework Well-Architected fornisce consigli per aiutarti a utilizzare la scalabilità orizzontale. Utilizzando la scalabilità orizzontale, puoi contribuire a garantire che i tuoi carichi di lavoro inGoogle Cloud possano essere scalati in modo efficiente e mantenere le prestazioni.

Questo principio è pertinente all'ambito dell'area di interesse dell'affidabilità.

Panoramica del principio

Riprogetta l'architettura del sistema in modo che sia orizzontale. Per far fronte all'aumento del traffico o dei dati, puoi aggiungere altre risorse. Puoi anche rimuovere le risorse quando non sono in uso.

Per comprendere il valore della scalabilità orizzontale, considera i limiti della scalabilità verticale.

Uno scenario comune per lo scale up verticale è l'utilizzo di un database MySQL come database principale con dati critici. Man mano che l'utilizzo del database aumenta, sono necessari più RAM e CPU. Alla fine, il database raggiunge il limite di memoria sulla macchina host e deve essere aggiornato. Questo processo potrebbe dover essere ripetuto più volte. Il problema è che esistono limiti rigidi alla crescita di un database. Le dimensioni delle VM non sono illimitate. Il database può raggiungere un punto in cui non è più possibile aggiungere altre risorse.

Anche se le risorse fossero illimitate, una VM di grandi dimensioni può diventare un singolo punto di errore. Qualsiasi problema con la VM del database principale può causare risposte di errore o un'interruzione a livello di sistema che interessa tutti gli utenti. Evita i single point of failure, come descritto in Crea sistemi a disponibilità elevata tramite la ridondanza delle risorse.

Oltre a questi limiti di scalabilità, lo scaling verticale tende a essere più costoso. Il costo può aumentare in modo esponenziale man mano che vengono acquisite macchine con maggiore potenza di calcolo e memoria.

La scalabilità orizzontale, al contrario, può costare meno. Il potenziale di scalabilità orizzontale è praticamente illimitato in un sistema progettato per la scalabilità.

Consigli

Per passare da un'architettura a una singola VM a un'architettura orizzontale a più macchine, devi pianificare con attenzione e utilizzare gli strumenti giusti. Per aiutarti a ottenere uno scaling orizzontale, prendi in considerazione i suggerimenti nelle seguenti sottosezioni.

Utilizzare i servizi gestiti

I servizi gestiti eliminano la necessità di gestire manualmente lo scaling orizzontale. Ad esempio, con i gruppi di istanze gestite (MIG) di Compute Engine, puoi aggiungere o rimuovere VM per scalare orizzontalmente l'applicazione. Per le applicazioni containerizzate, Cloud Run è una piattaforma serverless che può scalare automaticamente i tuoi container stateless in base al traffico in entrata.

Promuovere la progettazione modulare

Componenti modulari e interfacce chiare ti aiutano a scalare i singoli componenti in base alle tue esigenze, anziché scalare l'intera applicazione. Per saperne di più, consulta la sezione Promuovere la progettazione modulare nel pilastro dell'ottimizzazione del rendimento.

Implementare un design stateless

Progetta applicazioni stateless, ovvero senza dati archiviati localmente. In questo modo puoi aggiungere o rimuovere istanze senza preoccuparti della coerenza dei dati.