« Google AppEngine domains | Main | Google AppEngine and PyAMF »

April 08, 2008

Google AppEngine : First Responses

These are my first responses as I read through the documentation in relation to Amazon Web Services.

The AppEngine is exactly that, based off Apps. With Amazon EC2 you have to create an image, develop your code, then launch your ami. With AppEngine, you can skip the image creation and get straight to creating an app. That’s much more my style. I don’t know much about managing Linux servers.

 

Built in Scalability rocks. With Amazon EC2 you need to handle this yourself.  AppEngine handles this for you, based off traffic.. (I think)

Python Only Support sucks. Python is great yeah. But what if your app is already in java? or c#. Support for multiple languages is on the way, but it’s not yet. If your app is already built on python, you’re golden – you just got a free web server. AWS on the other hand, allows you to deploy any type of server imaginable.

Built in Logging. Can’t beat that. AWS doesn’t have this, but your ami’s can implement this.

The development SDK has a built in dev web server. This is great. you can start it from the command prompt after you install the engine and it duplicates the environment that your code will run on the server. Again, they only support python.

Built in DataStore. This looks good as well, SimpleDB has driven me crazy these past few weeks. I always felt like the cloud database should be built in. You’ll have to learn GQL which is the Google SQL implementation. It’s all about Entities and Models. You you can extend the Google Model (found in the SDK) and then be able to save objects. The one thing SimpleDB had going for it was it was completely dynamic. (although there is the concept of Expando Models in AppEngine) But you’ll need to define your model server side vs. what we created with SimpleDB that allows you to define your model within flex. It looks easy enough though and it’s a horse apiece I guess. Define on the Server, Define on the Client : pick you poison. I want the easier implementation, easier distribution… looks like AppEngine might offer that.

The possible datatypes blow the options with SimpleDB out of the water.

Expando Models allows you to create dynamic databases fields, but the data doesn’t get validated. I dig as a developer being able to make that choice. Another Plus for AppEngine over SimpleDB.

Keys and Entity Groups. You can assign the unique ID or allow the datastore to assign it for you. Awesome. With SimpleDB you have to handle this, which is another thing I thought was wrong with SimpleDB.

Queries and Indexes. You can create Indexes to query off of. Again, Awesome. SimleDB just does not have that functionality. Although there are restrictions.

Transactions. Yep. This keeps getting better.

UserApi. Integration with Google Accounts. Built in Authentication.

URL Fetch. Communicate with services over HTTP.

Mail Api. Ok, I’m won over. AWS has nothing that allows email. And what app doesn’t send email?

 

Summary. Overall I think AppEngine has much more possibility that Amazon Web Services. I like the focus on app building vs infrastructure & app building in AWS. AppEngine also address alot more problems than AWS does such as authentication, better data bases, email integration etc.. The one negative is that it’s only available in python.

Oh, and for now it’s free. That might be the best option yet.

 

 

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/t/trackback/2357234/27886506

Listed below are links to weblogs that reference Google AppEngine : First Responses:

Comments

"Built in Scalability rocks. With Amazon EC2 you need to handle this yourself."

I'm not quite sure how you mean this for EC2. EC2 is also meant to be totally scalable, you only pay for the usage/bandwidth/storage that actually occurs on your instance. Isn't that scalable?

@cahlan, I meant that with EC2 you need to be aware of your deployments and scale them up and down as needed using something like DynDNS or other Round Robin techniques. With AppEngine, you can just deploy and it's handled for you. I'm not a linux admin so I prefer the latter. As long as you don't hit the usage quotas that is.

Thanks for the clarification. I think I was a little confused at the differences in "scalability" :)

If you have a standard web app that hits a database, displays pages and does some basic stuff with data, has some auth and sends out mail, then App Engine is a perfect fit.

If you have a more complex app that uses external web services or performs background computations or even requires writing files to the filesystem, then you are stuck and AWS is probably better for you.

One interesting combination would be to write apps that have the web interface on GAE and computation parts on AWS!

@Siddhi, I couldn't agree more. I see no reason why this wouldn't be possible. I can see using S3 buckets instead of using the datastore to save images. I can also see sending mail through gmail. And another thing would be to host the swf's in a bucket and map your domain to it.

Post a comment

If you have a TypeKey or TypePad account, please Sign In