Historically, the App Engine standard environment provided several scalable, proprietary services for app development. These services were bundled with first-generation runtimes (also called App Engine legacy runtimes), which include Python 2, Java 8, Go 1.11, and PHP 5.5. Because several of the legacy runtimes are no longer maintained by their respective open-source communities, as an App Engine developer, you may face hard choices on whether to invest time and effort in migrating to a newer runtime or else incur growing costs to retain your app on a legacy runtime.
Recognizing this challenge, Google Cloud is committed to providing you with a more incremental migration path to newer runtimes. To reduce runtime migration complexity, Google Cloud now supports a set of App Engine legacy bundled services and their associated APIs on second-generation runtimes, which include Python 3, Java 11, Go 1.12+, and PHP 7+. Your app can call legacy bundled services APIs for second-generation runtimes through language-idiomatic libraries.
In runtime migration scenarios, you often also have the option to use Google Cloud products that offer similar functionality as the legacy bundled services. For the legacy bundled services that are not available as separate products in Google Cloud, such as image processing, search, and messaging, you can use third-party providers or other workarounds as suggested in the Runtimes guide.
To learn more about these options for migrating your app, see Migrate off of legacy bundled services. If you need to access the App Engine legacy bundled services when migrating to second-generation runtimes, see Access legacy bundled services for Java 11/17.