|
|
|
|
|
by anteater_alex
2869 days ago
|
|
We're a SaaS platform running on App Engine and were part of the early-access program. Porting over our Python 3 based platform from App Engine Flex to AE Standard took just a few hours - only tweaks needed were to the YAML config files and rewrite our deployment scripts after creating a new environment and project. We still maintain a docker-based environment on AWS EBS which we were able to port over as well.
Overall a fantastic experience. The App Engine Standard team provided stellar support too. We did notice pure CPU performance on AE standard to be less than dedicated AE Flex instances, but on a price/performance ratio AE standard is 10X better for infrequently accessed micro-services which will allow us to migrate some of these to standard for great cost savings - as well as ramp up auto-scale to handle spikes automagically. With Python 2 becoming officially deprecated in 2020 this means App Engine Standard just got a huge boost in long term relevance. Great for developers who want to deploy without having to deal with infrastructure. Good to hear that AE standard - i.e. this vision of a 0-effort Python deployment support - is still relevant after all the Kubernetes-related announcements at Google Next. |
|
PS: Regarding automagically handling spikes I have a warning that might be useful for you. The way AE load balancer works is that it:
0. A request comes.
1. AE checks for available instance. If none available:
2. Spins up new instance.
3. !!! Assigns the request to that instance.
4. Waits for /_ah/warmup to finish.
5. Adds that instance to its serving pool so other requests may be routed there as well.
Note that step 4 is after step 3, so at least one request will wait for /_ah/warmup. So occasionally you will see requests with high latency (if your warmup is slow, of course). Our latency requirements were quite high, so we ended up switching to manual scaling and heavily over-provision to handle spikes. That costed us good money, though.