Early Peek at Google App Engine for Java: Building an App… not a Stack

April 8, 2009 Appirio

Iein Valdez

A year ago Google unleashed App Engine with support for Python. This was Google’s first entry into on-demand application development and deployment. Developers were able to build, develop and easily deploy apps using Python. App Engine was the middle ground between Amazon’s EC2 and higher level business platforms like Force.com. We were excited about App Engine and watched Google improve the platform, but we felt it was not ready for the enterprise. After all, most enterprise customers don’t build apps in python and there were a number of platform gaps – such as scheduling jobs, missing support for ssl, and difficulty loading bulk data.

Today is App Engine’s first birthday, and a lot has changed. At today’s Campfire One event Google released a number of enhancements to App Engine– most importantly announcing support for Java, where most enterprise application development is done. Google gave Appirio early access to Java on App Engine, and asked us to kick the tires. We used the opportunity to build and deploy a lightweight recruiting application to connect to our Viral Recruiting solution. Here’s our initial take:

First big win: No worries about the deployment infrastructure
Most application development projects start with a lot of time planning the development and deployment stack: Which app-server container, database server and load balancer should we use? Do we have enough licenses to deploy? Is our app going to share an existing database or did we need to spin up a new instance? How will we backup and monitor the performance of the app? Do we have enough CPU, data, and network resources to adequately scale our app?

All these questions had to be answered before I could write a single line of code. With Google App Engine, that all changes. Google provides a complete development and deployment stack, all accessible within Eclipse. I can start developing with no upfront cost, and scale up my resources as I need them. Google does the heavy lifting, allowing me to work on my code.

Second win: End-to-end java, including the UI

We downloaded the SDK, installed the nifty eclipse plug-in, and then started to code. The big design decision we had to make was around which framework we were going to use for our web user interface. We chose to go with Google Web Toolkit (GWT). With GWT we were able to build our entire UI in Java and take advantage of the built-in RPC mechanism to pass data between our UI and App Engine. By using GWT we also didn’t have to worry about browser compatibility or hand-coded Javascript. Now we were able to build our UI in Java, connect it to our App Engine Java Data Objects, and debug everything end-to-end all from within Eclipse.

Third win: Local development run-time and instant deployment
OK, so we had all the tools we needed. We quickly mocked up our user interface, app logic and data structures in App Engine. The final big win was the ability to run and emulate the whole run-time all our laptops. We spent a little time debugging the app and added in missing functionality. Next we pressed the deploy button in Eclipse and a few minutes later our app was in the cloud running on Google’s infrastructure. A seamless transition from our local development environment to production deployment… all with the push of a button. We were blown away.

Our conclusion? With App Engine’s new capabilities, we’re excited to add Google App Engine to the set of tools we use to help our enterprise customers do more with the cloud. Here are some characteristics of applications well suited to Google App Engine development:

  • Apps which need tight integration into Google Apps, Docs/Sheets, or GData APIs.
  • Apps needing a large set of users to perform limited complexity transactions
  • Apps or Customers that want to take advantage of the Java language to develop and maintain their apps.
  • Apps that will be put in the cloud without any upfront investment, utilizing a pay-as-you-go model.

Happy Birthday, App Engine– thanks for helping Appirio and our customers move to the cloud.

Previous Article
Salesforce CTI SoftPhone: Learn the Lingo
Salesforce CTI SoftPhone: Learn the Lingo

Jonathan Griggs Implementing the Salesforce CTI SoftPhone can seem like an intimidating task. After all, yo...

Next Article
SOQL Query Tool
SOQL Query Tool

One of our founders, Glenn Weinstein, authored a fantastic utility a few years back that allows for any adm...