...

Google App Engine: Rapid Iteration With Versions


by Phil Plante on June 20, 2014

Google App Engine is a Platform as a Service (PAAS) for developing and hosting web applications on Google's infrastructure. It removes much of the pain involved with provisioning, configuring, and maintaining servers for running a web site.

One of my favorite features of App Engine is the ability to easily create different versions of an application. A version is a separate copy of the application that can be accessed by pre-pending a "version" to the site's url.

So if the default version of your site url is:
http://williamsburg-web-works.appspot.com/

A "demo" version url could be something like this:
http://demo.williamsburg-web-works.appspot.com/

Iterating With Versions

It's important to have a stable version of your site for public consumption production. So how do you test a new feature in a production environment? Simple, create a new version of the site. Then, test the feature. Easy, right? And all along the stable version of your site is accessible at the default url.

Versions are also useful for demonstrating new ideas. There are times when a functional example of an idea clarifies the concept for the entire team. So instead of sending dozens of emails or spending valuable man-hours hashing it out with the entire team, you can simply create the feature in a new version of the app for your client or team-members to preview.

Creating a New Version

It's simple to create a new version of an application with Google App Engine. Just open your app.yaml file, and change the version to whatever you'd like it to be:

app.yaml - change versions

Then re-deploy the code to production. The new version of your site can be accessed using the new version, for example:
http://demo.williamsburg-web-works.appspot.com/
And if the new version checks out, just go to the App Engine Dashboard, select the application, click the Versions link, select the new version, and click "Make Default". That version becomes the default version that will be served to the public.