Scegli un ambiente App Engine

Puoi eseguire le tue applicazioni in App Engine utilizzando l'ambiente flessibile di App Engine o l'ambiente standard di App Engine. Puoi anche scegliere di utilizzare contemporaneamente entrambi gli ambienti per la tua applicazione e consentire ai tuoi servizi di sfruttare i vantaggi individuali di ciascun ambiente.

Ambienti di App Engine

App Engine è adatto ad applicazioni progettate utilizzando un'architettura di microservizi, soprattutto se decidi di utilizzare entrambi gli ambienti. Utilizza le sezioni seguenti per imparare e comprendere quale ambiente soddisfa meglio le esigenze della tua applicazione.

Quando scegliere l'ambiente standard

Le istanze dell'applicazione vengono eseguite in una sandbox utilizzando l'ambiente di runtime dei linguaggi supportati elencati di seguito.

Applicazioni che richiedono una scalabilità rapida.

L'ambiente standard è ottimale per le applicazioni con le seguenti caratteristiche:

  • È destinata alla pubblicazione gratuita o a costi molto contenuti, in cui paghi solo per quello che ti serve e quando ne hai bisogno. Ad esempio, la tua applicazione può scalare fino a 0 istanze in assenza di traffico.
  • Rileva picchi di traffico improvvisi ed estremi che richiedono una scalabilità immediata.

Quando scegliere l'ambiente flessibile

Le istanze dell'applicazione vengono eseguite all'interno di container Docker su macchine virtuali (VM) di Compute Engine.

Applicazioni che ricevono traffico coerente, che presentano fluttuazioni regolari del traffico o soddisfano i parametri per lo scale up e lo scale down gradualmente.

L'ambiente flessibile è ottimale per le applicazioni con le seguenti caratteristiche:

  • Viene eseguito in un container Docker che include un runtime personalizzato o codice sorgente scritto in altri linguaggi di programmazione.
  • Utilizza o dipende da framework che includono codice nativo.
  • Accede alle risorse o ai servizi del tuo progetto Google Cloud che risiedono nella rete Compute Engine.

Confronta le funzionalità di alto livello

La tabella seguente riassume le differenze tra i due ambienti:

Funzionalità Ambiente standard Ambiente flessibile
Tempo di avvio dell'istanza Secondi Minuti
Timeout massimo della richiesta Dipende dal runtime e dal tipo di scalabilità. 60 minuti
Thread in background Sì, con limitazioni
Processi in background No
Debug SSH No
Scalabilità Manuale, Di base, Automatico Manuale, automatica
Scalabilità fino a zero No, almeno 1 istanza
Scrittura su disco locale
  • Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11 e Go 1.12 e versioni successive hanno accesso in lettura e scrittura alla directory /tmp.
  • Python 2.7 e PHP 5.5 non hanno accesso in scrittura al disco.
Sì, temporaneo (disco inizializzato a ogni avvio della VM)
Modifica del runtime No Sì (tramite Dockerfile)
Data/ora del deployment Secondi Minuti
Patch di sicurezza automatiche in loco Sì (esclude il runtime delle immagini container)
Accesso a servizi e API di Google Cloud, come Cloud Storage, Cloud SQL, Memorystore, Google Tasks e altri.
WebSockets No
Java 8, Python 2 e PHP 5 forniscono un'API Sockets proprietaria (beta), ma l'API non è disponibile nei runtime standard più recenti.
Supporta l'installazione di programmi binari di terze parti
  • Sì per Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11 e Go 1.12 e versioni successive.
  • No per Python 2.7 e PHP 5.5.
Località Località per l'ambiente standard Località per l'ambiente flessibile
Prezzi In base alle ore istanza In base all'utilizzo di vCPU, memoria e dischi permanenti

Consulta anche il confronto tra gli ambienti.

Confronta l'ambiente flessibile con Compute Engine

L'ambiente flessibile di App Engine presenta le seguenti differenze rispetto a Compute Engine:

  • Le istanze VM dell'ambiente flessibile vengono riavviate su base settimanale. Durante i riavvii, i servizi di gestione di Google applicano gli aggiornamenti della sicurezza e del sistema operativo necessari.

  • Hai sempre accesso root alle istanze VM di Compute Engine. Per impostazione predefinita, l'accesso SSH alle istanze VM nell'ambiente flessibile è disabilitato. Se vuoi, puoi abilitare l'accesso root alle istanze VM della tua app.

  • I deployment del codice possono richiedere più tempo poiché le immagini container vengono create utilizzando il servizio Cloud Build.

  • La regione geografica di un'istanza VM in ambiente flessibile è determinata dalla località specificata per l'applicazione App Engine del tuo progetto Google Cloud. I servizi di gestione di Google assicurano che le istanze VM siano in co-location per prestazioni ottimali.

Eseguire la migrazione dall'ambiente standard all'ambiente flessibile

Se hai un'applicazione nell'ambiente standard, potresti voler spostare alcuni servizi nell'ambiente flessibile. Come guida, consulta i suggerimenti per il confronto tra gli ambienti.

Per eseguire la migrazione di servizi specifici per Python, Java, Go e PHP, consulta Eseguire la migrazione dei servizi dall'ambiente standard all'ambiente flessibile.

Provalo

Se non hai mai utilizzato Google Cloud, crea un account per valutare le prestazioni dell'ambiente standard Ruby in scenari reali. I nuovi clienti ricevono anche 300 $ di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.

Prova l'ambiente standard Ruby gratuitamente