Google App Engine (aka GAE) allows you to run web programs on Google servers, similar to Amazon Web Services (although it should be stressed that GAE is PAAS and AWS is IAAS - Infrastructure as a Service - so the two are not entirely alike).
That sounds simple enough, but it's basically like saying an airplane flies you from point A to point B - there's a lot of details involved behind the scenes. I like this concept because, in my view, the original notion of the "cloud" involved moving services (email) and storage (file shares) out of the local data center. GAE applies to applications themselves which I find a more intriguing and advanced concept due to my infrastructural roots.
GAE is not a new thing; it has been in use for several years now in corporate environments both large and small. It boasts scalability, a broad set of APIs, a software development kit (SDK) for creating apps, and an administration console to control and monitor programs. These apps must also comply with Google's Terms of Service.
Google states on their "About Google App Engine" page that "Google Apps provides a number of communication and collaboration services, which can be used to enhance your application. You can communicate via email with your application users using branded email addresses and the Gmail experience. You can also create public wikis for your service using Google Sites."
What are some concrete examples of GAE apps?
Now, I recognize that the topic of coding can be about as dry as the Sahara desert for those of us who aren't programmers (no offense to readers and friends).
So, in order to keep this article lively and engaging I researched some examples of well-known web applications residing on Google App Engine.
1. Giftag (Best Buy)
Best Buy needs little introduction, especially among technology enthusiasts. They started using Google Apps Engine back in 2008 to host a program called Giftag, which provides online wish lists for customers to share with friends via email and social media. They found they could rapidly create and launch applications using GAE and generated several more apps, such as one that promotes offers and another to manage QR (quick response) codes. Google has the full case study here (PDF).
Tweetdeck allows you to manage your Twitter experience more efficiently, to organize and display the information you find most useful.
Tweetdeck developers made good use out of the emailing functionality provided by Google in building this app. They leveraged the Python programming language (see below for a list of supported languages in Google App Engine) to create an email API with encrypted authentication. GAE is useful for providing a feed called "Tweetdeck Recommends" to help engage users. One of their programmers, Reza Lotun, stated in a 2010 article that "App Engine provides the perfect platform to compose new services quickly, iterate on them in production, and scale with demand as Tweetdeck's install base grows. Thanks to App Engine and the cloud, there's nothing holding us back from tackling the needs of our user base."
Snapchat is a sharing service for mobile devices which allows users to quickly exchange pictures and videos on a temporary basis (whereby "temporary" is intended as the intriguing hook) and include captions. It seems oriented towards teenagers and twenty-somethings who clown around with friends.
According to Stacey Higginbotham in an article on gigaom.com, "[Snapchat CTO Bobby Murphy] likes App Engine, he said in a recent phone conversation, and he believes Google is scaling out and willing to invest in this platform. He prefers some of the features for Snapchat's purposes and believes when it comes to scale, Google could offer more than AWS for his application."
I'm skeptical that a temporary image or video service will gain much traction - there is too much opportunity for discontent over the fact that great content can't be kept long-term. However, this is a good example of why a cloud service is a good platform on which to run an experiment like this; easy setup, easy breakdown, and low overhead.
What programming languages can be used to build apps?
Obviously if your skills (or existing apps) lie in other languages this may pose a significant consideration.
What are the costs?
As with many of Google's offerings, there is a free and paid version of GAE, whereby there are no setup costs and a certain usage threshold is free (for example, 10 apps, 1GB of app storage, 1GB of incoming/outgoing bandwidth per day, and 100 email recipients).
Paid apps are $9 per month and in terms of capacity you only pay for what you exceed over that free threshold described above, as it relates to storage (by GB) and bandwidth.
For instance, for an app on Google's high replication data store you would pay $9 per month plus 24 cents per GB/month over the free 1GB storage allotment. Similarly, outgoing bandwidth over the first 1GB would be billed at 12 cents per GB. Google provides 28 free instance hours per app per day; the price if you exceed this is 8 cents/hour.
It is also possible to obtain a GAE premier account which starts at $150/month and provides advanced support, discounted rates, and unlimited apps.
You can use GAE via a standalone Google account (click here to sign in) or a Google Apps account. Google Apps users can sign in via https://appengine.google.com/a/<YOURDOMAIN.COM>.
Click here for more details involving how to use GAE with Google Apps.
Once you're ready to create or upload an app (or to just view the environment), sign in.
Click "Create Application."
Just for fun I entered a test application identifier and title, then checked off "I accept these terms" (after I thoroughly read the TOS, of course.)
Once I clicked "Create Application" I received the following notice.
The links near the bottom let you view the application dashboard, upload and deploy code, or add fellow administrators.
I opted to view the dashboard, by clicking the "dashboard" link.
This view is part of the Administration Console, which lets you configure and manage all of your apps in a similar fashion.
Getting more information
There is a tremendous amount of information available on GAE. Developers should review the documentation here. There is a known issues list which explores problems with GAE and the status of fixes (where applicable). You can get started working with apps here. Code samples are available as well.
If you'd like to find out more about GAE versus Amazon Web Services, click here for a comparison between the two, which praises GAE for its portability.
Scott Matteson is a senior systems administrator and freelance technical writer who also performs consulting work for small organizations. He resides in the Greater Boston area with his wife and three children.