Live data from Hacker News

Beta release of PHP 7.2 in the Google App Engine standard environment

cloud.google.com

21–30 of 70 posts

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#21

This is exciting because the second generation standard environment allows Google App Engine to provide a more "idiomatic" experience. Using gVisor, instead of NaCL, as the sandboxing technology, shipping new runtimes becomes a much more tractable task with less differences from the "plain" runtime. In fact, gVisor allows us to use the runtime unmodified. This in turn, decreases the "lock-in". There are still decisio…

dis·claim·er, noun, a statement that denies something, especially responsibility. [1]

Did you mean "disclosure"?

[1]: https://www.google.com/search?q=define%3ADisclaimer

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#22
I was wondering what people generally think on using AppEngine when compared to rolling the API gateway+Lambda for public side projects. Somehow there seems to be much more movement on Lambda front, but I can't seem to find a lot of opinions from people running their apps in app engine, which I am quite sure there are more than Lambda? Or am I mistaken? The standard environment seems to be quite feature rich, but with a lot of hidden limitations for a newcomer, but at the same time the developer story for Lambda is not that great at all.

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#23

This is exciting because the second generation standard environment allows Google App Engine to provide a more "idiomatic" experience. Using gVisor, instead of NaCL, as the sandboxing technology, shipping new runtimes becomes a much more tractable task with less differences from the "plain" runtime. In fact, gVisor allows us to use the runtime unmodified. This in turn, decreases the "lock-in". There are still decisio…

dis·claim·er, noun , a statement that denies something, especially responsibility. [1] Did you mean "disclosure"? [1]: https://www.google.com/search?q=define%3ADisclaimer

I suppose colloquially on this forum in the context of comments, the word does deny something: usually of the possibility of bias.

Disclosure would work just as well, and is in fact more accurate!

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#24
post #18
post #11

Earlier quoted context omitted.

Laravel Forge [1] offers what you're after though I'm not entirely sure it's worth the added cost imo. [1] https://forge.laravel.com/features

Forge is a laravel only platform and doesn't scale automatically. It is more useful for maintaining a standard deployment process for your laravel application. It made setting up queues / redis / mongo a breeze when we onboarded new employees.

> Forge is a laravel only platform

That's incorrect. The page says: "We don’t discriminate: Laravel, Symfony, WordPress, Statamic, Craft and any other PHP application can easily be installed on a Forge server."

> doesn't scale automatically

That's true but I the person to whom I was responding isn't looking for auto-scaling (nor am I presenting it as a GAE competitor). It sounds like he just wants a button to push that'll create a fully operational PHP app server.

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#25
post #4

The state of App Engine environments seems super confusing, but I _think_ this uses the "second generation standard environment" like the Python 3.7 and Node 8 beta environments, which means that unlike App Engine of Yore, you have access to the full package ecosystem and full network access. I'm not actually 100% sure on this because it's not listed on the runtime page ( https://cloud.google.com/appengine/docs/stand…

Disclosure: I work for Google on the App Engine team doing documentation.

Firstly, a sincere thank you for reading and caring about our documentation.

With regards to the page you referenced, would you please elaborate on what information would help you come to the appropriate conclusion about using a second generation runtime? Your feedback would be very useful to us in order to shape this page into something that provides you with actionable information rather than "useless marketing junk" :)

Also to address a point you made in the first paragraph of your post, the PHP 7.2 beta runtime is a "second generation" runtime.

Cheers

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#27

Earlier quoted context omitted.

dis·claim·er, noun , a statement that denies something, especially responsibility. [1] Did you mean "disclosure"? [1]: https://www.google.com/search?q=define%3ADisclaimer

I suppose colloquially on this forum in the context of comments, the word does deny something: usually of the possibility of bias. Disclosure would work just as well, and is in fact more accurate!

> the word does deny something: usually of the possibility of bias.

That's precisely why I objected to its use in the context it was used here (and other places where it is colloquially used incorrectly): by announcing you worked on something, you reinforce the possibility of bias in the post while taking partial responsibility for the work--it does not disclaim or subtract bias or responsibility.

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#29
post #6

Excuse my complete and total ignorance here - but is this essentially a 'quick deploy' php instance? if so, what might a none-Google alternative be? I've only ever 'rolled my own', on small-scale virtual or shared servers, but I've got an upcoming project I could do with trying to install on something completely seperate - something like this might fit the bill. Or not! Thanks.

There's always Heroku too.

Re: Beta release of PHP 7.2 in the Google App Engine standard environment

#30
post #4

The state of App Engine environments seems super confusing, but I _think_ this uses the "second generation standard environment" like the Python 3.7 and Node 8 beta environments, which means that unlike App Engine of Yore, you have access to the full package ecosystem and full network access. I'm not actually 100% sure on this because it's not listed on the runtime page ( https://cloud.google.com/appengine/docs/stand…

For the moment, unfortunately it appears this second generation also lacks some of the great parts of the older platform. For example, with the shiny new GAE Standard Node Beta, you can't declaratively put your app behind authentication, you can't access the (extraordinarily useful) work queue feature from the older GAE, and probably more I have forgotten about for the moment. I hope that stuff is missing just tempor…

The first-generation GAE Standard Environment felt a lot like† programming in a port of the given language's runtime to a "cluster OS" like Mesos or Plan9—except it went even further: rather than the "GAE OS" just exposing things like "the cluster's KV storage" as a character device, and then making language runtimes implement a userland protocol library to speak to it over that device, the GAE OS's ABI just has system calls for things like key-value storage or job-queuing (calls which aren't even parameterized by a handle, since there's only one possible kvstore you could mean—the cluster's.) The language runtime ports are, then, essentially just exposing those system-calls, 1:1.

It reminds me a lot of being back in the 80s, when you could write raw assembly that simply called BIOS interrupts to read and write from a disk (by logical disk number!), rather than there being this whole edifice of an OS kernel in between, mapping high-level conceits like logical disk requests to low-level SCSI/ATA/etc. wire protocol messages. That mapping was instead happening at a firmware level, such that the hardware (the CPU) could expose intrinsics that would look like any other ISA instruction, but which would turn around and use the firmware (the BIOS) to execute the instruction.

That BIOS-interrupt style really feels, to me, like how computers should be: rather than everything compiling down to RISC code that inevitably gets bogged down in kernel context switches as it attempts to express its intent through thousands of low-level system calls, why not have an ultra-high-level CISC ISA that can just express its intent to the hardware [and firmware] directly, with no impedance mismatch? All the "expansion" of intent to RISC would happen in ring 0, with no switching back and forth. (A good example of this kind of CISC-expression-of-intent: kernel packet filtering.)

Or, if you don't want to go that far: why not an abstract machine, like the JVM, with these hyper-CISC semantics? I know there's already one example of this approach in the way Erlang's BEAM VM implements its "send" instruction. In the expensive cases—when a module is not loaded in the local VM, or when you need to send the message to a remote node over the distribution protocol with a custom transport—the "send" op can bounce back down into calling other Erlang modules (essentially "firmware"!) to get its job done. I'd love an abstract machine that had that approach... but for everything.

---

† I say "felt a lot like", but from my understanding, this is how it actually was/is! GAE Standard Environment v1's interpreters are compiled as Portable Native Client [PNaCl] binaries, with extensions to the "ABI side" of the PPAPI for the specific services the Native Client VM host provided to its guest. The language runtimes then 1:1 expose these PNaCl instruction-set extensions as the functions of modules like ndb, taskqueue, etc.

Post reply on HN