Sfruttare la scalabilità orizzontale

Last reviewed 2024-12-30 UTC

Questo principio del pilastro dell'affidabilità del Google Cloud Well-Architected Framework fornisce consigli per aiutarti a utilizzare la scalabilità orizzontale. Utilizzando la scalabilità orizzontale, puoi contribuire a garantire che i tuoi workload in Google Cloud possano scalare in modo efficiente e mantenere le prestazioni.

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

Panoramica dei principi

Riprogetta il sistema in un'architettura orizzontale. Per adattarti alla crescita 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 la scalabilità 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 sottoposto a upgrade. Questa procedura potrebbe dover essere ripetuta 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 singoli punti di errore, come descritto in Creare sistemi a elevata disponibilità tramite la ridondanza delle risorse.

Oltre a questi limiti di scalabilità, la scalabilità verticale tende a essere più costosa. 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 singola VM a un'architettura orizzontale a più macchine, devi pianificare attentamente e utilizzare gli strumenti giusti. Per aiutarti a ottenere la scalabilità orizzontale, prendi in considerazione i consigli nelle seguenti sottosezioni.

Utilizzare i servizi gestiti

I servizi gestiti eliminano la necessità di gestire manualmente la scalabilità 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 container stateless in base al traffico in entrata.

Promuovere la progettazione modulare

I componenti modulari e le interfacce chiare ti aiutano a scalare i singoli componenti in base alle esigenze, anziché scalare l'intera applicazione. Per ulteriori informazioni, consulta Promuovere la progettazione modulare nel pilastro dell'ottimizzazione delle prestazioni.

Implementare una progettazione stateless

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