Supporto per runtime legacy

I runtime legacy includono versioni in lingue che non sono più gestite dalle community open source. Poiché molti clienti di App Engine dipendono ancora da queste versioni dei linguaggi, Google offre supporto a lungo termine per i seguenti runtime legacy nell'ambiente standard di App Engine:

Google sta eseguendo la transizione dei runtime legacy alla fase di fine assistenza. Per maggiori dettagli, vedi la pianificazione dell'assistenza.

Il nostro impegno

I runtime legacy hanno raggiunto la fine del supporto il 30 gennaio 2024.

Sono state apportate le seguenti modifiche ai runtime legacy:

  • Per quanto possibile, i componenti dei runtime legacy sono stati restituiti ai loro stati open source senza fork. Abbiamo dovuto limitare e modificare drasticamente alcuni runtime per eseguire in sicurezza le tue app nei nostri data center. Apportando modifiche al modo in cui gestiamo i runtime nei nostri data center, possiamo fornire un ambiente sicuro e scalabile per questi runtime a lungo termine.

  • Sono stati aggiunti sistemi di build completi che supportano repository di pacchetti, build di componenti idiomatiche e repository di asset.

Aggiornamenti della sicurezza

Man mano che le community smettono di gestire versioni dei propri linguaggi, la tua app potrebbe essere esposta a vulnerabilità per le quali non esistono correzioni pubblicamente disponibili. Pertanto, continuare a eseguire l'app in alcuni runtime di App Engine comporta un rischio maggiore rispetto all'upgrade a un runtime con un linguaggio supportato dalla community.

Non possiamo impegnarci a correggere ogni API utilizzata dalla tua app. Potresti scoprire che le correzioni sono disponibili solo nelle librerie per le versioni più recenti del linguaggio.

Supporto per i servizi in bundle di App Engine

I runtime Python 2.7, Java 8, Go 1.11 e PHP 5.5 forniscono servizi App Engine e API in bundle come Blobstore, Memcache e code di attività.

Puoi continuare ad accedere a molti di questi servizi e API in bundle in determinati runtime di seconda generazione:

L'app può chiamare le API dei servizi in bundle tramite librerie idiomatiche e accedere alle stesse funzionalità dei runtime legacy. I servizi in bundle vengono offerti nei runtime più recenti per offrire maggiore flessibilità, dandoti la possibilità di eseguire la migrazione ai servizi non in bundle o di continuare a utilizzare i servizi in bundle legacy di App Engine.

Se sono in corso dei ritiri, seguiremo le nostre norme sul ritiro standard e suggeriremo delle alternative. Non ci aspettiamo che la maggior parte delle app richieda modifiche del codice o nuovi deployment.

Stato attuale di ogni runtime

Python 2.7

Abbiamo lanciato il runtime Python 2.7 il 27 febbraio 2012. Anche se abbiamo già rimosso le modifiche e le limitazioni da ampie sezioni di questo runtime, apporteremo ulteriori aggiornamenti per normalizzare il processo di compilazione, il percorso di richiesta e la disponibilità del pacchetto. Queste modifiche al runtime consentono a Google Cloud di supportare il runtime Python 2.7 anche dopo il 1° gennaio 2020, data in cui la community Python cesserà il supporto ufficiale di Python 2.7.

Le modifiche apportate al runtime Python 2.7 e quelle nell'annuncio dell'autunno 2021 riportano in Python 3 la maggior parte dei servizi App Engine in bundle. Questi servizi consentono di eseguire più facilmente la migrazione a Python 3 e/o di sostituire i servizi in bundle con servizi Google Cloud equivalenti prima della fine del supporto. Fai riferimento alle seguenti guide per la migrazione:

Java 8

Abbiamo lanciato il runtime Java 8 il 28 giugno 2017. Questo runtime è stato leggermente modificato per App Engine e forniva un ampio supporto per l'importazione di pacchetti Java.

Apporteremo i seguenti aggiornamenti a questo runtime:

  • Ripristina lo stato open source del runtime Java.

  • Normalizza il percorso di richiesta.

  • Esegui l'upgrade a Jetty 9.4.

Queste modifiche consentiranno a Google Cloud di supportare il runtime Java 8 nel prossimo futuro.

Le modifiche apportate al runtime Java 8 consentono di sostituire i servizi App Engine in bundle con i servizi Google Cloud ed eseguire la migrazione a Java 17/11 prima della fine del supporto. Leggi le informazioni sulla migrazione da Java 8 a Java 11 e versioni successive.

Siamo stati in grado di eseguire automaticamente la migrazione delle app Java 6 e Java 7 al runtime Java 8 senza richiedere modifiche al codice dell'app. Tuttavia, Java 11 interrompe la compatibilità con le versioni precedenti in modi che rendono impossibile la migrazione automatica delle app al runtime Java 11. Poiché potresti dover apportare modifiche significative alle app Java 6, Java 7 e Java 8 durante la migrazione a Java 11, puoi mantenerle in esecuzione nel runtime Java 8.

Go 1.11

Abbiamo lanciato il runtime Go 1.11 il 20 marzo 2019 e abbiamo consigliato per le app Go 1.6-1.9 di migrare al runtime Go 1.11. Il runtime Go 1.11 è lo stato a lungo termine per le app create con Go 1.6 e Go 1.11.

Una volta che le app sono in esecuzione su Go 1.11, puoi iniziare a sostituire le API e i servizi App Engine in bundle con i servizi Google Cloud ed eseguire l'upgrade a una versione supportata di Go prima della fine del supporto. Per ulteriori informazioni sulla migrazione, vedi Migrazione dell'app App Engine a Go 1.12.

PHP 5.5

Abbiamo lanciato il runtime PHP 5.5 il 16 maggio 2013. Questo runtime ha rimosso molte funzionalità dalla versione open source e ha eseguito app all'interno di una sandbox personalizzata.

Al momento stiamo ripristinando lo stato open source di questo runtime e stiamo modernizzando la sandbox. Apporteremo ulteriori aggiornamenti per normalizzare il percorso di richiesta e ottimizzare il rendimento. Queste modifiche ci consentono di supportare il runtime PHP 5.5 per il prossimo futuro.

Le modifiche apportate al runtime PHP 5.5 consentono di sostituire i servizi App Engine in bundle con i servizi Google Cloud ed eseguire la migrazione a PHP 7/8 prima della fine del supporto. Leggi informazioni sullo spostamento di app da PHP 5.5 a PHP 7/8.

Abilitazione dei deployment per i runtime legacy che stanno per terminare il supporto

In base al criterio del ciclo di vita di App Engine, non potrai più eseguire il deployment di applicazioni utilizzando runtime che hanno raggiunto la fine del supporto. Per le date principali che influiscono sul runtime, consulta la pianificazione dell'assistenza.

Se la tua organizzazione vuole riattivare i deployment per i runtime legacy che hanno raggiunto la fine del periodo di assistenza, puoi definire un nuovo criterio dell'organizzazione con constraints/appengine.runtimeDeploymentExemption. Questo criterio dell'organizzazione per riattivare i deployment è in disponibilità generale. L'utilizzo continuativo dei runtime legacy dopo la data di fine dell'assistenza è sperimentale ed è soggetto ai "Termini delle offerte pre-GA".

Per creare o modificare i criteri dell'organizzazione, il tuo account deve avere il ruolo roles/orgpolicy.policyAdmin.

Usa un criterio per riattivare i deployment

Per creare un criterio che consenta i deployment, utilizza Google Cloud CLI o la console Google Cloud che hanno raggiunto la fine del supporto all'interno di una determinata organizzazione per l'ambiente specificato.

Console

  1. Vai alla pagina Criteri dell'organizzazione nella console Google Cloud.
    Vai a Criteri dell'organizzazione

    Nella pagina Criteri dell'organizzazione viene visualizzato un elenco dei vincoli dei criteri dell'organizzazione disponibili.

  2. Seleziona il progetto, la cartella o l'organizzazione a cui vuoi aggiungere il nuovo criterio.

  3. Individua il criterio Runtime Deployment Exemption (App Engine) nell'elenco. Puoi utilizzare il campo Filtro in cima all'elenco.

  4. Fai clic sul nome della norma. In alternativa, puoi selezionare Modifica criterio dal menu contestuale.

  5. Fai clic su Gestisci criterio.

  6. Seleziona Personalizza in Si applica a.

  7. Seleziona Sostituisci in Applicazione delle norme.

  8. Fai clic su Aggiungi regola in Regole.

  9. Seleziona Personalizzato per Valori delle norme.

  10. Seleziona Consenti per Tipo di criterio.

  11. In Valore personalizzato, specifica il runtime che vuoi applicare nell'organizzazione. I valori supportati includono:

    • python27 per consentire le applicazioni con Python 2.7
    • java8 per consentire le applicazioni che utilizzano Java 8
    • php55 per consentire le applicazioni che utilizzano PHP 5.5
    • Per consentire in modo esplicito più runtime, specifica python27, java8 e php55 insieme. Per impostazione predefinita, non sono consentiti runtime se non è impostato alcun criterio.
  12. Fai clic su Fine.

  13. Fai clic su Salva.

Dopo l'applicazione delle modifiche, questo criterio consente il deployment dei runtime App Engine che hanno raggiunto la fine del supporto nell'ambiente specificato.

gcloud

Esegui questo comando:

gcloud resource-manager org-policies \
allow appengine.runtimeDeploymentExemption \
--organization=ORGANIZATION_NUMBER RUNTIME_ID

Sostituisci:

  • ORGANIZATION_NUMBER con il numero dell'organizzazione a cui desideri applicare il criterio.
  • RUNTIME_ID con il runtime consentito per il deployment.
  • RUNTIME_ID con uno dei seguenti ID di runtime:

    • python27 per consentire le applicazioni con Python 2.7
    • java8 per consentire le applicazioni che utilizzano Java 8
    • php55 per consentire le applicazioni che utilizzano PHP 5.5
    • Per consentire esplicitamente i runtime di più linguaggi, specifica python27, java8 e php55 insieme. Per impostazione predefinita, non sono consentiti runtime dei linguaggi se non è impostato alcun criterio.