Sfrutta la scalabilità orizzontale

Last reviewed 2024-12-30 UTC

Questo principio del pilastro dell'affidabilità del Google Cloud Framework dell'architettura fornisce consigli per aiutarti a utilizzare la scalabilità orizzontale. Utilizzando la scalabilità orizzontale, puoi contribuire ad assicurare 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 applicazione dell'affidabilità.

Panoramica dei principi

Riprogetta il sistema in un'architettura orizzontale. Per far fronte 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, prendi in considerazione le limitazioni della scalabilità verticale.

Uno scenario comune per l'escaling verticale è l'utilizzo di un database MySQL come database principale con dati critici. Con l'aumento dell'utilizzo del database, sono necessarie più RAM e CPU. Alla fine, il database raggiunge il limite di memoria sulla macchina host e deve essere eseguito l'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 single point of failure, come descritto in Creare sistemi altamente disponibili tramite risorse ridondanti.

Oltre a questi limiti di scalabilità, la scalabilità verticale tende ad 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, invece, può costare meno. Il potenziale di scalabilità orizzontale è praticamente illimitato in un sistema progettato per essere scalabile.

Consigli

Per passare da un'architettura a una singola VM a un'architettura orizzontale con più macchine, devi pianificare attentamente e utilizzare gli strumenti giusti. Per aiutarti a eseguire il scaling orizzontale, tieni presenti i consigli riportati nelle seguenti sezioni.

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 l'applicazione in orizzontale. Per le applicazioni containerizzate, Cloud Run è una piattaforma serverless che può scalare automaticamente i container stateless in base al traffico in entrata.

Promuovi il design modulare

Componenti modulari e interfacce chiare ti aiutano a scalare i singoli componenti in base alle esigenze, anziché l'intera applicazione. Per ulteriori informazioni, consulta Promuovere il design modulare nel pilastro sull'ottimizzazione del rendimento.

Implementare un design stateless

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