Supporto per i runtime legacy

I runtime precedenti includono le versioni linguistiche di prima generazione che non sono più gestite dalle comunità open source. Poiché molti clienti di App Engine fanno ancora affidamento su queste versioni linguistiche di prima generazione, Google fornisce supporto a lungo termine per i seguenti runtime precedenti nell'ambiente standard di App Engine:

Google sta trasferendo i runtime precedenti alla fase di ritiro del supporto. Per maggiori dettagli, consulta la pianificazione dell'assistenza.

Il nostro impegno

Il 30 gennaio 2024 è terminato il supporto dei runtime legacy.

Sono state apportate le seguenti modifiche agli ambienti di runtime precedenti:

  • Per quanto possibile, i componenti delle versioni precedenti del runtime sono stati riportati ai relativi stati open source non sottoposti a forking. Abbiamo dovuto limitare e modificare notevolmente 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 nel lungo periodo.

  • Sono stati aggiunti sistemi di compilazione completi che supportano repository di pacchetti, compilazioni di componenti idiomatici e repository di asset.

Aggiornamenti della sicurezza

Quando le community smettono di gestire le versioni delle loro lingue, la tua app potrebbe essere esposta a vulnerabilità per le quali non esiste una correzione disponibile pubblicamente. Pertanto, continuare a eseguire l'app in alcuni runtime di App Engine comporta più rischi rispetto all'upgrade a un runtime con una lingua supportata 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 integrati di App Engine

I runtime Python 2.7, Java 8, Go 1.11 e PHP 5.5 forniscono API e servizi App Engine in bundle come Blobstore, Memcache e Task Queues.

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

La tua app può chiamare le API dei servizi in bundle tramite librerie idiomatiche e accedere alle stesse funzionalità dei runtime legacy. I servizi integrati vengono offerti sui runtime più recenti per offrire maggiore flessibilità e ti consentono di scegliere se eseguire la migrazione ai servizi non integrati o continuare a utilizzare i servizi integrati legacy di App Engine.

Se sono previste ritiri, seguiremo le nostre norme standard sul ritiro e suggeriremo alternative. Non prevediamo che la maggior parte delle app richieda modifiche al codice o ricollocamenti.

Stato attuale di ogni runtime

Python 2.7

Abbiamo lanciato il runtime di Python 2.7 il 27 febbraio 2012. Abbiamo già rimuovere le nostre modifiche e limitazioni da ampie sezioni di questo runtime, ma eseguiremo ulteriori aggiornamenti per normalizzare il processo di compilazione, il percorso della richiesta e la disponibilità dei pacchetti. Queste modifiche al runtime consentono a Google Cloud di supportare il runtime Python 2.7 molto oltre il 1° gennaio 2020, data in cui la community di Python terminerà il supporto ufficiale di Python 2.7.

Le modifiche apportate al runtime di Python 2.7 e quelle apportate nell'annuncio del 2021 autunnale riportano la maggior parte dei servizi App Engine in bundle a Python 3. Questi servizi ti consentono di eseguire più facilmente la migrazione a Python 3 e/o di sostituire i servizi in bundle con servizi Google Cloud equivalenti prima del termine del supporto. Per la migrazione, consulta le seguenti guide:

Java 8

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

Applicheremo i seguenti aggiornamenti a questo runtime:

  • Ripristina il runtime Java allo stato open source.

  • Normalizza il percorso della richiesta.

  • Esegui l'upgrade a Jetty 9.4.

Queste modifiche consentiranno a Google Cloud di supportare il runtime Java 8 per il futuro prevedibile.

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

Abbiamo potuto 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 rompe la compatibilità con le versioni precedenti in modi che ci impediscono di eseguire automaticamente la migrazione delle app al runtime Java 11. Poiché potrebbe essere necessario apportare modifiche significative alle app Java 6, Java 7 e Java 8 durante la migrazione a Java 11, puoi mantenere queste app in esecuzione nel runtime Java 8.

Go 1.11

Abbiamo lanciato il runtime Go 1.11 il 20 marzo 2019 e consigliato di eseguire la migrazione delle app Go 1.6-1.9 al runtime Go 1.11. Il runtime Go 1.11 è lo stato a lungo termine per le app create con Go 1.6 fino a 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 e eseguire l'upgrade a una versione supportata di Go prima del termine del supporto. Per ulteriori informazioni sulla migrazione, consulta la sezione sulla 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 ed eseguito le app in una sandbox personalizzata.

Al momento stiamo ripristinando lo stato open source di questo runtime e modernizzando la sandbox. Applicheremo ulteriori aggiornamenti per normalizzare il percorso della 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 ti consentono di sostituire i servizi App Engine integrati con i servizi Google Cloud ed eseguire la migrazione a PHP 7/8 prima del termine del supporto. Consulta le informazioni su come trasferire le app da PHP 5.5 a PHP 7/8.

Attivazione dei deployment per i runtime legacy che stanno per raggiungere la fine del supporto

In base al criterio del ciclo di vita del runtime di App Engine, non potrai più eseguire il deployment di applicazioni che utilizzano runtime che hanno raggiunto il termine del supporto. Per le date chiave che influiscono sul tuo runtime, consulta il programma di assistenza.

Se la tua organizzazione vuole riattivare i deployment per i runtime precedenti 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 la riattivazione dei deployment è disponibile a livello generale. L'utilizzo continuato delle versioni precedenti del runtime dopo la data di fine del supporto è sperimentale e 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.

Utilizzare un criterio per riattivare i deployment

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

Console

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

    La pagina Criteri dell'organizzazione mostra un elenco dei vincoli dei criteri dell'organizzazione disponibili.

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

  3. Nell'elenco, trova il criterio Esenzione deployment runtime (App Engine). Puoi utilizzare il campo Filtra nella parte superiore dell'elenco.

  4. Fai clic sul nome del criterio. In alternativa, puoi selezionare Modifica norme nel menu contestuale.

  5. Fai clic su Gestisci criteri.

  6. Seleziona Personalizza in Applicabile a.

  7. Seleziona Sostituisci in Applicazione criteri.

  8. Fai clic su Aggiungi regola in Regole.

  9. Seleziona Personalizzato per Valori criterio.

  10. Seleziona Consenti per Tipo di criterio.

  11. In Valore personalizzato, specifica il runtime da applicare nell'organizzazione. I valori supportati sono:

    • python27 per consentire le applicazioni che utilizzano 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 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.

Una volta applicate le modifiche, questo criterio consente il deployment dei runtime di App Engine che hanno raggiunto il ritiro 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 vuoi 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 che utilizzano 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 più runtime dei linguaggi, specifica python27, java8 e php55 insieme. Per impostazione predefinita, non sono consentiti runtime di lingue se non è impostato alcun criterio.