home‎ > ‎labs‎ > ‎

Running with Google App Engine

I am a small shop. I have not plenty of time and resources to get my solutions production ready. This implies they must scale and they must run 24/7.   
So, what alternatives do I have?

Alternative 1
I have a Linux server with LAMP installed on the Internet. 
Pros: I have full control. It can be deployed inside the customers network. 
Cons: Just for prototyping. I need to support the whole Linux installation. I have never used PHP before.

Alternative 2
Google App Engine comes with my Google App account. 
Pros: No need to setup the environment. Large scale support.
Cons: No experience yet with app Engine (what is the learning curve?). Can not deploy inside customers network. Is App Engine ready for production? How about privacy? Is my data safe?

I want to be able to roll out my solutions on a  large scale. This is not possible if I use my own Linux Server. I also do not want to admin the infrastructure for my apps. If I use App Engine then Google takes care of this for me. 
How about the privacy of my app and data? If I use my own Linux server I need to lock-down the server so that no one can break in and steal my data. I am not sure I have this knowledge or the time needed. Hopefully Google have the competence to secure my data.
So, the conclusion is that I will give Google App Engine a try.

Read more about Google App Engine
Short introduction on YouTube: Campfire One: Introducing Google App Engine
Read more about LAMP.

My struggle to get App Engine work (unstructured notepad)
I have watched some YouTube clips and read some docs. Installed Eclipse on my Windows PC. Which didn't feel right so now I am reconstructing my MacBook HDD to fit in Ubuntu. The preinstalled HDD was only 120GB so I have bought a new 500GB replacement disc. 
My plan is to have Mac OSX as my main OS and run Ubuntu and Vista with Vmware Fusion. I have reserved 100GB for Boot Camp. Maybe I run Windows 7 on that partition? This way I can develop Google App Engine services (GAE, is that a common acronym?) on Ubuntu/Eclipse. Consume GAE in my Windows Apps (WPF and Silverlight) and my iPhone apps. Isn't that a nice thought?

My first GAE is an admin web app for StreamSync user accounts and configurations (need to have a real project for my motivation). 

Found an article on IBM website about consuming GAE on the iPhone.

Observation this far: It seems that most developers are using Phyton. 

I just completed my first GAE app. Click here to see it!
Setup: MacBook with OS X + GoogleAppEngineLauncher + TextMate. Made with Python. 

Is it possible to use XMPP to broadcast messages to clients? 
More about XMPP on Wikipedia: Extensible Messaging and Presence Protocol

Scenario: Events are generated by one master client and received by any other connected slave client. The slave clients shall not be required to log on to any specific account. Also, any of the slave clients shall be able to send messages to the master client not visible for the other slave clients.  

I have Eclipse up and running on my Mac now. As an old Java J2EE and JSP programmer I was glad to see that the latest version of GAE supports Java. So I tried to use the Java SDK and found it quite easy to deploy the stub project. 
Google are providing a Google Web Toolkit (GWT) plug-in to Eclipse which I hope will make my life a lot easier. I can create my application object oriented infrastructure as I am used to with Java. My only worry is how to design the UI. I hate HTML coding!

More about GWT: Google Web Toolkit Blog.