In my stuff...

App Versions for "Live" are pure numbers, all Devs/debug/beta contain Alpha
Characters

If  INT Version == Version { DataStore/Memcache = Live} Else
{DataStore/Memcache = Debug}

For memcache make sure to prefix or differentiate your keys in some way.

Depending on my testing often I do reads from live always and writes to the
live or debug based on version.

I often mix Java and Python between Versions so I can run performance
testing between the two.


-----Original Message-----
From: google-appengine@googlegroups.com
[mailto:google-appengine@googlegroups.com] On Behalf Of Martin Waller
Sent: Friday, September 23, 2011 1:38 AM
To: Google App Engine
Subject: [google-appengine] Managing Dev and Live versions

I was wondering what the best advice is for managing a live version of an
app and a dev version of an app? I found the following on the web:

1. App Versions are strings, not numbers Although most of the examples show
the 'version' field in app.yaml and appengine-web.xml as a number, that's
just a matter of convention. App versions can be any string that's allowed
in a URL. For example, you could call your versions "live" and "dev", and
they would be accessible at "live.latest.yourapp.appspot.com" and
"dev.latest.yourapp.appspot.com".
2. You can have multiple versions of your app running simultaneously As we
alluded to in point 1, App Engine permits you to deploy multiple versions of
your app and have them running side-by-side. All the versions share the
samedatastore and memcache, but they run in separate instances and have
different URLs. Your 'live' version always serves off yourapp.appspot.com as
well as any domains you have mapped, but all your app's versions are
accessible at version.latest.yourapp.appspot.com. Multiple versions are
particularly useful for testing a new release in a production environment,
on real data, before making it available to all your users.
Something that's less known is that the different app versions don't even
have to have the same runtime! It's perfectly fine to have one version of an
app using the Java runtime and another version of the same app using the
Python runtime.

What I don't like about this is that all the versions share the same
datastore and memcache which is fine if you want to test on live data but if
you want a test datastore where to can delete everything and go again then
it's not going to work. How do people manage this? Do they setup two
distinct apps to do this I wonder?

Many thanks for any help you can give.

Martin

--
You received this message because you are subscribed to the Google Groups
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/google-appengine?hl=en.


-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to