Una panoramica di App Engine

ID regione

REGION_ID è un codice abbreviato assegnato da Google in base all'area geografica selezionata al momento della creazione dell'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici paese e provincia di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.

Scopri di più sugli ID regione.

Un'app App Engine è composta da una singola risorsa dell'applicazione composta da uno o più servizi. Ogni servizio può essere configurato per utilizzare runtime diversi e per operare con impostazioni delle prestazioni diverse. All'interno di ciascun servizio, esegui il deployment delle versions del servizio. Ogni versione viene quindi eseguita all'interno di una o più istanze, a seconda della quantità di traffico configurata per la gestione.

Componenti di un'applicazione

L'app App Engine viene creata nel progetto Google Cloud quando crei una risorsa applicazione. L'applicazione App Engine è un container di primo livello che include le risorse del servizio, della versione e dell'istanza che compongono la tua app. Quando crei l'app App Engine, tutte le risorse vengono create nella regione che hai scelto, incluso il codice dell'app insieme a una raccolta di impostazioni, credenziali e metadati dell'app. Scopri di più sulle "risorse per le applicazioni" ( standard | flessibili) e in quali regioni puoi crearle.

Ogni applicazione App Engine include almeno un servizio, il servizio default, che può contenere molte versioni, a seconda dello stato di fatturazione dell'app. Per ulteriori informazioni, consulta la sezione Limiti di seguito.

Il seguente diagramma illustra la gerarchia di un'app App Engine in esecuzione con più servizi. In questo diagramma, l'app ha due servizi che contengono più versioni e due di queste versioni sono attivamente in esecuzione su più istanze:

Grafico gerarchia di servizi, versioni e istanze di un'app

Altri servizi Google Cloud, ad esempio Datastore, sono condivisi tra la tua app App Engine. Per ulteriori informazioni, consulta "Strutturare i servizi web" ( standard | flessibile).

Servizi

Utilizza i servizi in App Engine per trasformare le tue app di grandi dimensioni in componenti logici in grado di condividere in modo sicuro le funzionalità di App Engine e comunicare tra loro. In genere, i servizi App Engine si comportano come microservizi. Puoi quindi eseguire l'intera app in un unico servizio oppure progettare ed eseguire il deployment di più servizi da eseguire come insieme di microservizi.

Ad esempio, un'app che gestisce le richieste dei clienti potrebbe includere servizi separati che gestiscono attività diverse, ad esempio:

  • Richieste API da dispositivi mobili
  • Richieste interne di tipo amministrativo
  • Elaborazione di backend come le pipeline di fatturazione e l'analisi dei dati

Ogni servizio in App Engine è costituito dal codice sorgente dell'applicazione e dai file di configurazione di App Engine corrispondenti. L'insieme di file di cui esegui il deployment in un servizio rappresenta una singola versione del servizio e, ogni volta che esegui il deployment in quel servizio, crei versioni aggiuntive all'interno dello stesso servizio.

Versioni

Avere più versioni della tua app all'interno di ciascun servizio ti consente di passare rapidamente da una versione all'altra dell'app per rollback, test o altri eventi temporanei. Puoi instradare tutto il traffico a una versione specifica dell'app "eseguendo la migrazione del traffico" ( standard | flessibile) oppure instradandolo a più versioni dell'app "suddividendo il traffico" ( standard | flessibile).

Istanze

Le versioni all'interno dei servizi vengono eseguite su una o più istanze. Per impostazione predefinita, App Engine scala la tua app in base al carico. Le tue app faranno lo scale up del numero di istanze in esecuzione per fornire prestazioni coerenti o fare lo scale down per ridurre al minimo le istanze inattive e ridurre i costi. Per ulteriori informazioni sulle istanze, consulta "Come vengono gestite le istanze" ( standard | flessibile).

Nell'ambiente flessibile di App Engine, le istanze sono supportate da risorse Compute Engine. Alcune delle risorse utilizzate dalle istanze nell'ambiente flessibile di App Engine, come disco, CPU e memoria, vengono conteggiate ai fini delle quote dell'API Compute Engine del progetto. Per ulteriori dettagli su come App Engine utilizza le risorse di Compute Engine, consulta la panoramica dell'ambiente flessibile di App Engine.

Richieste di applicazione

Tutti i servizi della tua app e ciascuna delle versioni al loro interno devono avere un nome univoco. Puoi quindi utilizzare questi nomi univoci per scegliere come target e instradare il traffico a risorse specifiche utilizzando URL, ad esempio:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

Le richieste degli utenti in entrata vengono instradate ai servizi o alle versioni configurati per gestire il traffico. Puoi anche scegliere come target e instradare le richieste a versioni e servizi specifici. Per ulteriori informazioni, consulta la sezione "Comunicazione tra i servizi" ( standard | flessibile).

Logging delle richieste dell'applicazione

Quando l'applicazione gestisce una richiesta, può anche scrivere i propri messaggi di logging in stdout e stderr. Per maggiori dettagli sui log dell'app, consulta "Scrittura dei log delle applicazioni" ( standard | flessibile).

Limiti

Sia l'ambiente flessibile che l'ambiente standard condividono gli stessi limiti per servizi e versioni. Ad esempio, se disponi di versioni standard e versioni flessibili nella stessa app, queste versioni vengono conteggiate ai fini dello stesso limite. Per maggiori dettagli, consulta "Quote e limiti" ( standard | flessibile).