Google Cloud Architecture Framework: ottimizzazione delle prestazioni

Questo documento nel framework Google Cloud Architecture descrive le best practice per ottimizzare le prestazioni dei carichi di lavoro in Google Cloud.

Strategie

Valuta i requisiti di rendimento. Stabilisci la priorità delle tue varie applicazioni e le prestazioni minime di cui hai bisogno.

Utilizza pattern di progettazione scalabili. Migliora scalabilità e prestazioni con scalabilità automatica, opzioni di calcolo e configurazioni dell'archiviazione.

Best practice

  • Utilizzo della scalabilità automatica e dell'elaborazione dei dati.
  • Utilizza GPU e TPU per aumentare le prestazioni.
  • Identifica le app da sintonizzare.

Utilizzo della scalabilità automatica e del trattamento dati

Utilizzo della scalabilità automatica in modo che, man mano che il carico aumenta o diminuisce, i servizi aggiungano o svincoli le risorse per assicurare la corrispondenza.

Scalabilità automatica di Compute Engine

I gruppi di istanze gestite (MIG) consentono di scalare le app stateless in più VM identiche, in modo che il gruppo di risorse Compute Engine venga avviato in base a un modello di istanza. Puoi configurare un criterio di scalabilità automatica per scalare il tuo gruppo in base all'utilizzo della CPU, alla capacità di bilanciamento del carico, alle metriche di Cloud Monitoring, alle pianificazioni e, per i MIG di zona, a un carico di lavoro basato su code, come Pub/Sub.

Scalabilità automatica di Google Kubernetes Engine

Puoi utilizzare la funzionalità di scalabilità automatica dei cluster in Google Kubernetes Engine (GKE) per gestire il pool di nodi del cluster in base alle variazioni della domanda dei tuoi carichi di lavoro. Il gestore della scalabilità automatica dei cluster aumenta o diminuisce automaticamente le dimensioni del pool di nodi in base alle richieste di risorse (anziché all'utilizzo effettivo della risorsa) dei pod in esecuzione sui nodi del pool di nodi.

Scalabilità automatica serverless

Le opzioni di computing serverless includono Cloud Run, App Engine e Cloud Functions, ciascuna delle quali fornisce funzionalità di scalabilità automatica. Utilizza queste opzioni serverless per scalare i tuoi microservizi o le tue funzioni.

Trattamento dati

Dataproc e Dataflow offrono opzioni di scalabilità automatica per scalare le pipeline di dati e l'elaborazione dei dati. Utilizza queste opzioni per consentire alle pipeline di accedere a più risorse di calcolo in base al carico di elaborazione.

Domande di progettazione

  • Quali delle tue applicazioni hanno requisiti di carico o elaborazione variabili per gli utenti?
  • Quali delle tue pipeline di elaborazione dati hanno requisiti relativi ai dati variabili?

Consigli

  • Utilizza i bilanciatori del carico di Google Cloud per fornire un endpoint globale.
  • Utilizza i gruppi di istanze gestite con Compute Engine per la scalabilità automatica.
  • Utilizza il gestore della scalabilità automatica dei cluster in GKE per scalare automaticamente il cluster.
  • Utilizza App Engine per scalare automaticamente la tua applicazione Platform-as-a-Service (PaaS).
  • Utilizza Cloud Run o Cloud Functions per scalare automaticamente la funzione o il microservizio.

Servizi principali

Risorse

Utilizzare GPU e TPU per aumentare le prestazioni

Google Cloud offre opzioni per accelerare le prestazioni dei tuoi carichi di lavoro. Puoi utilizzare queste piattaforme hardware specializzate per aumentare le prestazioni delle tue applicazioni e del tuo trattamento dati.

GPU (Graphics Processing Unit)

Compute Engine fornisce GPU che puoi aggiungere alle tue istanze di macchine virtuali. Puoi utilizzare queste GPU per accelerare carichi di lavoro specifici sulle tue istanze come machine learning ed elaborazione di dati.

Tensor Processing Unit (TPU)

Una TPU è progettata specificamente come processore di matrice da parte di Google per i carichi di lavoro di machine learning. Le TPU sono più adatte per operazioni a matrice massiccia con una grande pipeline, con accesso alla memoria notevolmente inferiore.

Risorse

Identifica le app da ottimizzare

Application Performance Management (APM) include strumenti utili per ridurre latenza e costi, in modo da poter eseguire applicazioni più efficienti. Con Cloud Trace, Cloud Debugger e Cloud Profiler, ottieni insight su come funzionano il codice e i servizi e puoi risolvere i problemi se necessario.

Strumentazione

La latenza gioca un ruolo importante nel determinare l'esperienza degli utenti. Quando il backend della tua applicazione inizia a diventare complesso o inizi ad adottare l'architettura di microservizi, è difficile identificare le latenze tra le comunicazioni tra i servizi o identificare i colli di bottiglia. Gli strumenti di Cloud Trace e OpenTelemetry aiutano a scalare i dati di latenza dai deployment e ad analizzarli rapidamente.

Debug

Cloud Debugger ti aiuta a ispezionare e analizzare il comportamento del tuo codice di produzione in tempo reale senza influire sulle sue prestazioni o rallentarlo.

Profilazione

Un codice dalle prestazioni scadenti aumenta la latenza e il costo di applicazioni e servizi web. Cloud Profiler ti consente di identificare e gestire le prestazioni analizzando continuamente le prestazioni delle funzioni che utilizzano la CPU o la memoria in modo intensivo eseguite in un'applicazione.

Consigli

  • Utilizza Cloud Trace per strumentare le tue applicazioni.
  • Utilizza Cloud Debugger per fornire funzionalità di debug in produzione in tempo reale.
  • Usa Cloud Profiler per analizzare le prestazioni operative delle applicazioni.

Passaggi successivi

Esplora le altre categorie del Framework architettura di Google Cloud.