It would be nice if, once new code is tested, I could release changes to either a particular subdomain of my GAE app (such as demo.my-gae-app.com
instead of my live environment at my-gae-app.com
) or a particular backend instance (if subdomains are prohibited or not the right solution here).
Then, I can demo new code changes to my beta testers, and run performance tests against a real-life GAE environment. I know that the GAE SDK comes with a dev appserver, but it stubs most of the API calls, and doesn't handle scaling at all like a production environment would. And although we will absolutely use it for developers' local sandboxes as well as our QA environment, I just don't feel right release code into prod that hasn't ran against an environment that really mimics production.
How do other GAE developers/teams deal with this? I'm really just looking to have a pre-production environment (like "Demo")...but actually on live GAE app servers. Of course, I need to restrict access to this code so that only myself, my developers, my beta testers and our automated perf tests can access it... (that's the kicker).
You can deploy your code to a non-default application version, either by:
version
tag value in appengine-web.xml -V version
argumentAfter doing so, you can access your application by visiting version.appid.appspot.com
Note that different versions can access the same application datastore.