Panoramica del bilanciatore del carico delle applicazioni

Il bilanciatore del carico delle applicazioni è un bilanciatore del carico di livello 7 basato su proxy che ti consente di eseguire e scalare i servizi. Il bilanciatore del carico delle applicazioni distribuisce il traffico HTTP e HTTPS ai backend ospitati su una serie di piattaforme, come Compute Engine, Google Kubernetes Engine (GKE), Cloud Storage e Cloud Run, nonché ai backend esterni connessi a internet o tramite connettività ibrida. Google Cloud

I bilanciatori del carico delle applicazioni sono disponibili nelle seguenti modalità di deployment:

  • Bilanciatore del carico delle applicazioni esterno: bilancia il carico del traffico proveniente dai client su internet. Per i dettagli dell'architettura, consulta Architettura del bilanciatore del carico delle applicazioni esterno.

    Modalità di deployment Livello di servizio di rete Schema di bilanciamento del carico Indirizzo IP Porte frontend
    Esterno globale Livello Premium EXTERNAL_MANAGED IPv4
    IPv6

    Può fare riferimento a una sola porta compresa tra 1 e 65535.

    Esterno regionale Livello Premium o Standard EXTERNAL_MANAGED IPv4
    Classico

    Globale nel livello Premium

    Regionale nel livello Standard

    EXTERNAL* IPv4
    IPv6 (richiede il livello Premium)
    * È possibile collegare EXTERNAL_MANAGED servizi di backend a EXTERNAL regole di forwarding. Tuttavia, i servizi di backend EXTERNAL non possono essere collegati alle regole di forwarding EXTERNAL_MANAGED. Per usufruire delle nuove funzionalità disponibili solo con il bilanciatore del carico delle applicazioni esterno globale, ti consigliamo di eseguire la migrazione delle risorse EXTERNAL esistenti a EXTERNAL_MANAGED utilizzando la procedura di migrazione descritta in Eseguire la migrazione delle risorse dal bilanciatore del carico delle applicazioni esterno classico a quello globale.
  • Bilanciatore del carico delle applicazioni interno: bilancia il carico del traffico all'interno della rete VPC o delle reti connesse alla rete VPC. Per i dettagli dell'architettura, consulta Architettura del bilanciatore del carico delle applicazioni interno.

    Modalità di deployment Livello di servizio di rete Schema di bilanciamento del carico Indirizzo IP Porte frontend
    Interno a livello di regione Livello Premium INTERNAL_MANAGED IPv4

    Può fare riferimento a una sola porta compresa tra 1 e 65535.

    Interno tra regioni*

    Livello Premium INTERNAL_MANAGED IPv4

    * Il bilanciatore del carico utilizza risorse globali e può essere implementato in una o più Google Cloud regioni a tua scelta.

Lo schema di bilanciamento del carico è un attributo della regola di forwarding e del servizio di backend di un bilanciatore del carico e indica se quest'ultimo può essere utilizzato per il traffico interno o esterno. Il termine _MANAGED nello schema di bilanciamento del carico indica che il bilanciatore del carico è implementato come un servizio gestito su Google Front End (GFE) o sul proxy Envoy open source. In uno schema di bilanciamento del carico di tipo _MANAGED, le richieste vengono indirizzate a GFE o al proxy Envoy.

Application Load Balancer esterno

I bilanciatori del carico delle applicazioni esterni sono implementati utilizzando Google Front End (GFE) o proxy gestiti. I bilanciatori del carico delle applicazioni esterni globali e classici utilizzano GFE che sono distribuiti a livello globale e operano insieme utilizzando la rete globale e il piano di controllo di Google. I GFE offrono il bilanciamento del carico multiregionale nel livello Premium, indirizzando il traffico al backend integro più vicino con capacità e terminando il traffico HTTP(S) il più vicino possibile agli utenti. I bilanciatori del carico delle applicazioni esterni globali e regionali utilizzano il software proxy Envoy open source per abilitare funzionalità avanzate di gestione del traffico.

Questi bilanciatori del carico possono essere implementati in una delle seguenti modalità: globale, regionale o classica.

I bilanciatori del carico delle applicazioni esterni supportano le seguenti funzionalità:

  • Gestione avanzata del traffico, come mirroring del traffico, suddivisione del traffico in base al peso e trasformazioni delle intestazioni basate su richieste/risposte. Per maggiori dettagli, vedi Panoramica della gestione del traffico.
  • Bilancia il traffico verso i backend ospitati su una serie di Google Cloud piattaforme come Compute Engine, Google Kubernetes Engine (GKE), Cloud Run e altro ancora. Il supporto del backend dipende dalla modalità di deployment del bilanciatore del carico. Per i dettagli, consulta la panoramica del bilanciatore del carico delle applicazioni esterno.
  • Risposte memorizzate nella cache con Cloud CDN.
  • Protezione da attacchi DDoS o altri attacchi web utilizzando Google Cloud Armor.
  • Bilanciamento del carico su GKE utilizzando Ingress o Gateway (completamente orchestrato) o NEG autonomi.
  • Organizzazione dei bilanciatori del carico delle applicazioni esterni regionali nelle applicazioni App Hub per comprendere le interazioni del bilanciatore del carico delle applicazioni esterno regionale e supportare le funzioni aziendali.

Il seguente diagramma mostra un'architettura di esempio del bilanciatore del carico delle applicazioni esterno.

Architettura del bilanciatore del carico delle applicazioni esterno.
Architettura del bilanciatore del carico delle applicazioni esterno.

Per una panoramica completa, consulta la panoramica dell'architettura per i bilanciatori del carico delle applicazioni esterni.

Bilanciatore del carico delle applicazioni interno

I bilanciatori del carico delle applicazioni interni sono bilanciatori del carico di livello 7 regionali basati su proxy Envoy che ti consentono di eseguire e scalare il traffico delle applicazioni HTTP dietro un indirizzo IP interno. I bilanciatori del carico delle applicazioni interni supportano i backend in una regione, ma possono essere configurati per essere accessibili a livello globale dai client di qualsiasi regioneGoogle Cloud .

Il bilanciatore del carico distribuisce il traffico ai backend ospitati su Google Cloud, on-premise o in altri ambienti cloud. I bilanciatori del carico delle applicazioni interni supportano anche le seguenti funzionalità:

  • Norme locali. All'interno di un gruppo di istanza di backend o di un gruppo di endpoint di rete, puoi configurare la modalità di distribuzione delle richieste alle istanze o agli endpoint membri. Per maggiori dettagli, vedi Gestione del traffico.
  • Accesso globale. Quando l'accesso globale è abilitato, i client di qualsiasi regione possono accedere al bilanciatore del carico. Per maggiori dettagli, vedi Attivare l'accesso globale.
  • Accesso da reti connesse. Puoi rendere il bilanciatore del carico accessibile ai client di reti diverse dalla propria rete VPC (Virtual Private Cloud). Google CloudLe altre reti devono essere connesse alla rete VPC del bilanciatore del carico utilizzando il peering di rete VPC, Cloud VPN o Cloud Interconnect. Per maggiori dettagli, vedi Accedere alle reti connesse.
  • Compatibilità con GKE utilizzando Ingress (completamente orchestrato). Per maggiori dettagli, vedi Configurare Ingress per i bilanciatori del carico delle applicazioni interni.
  • Organizzazione dei bilanciatori del carico delle applicazioni interni regionali nelle applicazioni App Hub per comprendere le interazioni del bilanciatore del carico delle applicazioni interno regionale e supportare le funzioni aziendali.
Architettura del bilanciatore del carico delle applicazioni interno.
Architettura del bilanciatore del carico delle applicazioni interno.

Per una panoramica completa, consulta la panoramica dell'architettura per i bilanciatori del carico delle applicazioni interni.

Casi d'uso

Le seguenti sezioni descrivono alcuni casi d'uso comuni per i bilanciatori del carico delle applicazioni.

Servizi web a tre livelli

Puoi eseguire il deployment di una combinazione di bilanciatori del carico delle applicazioni e bilanciatori del carico di rete per supportare i servizi web tradizionali a tre livelli. L'esempio seguente mostra come puoi eseguire il deployment di ogni livello, a seconda del tipo di traffico:

  • Livello web. Il frontend dell'applicazione viene gestito da un bilanciatore del carico delle applicazioni esterno con backend di gruppi di istanze. Il traffico entra da internet e viene inviato tramite proxy dal bilanciatore del carico a un insieme di backend del gruppo di istanze in varie regioni. Questi backend inviano traffico HTTP(S) a un insieme di bilanciatori del carico delle applicazioni interni.
  • Livello di applicazioni. Il middleware dell'applicazione viene sottoposto a deployment e scalato utilizzando un bilanciatore del carico delle applicazioni interno e backend di gruppi di istanze. I bilanciatori del carico distribuiscono il traffico ai gruppi di istanze middleware. Questi gruppi di istanze middleware inviano quindi il traffico ai bilanciatori del carico di rete passthrough interni.
  • Livello del database. I bilanciatori del carico di rete fungono da frontend per il livello di database. distribuiscono il traffico ai backend di archiviazione dei dati in varie regioni.
Routing basato sul livello 7 in un'applicazione web a tre livelli.
Routing basato sul livello 7 in un'applicazione web a tre livelli.

Accesso globale per i bilanciatori del carico delle applicazioni interni regionali

Se abiliti l'accesso globale per il tuo bilanciatore del carico delle applicazioni interno regionale, le tue VM client del livello web possono trovarsi in un'altra regione.

Questo esempio di applicazione a più livelli mostra quanto segue:

  • Un livello web disponibile a livello globale e rivolto a internet che bilancia il carico del traffico utilizzando un bilanciatore del carico delle applicazioni esterno.
  • Un livello di database con bilanciamento del carico del backend interno nella regione us-east1 a cui accede il livello web globale.
  • Una VM client che fa parte del livello web nella regione europe-west1 che accede al livello di database con bilanciamento del carico interno che si trova in us-east1.
App web a tre livelli con un bilanciatore del carico delle applicazioni esterno, accesso globale e un
         bilanciatore del carico delle applicazioni interno.
App web a tre livelli con un bilanciatore del carico delle applicazioni esterno, accesso globale e un bilanciatore del carico delle applicazioni interno (fai clic per ingrandire).

Carichi di lavoro con conformità giurisdizionale

Alcuni workload con requisiti normativi o di conformità richiedono che le configurazioni di rete e la terminazione del traffico si trovino in una regione specifica. Per questi carichi di lavoro, un bilanciatore del carico delle applicazioni esterno regionale è spesso l'opzione preferita per fornire i controlli giurisdizionali richiesti.

Gestione avanzata del traffico

I bilanciatori del carico delle applicazioni supportano funzionalità avanzate di gestione del traffico che ti consentono di controllare in modo granulare la modalità di gestione del traffico. Queste funzionalità includono:

  • Puoi aggiornare la modalità di gestione del traffico senza dover modificare il codice dell'applicazione.
  • Puoi instradare il traffico in modo intelligente in base ai parametri HTTP(S), come host, percorso, intestazioni e altri parametri della richiesta. Ad esempio, puoi utilizzare i bucket Cloud Storage per gestire tutti i contenuti video statici e puoi utilizzare i gruppi di istanze o i NEG per gestire tutte le altre richieste.
  • Puoi mitigare i rischi durante il deployment di una nuova versione della tua applicazione utilizzando la suddivisione del traffico basata sul peso. Ad esempio, puoi inviare il 95% del traffico alla versione precedente del tuo servizio e il 5% alla nuova versione del tuo servizio. Dopo aver verificato che la nuova versione funziona come previsto, puoi spostare gradualmente le percentuali fino a quando il 100% del traffico raggiunge la nuova versione del servizio. La suddivisione del traffico viene in genere utilizzata per il deployment di nuove versioni, i test A/B, la migrazione dei servizi, l'ammodernamento dei servizi legacy e processi simili.

Di seguito è riportato un esempio di routing basato sul percorso implementato utilizzando un bilanciatore del carico delle applicazioni interno. Ogni percorso viene gestito da un backend diverso.

Routing basato sul percorso con i bilanciatori del carico delle applicazioni interni.
Routing basato su percorso con bilanciatori del carico delle applicazioni interni.

Per maggiori dettagli, consulta le seguenti risorse:

Estensibilità con Service Extensions

L'integrazione con le estensioni di servizio ti consente di inserire una logica personalizzata nel percorso di bilanciamento del carico dei bilanciatori del carico delle applicazioni supportati.

Per ulteriori informazioni, consulta la panoramica delle estensioni di servizio.

Migrazione dei servizi legacy a Google Cloud

La migrazione di un servizio esistente a Google Cloud ti consente di liberare capacità on-premise e ridurre i costi e l'onere di manutenzione di un'infrastruttura on-premise. Puoi configurare temporaneamente un deployment ibrido che ti consente di instradare il traffico sia al tuo servizio on-premise attuale sia a un endpoint di servizio Google Cloud corrispondente.

Il seguente diagramma mostra questa configurazione con un bilanciatore del carico delle applicazioni interno. Se utilizzi un bilanciatore del carico interno, puoi configurare il bilanciatore del carico Google Cloud per utilizzare la suddivisione del traffico basata sul peso per dividere il traffico tra i due servizi. La suddivisione del traffico ti consente di iniziare inviando lo 0% del traffico al servizio Google Cloud e il 100% al servizio on-premise. Puoi quindi aumentare gradualmente la percentuale di traffico inviato al servizio Google Cloud. Alla fine, invii il 100% del traffico al servizio Google Cloude puoi ritirare il servizio on-premise.

Esegui la migrazione dei servizi legacy a Google Cloud.
Esegui la migrazione dei servizi legacy a Google Cloud.

Bilanciamento del carico per le applicazioni GKE

Esistono tre modi per eseguire il deployment dei bilanciatori del carico delle applicazioni per i cluster GKE:

Bilanciamento del carico per Cloud Run, Cloud Run Functions e applicazioni App Engine

Puoi utilizzare un bilanciatore del carico delle applicazioni come frontend per le tue Google Cloud applicazioni serverless. In questo modo puoi configurare le tue applicazioni serverless per gestire le richieste da un indirizzo IP dedicato che non viene condiviso con altri servizi.

Per configurare questa impostazione, utilizza un NEG serverless come backend del bilanciatore del carico. I seguenti diagrammi mostrano come un'applicazione serverless è integrata con un bilanciatore del carico delle applicazioni.

Esterno globale

Questo diagramma mostra come un NEG serverless si inserisce in un bilanciatore del carico delle applicazioni esterno globale architettura.

Architettura del bilanciatore del carico delle applicazioni esterno globale per le app serverless.
Architettura del bilanciatore del carico delle applicazioni esterno globale per le app serverless.

Esterno regionale

Questo diagramma mostra come una NEG serverless si inserisce in un bilanciatore del carico delle applicazioni esterno regionale. Questo bilanciatore del carico supporta solo i backend Cloud Run.

Architettura del bilanciatore del carico delle applicazioni esterno regionale per le app serverless.
Architettura del bilanciatore del carico delle applicazioni esterno regionale per app serverless.

Interno a livello di regione

Questo diagramma mostra come un NEG serverless si inserisce nel modello di bilanciatore del carico delle applicazioni interno regionale. Questo bilanciatore del carico supporta solo i backend Cloud Run.

Architettura del bilanciatore del carico delle applicazioni interno regionale per app serverless.
Architettura del bilanciatore del carico delle applicazioni interno regionale per app serverless.

Interno tra regioni

Questo diagramma mostra come un NEG serverless si inserisce nel modello di bilanciatore del carico delle applicazioni interno tra regioni. Questo bilanciatore del carico supporta solo i backend Cloud Run.

Architettura del bilanciatore del carico delle applicazioni interno tra regioni per app serverless.
Architettura del bilanciatore del carico delle applicazioni interno tra regioni per app serverless (fai clic per ingrandire).

Documentazione correlata:

Bilanciamento del carico verso backend esterni a Google Cloud

I bilanciatori del carico delle applicazioni supportano il bilanciamento del carico del traffico verso endpoint che si estendono oltre Google Cloud, ad esempio data center on-premise e altri ambienti cloud. I backend esterni sono in genere accessibili in uno dei seguenti modi:

  • Accessibile tramite internet pubblico. Per questi endpoint, utilizzi un NEG di internet come backend del bilanciatore del carico. Il NEG internet è configurato per puntare a un singolo endpoint FQDN:porta o IP:porta sul backend esterno. I NEG di internet possono essere globali o regionali.

    Il seguente diagramma mostra come connettersi a backend esterni accessibili tramite internet pubblico utilizzando un NEG internet globale.

    Bilanciatore del carico delle applicazioni esterno globale con un backend esterno.
    Bilanciatore del carico delle applicazioni esterno globale con un backend esterno.

    Per maggiori dettagli, consulta la panoramica dei NEG di internet.

  • Accessibile tramite connettività ibrida (Cloud Interconnect o Cloud VPN). Per questi endpoint, utilizzi un NEG ibrido come backend del bilanciatore del carico. Il NEG ibrido è configurato in modo da puntare agli endpoint IP:Porta sul backend esterno.

    I seguenti diagrammi mostrano come connettersi ai backend esterni accessibili utilizzando Cloud Interconnect o Cloud VPN.

    Esterno

    Connettività ibrida con i bilanciatori del carico delle applicazioni esterni globali.
    Connettività ibrida con bilanciatori del carico delle applicazioni esterni globali.

    Interno

    Connettività ibrida con i bilanciatori del carico delle applicazioni interni.
    Connettività ibrida con bilanciatori del carico delle applicazioni interni.

    Per maggiori dettagli, vedi Panoramica dei NEG ibridi.

Integrazione con Private Service Connect

Private Service Connect consente il consumo privato di servizi in reti VPC appartenenti a gruppi, team, progetti o organizzazioni diversi. Puoi utilizzare Private Service Connect per accedere ad API e servizi Google o a servizi gestiti in un'altra rete VPC.

Puoi utilizzare un bilanciatore del carico delle applicazioni esterno globale per accedere ai servizi pubblicati utilizzando Private Service Connect. Per saperne di più, consulta Informazioni sui backend Private Service Connect.

Puoi utilizzare un bilanciatore del carico delle applicazioni interno per inviare richieste alle API e ai servizi Google regionali supportati. Per saperne di più, vedi Accedere alle API di Google tramite i backend.

Alta disponibilità e failover tra regioni

Il failover tra regioni è disponibile solo con i bilanciatori del carico delle applicazioni esterni globali, i bilanciatori del carico delle applicazioni classici e i bilanciatori del carico delle applicazioni interni tra regioni. Questi bilanciatori del carico ti consentono di migliorare la disponibilità del servizio quando crei servizi di backend globali con backend in più regioni. Se i backend in una determinata regione non sono attivi, il traffico esegue il failover in un'altra regione in modo controllato.

Per saperne di più su come funziona il failover, consulta i seguenti argomenti: