Why is Google App Engine Standard using PHP 5.5?

2019-08-27 02:53发布

问题:

I plan on hosting PHP applications in Google App Engine Standard, but i find one thing quite concerning:

Currently one can choose between a PHP 5.5 runtime, and a beta 7.2 runtime. So the currently available non-beta version is 5.5, which had it's End-of-Life 1 1/2 years ago!

Why was this not upgraded to 5.6 long ago? why are there no 7.0 or 7.1 environments (7.0 came out 2 years ago!)? Isn't it completely irresponsible to provide such an old PHP runtime? I mean even the most amateurish shared hosting companies probably have upgraded to 5.6 long ago. I can't understand, why Google - one of the leading Tech-companies on the planet - is doing this.

I know that i can use any runtime i want in the flexible App-engine, but if "Standard PHP environment" is interpreted as PHP 5.5 by Google, isn't this a giant red flag for any developer? Why would anyone be so irresponsible to use PHP 5.5 nowadays or choose a hosting provider, that is THAT far behind, that it provides 5.5 as the most current stable PHP environment? Isn't such an incredibly conservative and seemingly irresponsible upgrade-schema of runtimes a big red flag NOT to use App Engine Standard for any responsible dev?

Or am i completely missing something here?

回答1:

In the first generation standard environment sandbox a lot of the services relied on specially crafted libraries, APIs and supporting infrastructure/services.

Most likely many/all of these would need to be re-written/ported by the GAE team when changing the supported language version and doing so in a timely and cost-effective manner while maintaining the SLAs is not at all trivial.

You can see a list of these services in the Migrating Services from the Standard Environment to the Flexible Environment guide - most if not all of them aren't available in the 2nd generation standard environment either.

By replacing these services with more or less similar solutions offered by other Google (or even 3rd party) teams (or dropping them altogether) adding support for different languages/versions became a lot easier - probably explaining the constantly increasing rate at which these came to life and evolved - see An Annotated History of Google’s Cloud Platform and/or the PHP Release Notes. Which is, if you want, proof that Google kept actively trying to keep up with language evolution.

I'm not sure about PHP or the other languages, but for my app usage context I'm more than happy with the older python 2.7 version, especially when taking into account the other advantages exclusively offered by the 1st generation standard environment. I just hope that with the alternate offerings in place the cost of maintaining it (even frozen as-is) remains low enough to not justify discontinuation ;)