Dukungan untuk runtime lama

Runtime lama mencakup versi bahasa yang tidak lagi dikelola oleh komunitas open source. Karena banyak pelanggan App Engine yang masih bergantung pada versi bahasa ini, Google telah memberikan dukungan jangka panjang untuk runtime lama berikut di lingkungan standar App Engine:

Google mentransisikan runtime lama ke fase akhir dukungan. Lihat jadwal dukungan untuk mengetahui detailnya.

Komitmen kami

Runtime lama telah mencapai akhir dukungan pada 30 Januari 2024.

Perubahan berikut telah dilakukan pada runtime lama:

  • Sebisa mungkin, komponen runtime lama telah ditampilkan ke status open source yang tidak bercabang. Kami harus membatasi dan mengubah beberapa runtime secara ketat untuk menjalankan aplikasi Anda dengan aman di pusat data kami. Dengan melakukan perubahan pada cara kami mengoperasikan runtime di pusat data, kami dapat memberikan lingkungan yang aman dan skalabel untuk runtime ini dalam jangka panjang.

  • Menambahkan sistem build lengkap yang mendukung repositori paket, build komponen idiomatis, dan repositori aset.

Update keamanan

Saat komunitas berhenti mempertahankan versi bahasa mereka, aplikasi Anda dapat rawan terhadap kerentanan yang tidak diperbaiki secara publik. Oleh karena itu, terus menjalankan aplikasi di beberapa runtime App Engine akan melibatkan lebih banyak risiko daripada mengupgrade ke runtime yang memiliki bahasa yang didukung komunitas.

Kami tidak dapat berkomitmen untuk memperbaiki setiap API yang digunakan aplikasi Anda. Anda mungkin menemukan bahwa perbaikan hanya tersedia di library untuk versi bahasa yang lebih baru.

Dukungan untuk layanan paket App Engine

Runtime Python 2.7, Java 8, Go 1.11, dan PHP 5.5 menyediakan paket layanan dan API App Engine, seperti Blobstore, Memcache, dan Task Queues.

Anda dapat terus mengakses banyak layanan dan API yang dipaketkan ini di runtime generasi kedua tertentu:

Aplikasi Anda dapat memanggil API layanan yang dipaketkan melalui library idiomatis bahasa, dan mengakses fungsi yang sama seperti pada runtime lama. Layanan paket ditawarkan pada runtime yang lebih baru untuk memberikan lebih banyak fleksibilitas, yang memberi Anda pilihan untuk bermigrasi ke layanan yang tidak dipaketkan, atau terus menggunakan App Engine paket layanan lama.

Jika penghentian penggunaan ada dalam pipeline, kami akan mengikuti kebijakan penghentian layanan standar kami dan menyarankan alternatif. Kami memperkirakan hanya sebagian kecil aplikasi yang memerlukan perubahan atau deployment ulang kode.

Status setiap runtime saat ini

Python 2.7

Kami meluncurkan runtime Python 2.7 pada 27 Februari 2012. Meskipun telah menghapus modifikasi dan pembatasan dari sebagian besar runtime ini, kami akan melakukan update lebih lanjut untuk menormalisasi proses build, jalur permintaan, dan ketersediaan paket. Perubahan pada runtime ini memungkinkan Google Cloud untuk mendukung runtime Python 2.7 setelah 1 Januari 2020 berakhir, yaitu saat komunitas Python akan mengakhiri dukungan resminya untuk Python 2.7.

Perubahan yang kami lakukan pada runtime Python 2.7 dan perubahan yang dibuat dalam Pengumuman Musim Gugur 2021 akan menghadirkan kembali sebagian besar layanan App Engine yang dipaketkan ke Python 3. Layanan ini memudahkan Anda bermigrasi ke Python 3 dan/atau mengganti layanan yang dipaketkan dengan layanan Google Cloud yang setara sebelum dukungan berakhir. Lihat panduan berikut untuk migrasi:

Java 8

Kami meluncurkan runtime Java 8 pada 28 Juni 2017. Runtime ini sedikit dimodifikasi untuk App Engine dan memberikan dukungan yang luas untuk mengimpor paket Java.

Kami akan melakukan perubahan berikut pada runtime ini:

  • Mengembalikan runtime Java ke status open source.

  • Menormalisasi jalur permintaan.

  • Mengupgrade ke Jetty 9.4.

Dengan perubahan ini, Google Cloud dapat mendukung runtime Java 8 di masa mendatang.

Perubahan yang kami lakukan pada runtime Java 8 memungkinkan Anda mengganti layanan App Engine yang dipaketkan dengan layanan Google Cloud dan bermigrasi ke Java 11/17 sebelum masa akhir dukungan. Lihat informasi tentang memigrasikan dari Java 8 ke Java 11+.

Kami dapat otomatis memigrasikan aplikasi Java 6 dan Java 7 ke runtime Java 8 tanpa memerlukan perubahan pada kode aplikasi. Namun, Java 11 merusak kompatibilitas mundur dengan cara yang tidak memungkinkan kami memigrasikan aplikasi secara otomatis ke runtime Java 11. Karena Anda mungkin perlu membuat perubahan signifikan pada aplikasi Java 6, Java 7, dan Java 8 saat bermigrasi ke Java 11, Anda dapat mempertahankan aplikasi tersebut tetap berjalan di runtime Java 8.

Go 1.11

Kami meluncurkan runtime Go 1.11 pada 20 Maret 2019 dan merekomendasikan aplikasi Go 1.6-1.9 yang dimigrasikan ke runtime Go 1.11. Runtime Go 1.11 adalah status jangka panjang untuk aplikasi yang di-build dengan Go 1.6 hingga Go 1.11.

Setelah aplikasi Anda berjalan di Go 1.11, Anda dapat mulai mengganti layanan dan API App Engine yang dipaketkan ke layanan Google Cloud dan mengupgrade ke versi Go yang didukung sebelum masa akhir dukungan. Anda dapat menemukan informasi selengkapnya tentang migrasi, lihat memigrasikan aplikasi App Engine ke Go 1.12.

PHP 5.5

Kami meluncurkan runtime PHP 5.5 pada 16 Mei 2013. Runtime ini menghapus banyak fitur dari versi open source dan menjalankan aplikasi di dalam sandbox kustom.

Saat ini kami mengembalikan runtime ini ke status open source dan memodernisasi sandbox. Kami akan melakukan pembaruan lebih lanjut untuk menormalisasi jalur permintaan dan mengoptimalkan performa. Dengan perubahan ini, kami dapat mendukung runtime PHP 5.5 untuk masa mendatang.

Dengan perubahan yang kami lakukan pada runtime PHP 5.5, Anda dapat mengganti layanan App Engine yang dipaketkan dengan layanan Google Cloud dan bermigrasi ke PHP 7/8 sebelum masa akhir dukungan. Lihat informasi tentang memindahkan aplikasi dari PHP 5.5 ke PHP 7/8.

Mengaktifkan deployment untuk runtime lama yang mencapai akhir dukungan

Berdasarkan kebijakan siklus proses runtime App Engine, Anda tidak akan lagi dapat men-deploy aplikasi menggunakan runtime yang telah mencapai akhir dukungan. Untuk mengetahui tanggal penting yang memengaruhi runtime, lihat jadwal dukungan.

Jika organisasi Anda ingin mengaktifkan kembali deployment untuk runtime lama yang telah mencapai akhir linimasa dukungan, Anda dapat menentukan kebijakan organisasi dengan constraints/appengine.runtimeDeploymentExemption. Kebijakan organisasi untuk mengaktifkan kembali deployment ini tersedia secara umum. Penggunaan runtime lama secara terus-menerus setelah akhir tanggal dukungan bersifat Eksperimental dan tunduk pada "Persyaratan Penawaran Pra-GA".

Untuk membuat atau mengubah kebijakan organisasi, akun Anda harus memiliki peran roles/orgpolicy.policyAdmin.

Menggunakan kebijakan untuk mengaktifkan kembali deployment

Untuk membuat kebijakan yang memungkinkan deployment, gunakan Google Cloud CLI atau Konsol Google Cloud yang telah mencapai akhir dukungan dalam organisasi tertentu terhadap lingkungan yang ditentukan.

Konsol

  1. Buka halaman Kebijakan organisasi di konsol Google Cloud.
    Buka Organization policies

    Halaman Organization policies menampilkan daftar batasan kebijakan organisasi yang tersedia.

  2. Pilih project, folder, atau organisasi yang ingin Anda tambahkan kebijakan baru.

  3. Temukan kebijakan Runtime Deployment Exemption (App Engine) dalam daftar. Anda dapat menggunakan kolom Filter di bagian atas daftar.

  4. Klik nama kebijakan. Atau, Anda dapat memilih Edit Policy dari menu konteks.

  5. Klik Manage Policy.

  6. Pilih Customize di bagian Applies to.

  7. Pilih Replace di bagian Policy enforcement.

  8. Klik Add Rule di bagian Rules.

  9. Pilih Custom untuk Policy Values.

  10. Pilih Allow untuk Policy Type.

  11. Di bagian Custom Value, tetapkan runtime yang ingin Anda terapkan di organisasi. Nilai yang didukung meliputi:

    • python27 untuk mengizinkan aplikasi yang menggunakan Python 2.7
    • java8 untuk mengizinkan aplikasi yang menggunakan Java 8
    • php55 untuk mengizinkan aplikasi yang menggunakan PHP 5.5
    • Untuk mengizinkan beberapa runtime secara eksplisit, tentukan python27, java8, dan php55 secara bersamaan. Secara default, runtime tidak diizinkan jika tidak ada kebijakan yang ditetapkan.
  12. Klik Done.

  13. Klik Simpan.

Setelah perubahan diterapkan, kebijakan ini memungkinkan deployment runtime App Engine yang telah mencapai akhir dukungan di lingkungan yang ditentukan.

gcloud

Jalankan perintah berikut:

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

Ganti:

  • ORGANIZATION_NUMBER dengan jumlah organisasi tempat Anda ingin menerapkan kebijakan.
  • RUNTIME_ID dengan runtime yang diizinkan untuk deployment.
  • RUNTIME_ID dengan salah satu ID runtime berikut:

    • python27 untuk mengizinkan aplikasi yang menggunakan Python 2.7
    • java8 untuk mengizinkan aplikasi yang menggunakan Java 8
    • php55 untuk mengizinkan aplikasi yang menggunakan PHP 5.5
    • Untuk mengizinkan runtime beberapa bahasa secara eksplisit, tentukan python27, java8, dan php55 secara bersamaan. Secara default, tidak ada runtime bahasa yang diizinkan jika tidak ada kebijakan yang ditetapkan.