My 5+ year old GAE/Python app migrated to Managed VMs (MVM) flawlessly! (enterprise app with 15,000+ users doing all sorts of different things - not a simple website)
easy upgrade:
- minimal code changes - just changed app.yaml and our deploy scripts
- deploys into a new "version" of the same dev/staging/production instances as non-MVM GAE, i.e. share backup/restore, one click to split/migrate traffic, etc
- can upgrade some modules and not others; if you're still using backends, they can stay on native GAE. Example: cron.yaml jobs can still run on GAE native if you want.
lots of immediate wins:
- 30-300% performance boost (depending on the activity, of course - I/O bound not so much)
- immediate $$$ savings
- not limited to 1GB RAM and in fact it starts with 1.7GB.
- not limited to slow or single core CPUs
lots of roadmap wins:
- native libraries
- python3
- can SSH into live instance(s) -- though admittedly, I haven't figured out the value yet...
wrinkles:
- deploy time is much slower -- 8+ mins
- auto-scaling is a lot slower, i.e. in practice users may get 502 errors if you don't provision correctly - even with auto-scaling
- logs are more detailed but harder to read - native GAE had nice simple stack traces
- deploys to one zone/region for now -- native GAE was multi-homed
- docs were incomplete, e.g. didn't mention needing to push cron.yaml, index.yaml
- error messages are incomplete, e.g. queue.yaml needs to be precisely named that (where other yaml files can have any name)
hope this helps, (and feedback welcome)
adam