Google has just released the most recent version of their App Engine product API, version 1.3.6 for Java and Python. The App Engine product offers developers the ability to tap into the power of Google’s cloud storage and computing for queries, storage, task scheduling, and allows them to authenticate users with Google accounts. This release relaxes the storage quota, enhances the image serving capabilities, and adds a multi-client feature.
The other additions may be useful, but really the gem in this release is the hook for multi-tenant Apps as described on the Google App Engine Blog,
We are pleased to announce support for multi-tenancy for applications via the Namespaces API. With multi-tenancy, multiple client organizations (or “tenants”) can all run the same application, segregating data using a unique namespace for each client. This allows you to easily serve the same app to multiple different customers, with each customer seeing their own unique copy of the app. No changes in your code are necessary to use this API–just a little extra configuration. Further, the API is also designed to be very customizable, with hooks into your code that you can control, so you can set up multi-tenancy in any way you choose.
Application developers who use cloud computing services often must program their products to create, configure, and compartment spaces on the services they use for each client they add. This additional feature to the Google App Engine will make that necessity a thing of the past by allowing the developer to simply produce a unique key for each individual client and the App Engine will do the rest of the work for them using that unique identifier.
As noted above, with minimal extra configuration, developers will be able to offer the same application to different clients but each client will only see their own unique copy of the app. This will enable a great deal of code reuse and easy delivery by developers to clients and offload a great deal of the rigmarole of setting up a new environment for each new client from developers to the App Engine instead.
Here’s a few more features highlighted by the Google article as being part of the 1.3.6 release,
- Java developers can now use the same app.yaml configuration file that App Engine uses for Python applications instead of appengine-web.xml (if preferred).
- You can now pause task queues via the Admin Console interface.
- Dashboard graphs in the Admin Console will now begin showing up to 30 days worth of data.
- Content-Range headers are now supported with the Blobstore API.