Introduction to Google App Engine
As part of my special project at work as mentioned quite some time ago in a team meeting, I decided to learn more about and investigate if using google app engine is a viable solution for some of our clients at the university. Namely, the clients that want us to do work but dont want to pay costs of running and supporting a server.
- Sign up for google app engine registration - http://code.google.com/appengine/
- Google app engine sign in - https://appengine.google.com/
- Appe engine documentation - http://code.google.com/appengine/docs/whatisgoogleappengine.html
Benefits of google app engine
- In my experience, most of the web applications we develop are deployed to servers that are not properly maintained or updated due to time and budget constraints, leaving us open to security risks.
- With google app engine you don't have to maintain, patch, upgrade and support hardware or application servers, google takes care of all of this.
- Automatically supports scaling to multiple app servers with load balancing.
- On top of that google add's so many more features that normaly we don't have time to setup or support for our applications.
- Google provides very easy to use API's that are in some cases more powerful than other options available to us, such as high availability data storage
Downsides
- You are requried to use Google API's, which results in vendor lock in, however with good coding this can be limited.
Application control panel
Overview of control panel features
- Dashboard
- Instances
- Logs
- Versions
- If you plan your "data store" carefully you are able to swith between older and newer versions of the web site.
- You can also provide access to newer versions of the web site to some clients for testing.
- See what older versions of the site looks like, ie http://6.jacob-rhoden.appspot.com/ vs http://1.jacob-rhoden.appspot.com/
- Backends
- Cron jobs
- Task queues
- Quota details
Using the data store
- When storing objects, objects are written to multiple servers across multiple data centres.
- When loading objects, objects are written from one of the multiple servers
- See com.uptecs.gae.user.AccessTokens for JPA example
- See com.uptecs.pushdb.GoogleDataStore for Query example