views:

1225

answers:

6

Pros & Cons of Google App Engine

[An Updated List 21st Aug 09]

Help me Compile a List of all the Advantages & Disadvantages of Building an Application on the Google App Engine

Pros:
1) No Need to buy Servers or Server Space (no maintenance).
2) Makes solving the problem of scaling much easier.

Cons:
1) Locked into Google App Engine ??
2)Developers have read-only access to the filesystem on App Engine.
3)App Engine can only execute code called from an HTTP request (except for scheduled background tasks).
4)Users may upload arbitrary Python modules, but only if they are pure-Python; C and Pyrex modules are not supported.
5)App Engine limits the maximum rows returned from an entity get to 1000 rows per Datastore call. (Update - App Engine now supports cursors for accessing larger queries)
6)Java applications may only use a subset (The JRE Class White List) of the classes from the JRE standard edition.
7)Java applications cannot create new threads.

Known Issues!!
http://code.google.com/p/googleappengine/issues/list

Hard limits

Apps per developer - 10
Time per request - 30 sec
Files per app - 3,000
HTTP response size - 10 MB
Datastore item size - 1 MB
Application code size - 150 MB
Update Blob store now allows storage of files up to 50MB

Pro or Con?
App Engine's infrastructure removes many of the system administration and development challenges of building applications to scale to millions of hits. Google handles deploying code to a cluster, monitoring, failover, and launching application instances as necessary.

While other services let users install and configure nearly any *NIX compatible software, App Engine requires developers to use Python or Java as the programming language and a limited set of APIs. Current APIs allow storing and retrieving data from a BigTable non-relational database; making HTTP requests; sending e-mail; manipulating images; and caching. Most existing Web applications can't run on App Engine without modification, because they require a relational database.

+2  A: 

Pro: Unlimited scalabity to your application and scales with demand.

Randell
Combine your answers please
Rishi
+2  A: 

Con: Not available in some countries (Argentina).

Edit

Available worldwide, but only through Google Groups for App Engine.

voyager
Definitely available there - you just need to leave a message in the group to get your account activated if you can't receive SMSes.
Nick Johnson
Didn't know that!
voyager
http://appengine.google.com/waitlist/sms_issues
voyager
voyager's link is correct, and my own recommendation is out of date - using that link is now the best way to get your account activated if you can't receive SMSes. :)
Nick Johnson
I never needed to leave a message or anything, it just worked (Buenos Aires)
Mauricio Scheffer
@Mauricio: it has changed since last August.
voyager
@voyager: maybe, but I created my account and app over a year ago.
Mauricio Scheffer
A: 

Con: Limited to Java and Python

Randell
Removing the 'Java' part turns this into a Pro.
Aiden Bell
It's not true! With Java you can use JRuby for example, or Jython (maybe not) or Scala, Groovy, etc...
Luke
What about the Languages Listed here http://groups.google.com/group/google-appengine-java/web/will-it-play-in-app-engine?pli=1
Rishi
Most are JVM based language. Hmmm...
Randell
By Modifying some part of your code you can deploy many (JVM)languages there
Rishi
javascript as well: http://www.appenginejs.org/
cherouvim
+1  A: 

Con: All your bases are belong to us

... On a serious note:

Con: You don't control the environment your application runs in. The same cons as with outsourcing any component. Fun for toys, not for business (yet) IMHO.

Various things like API for Google proprietary backends such as their database system and other 'lockdowns' and frameworks that mean your code is tied, in some loose sense to their system can create cost issues later if you want to migrate from GAE. Of course, you could abstract these.

I like GAE, AppJet and others. They are cool. But everything has its place. If you want freedom and the ability to control your language's modules, API, syntax/stdlib versions and whatnot ... don't relinquish control to a service provider.

The lack of standards for environments and specifications for what your app can expect worries me in the cloud arena.

common sense stuff really.

Aiden Bell
Please elaborate environment control. Also what are the difficulties in porting your application to some other Domain
Rishi
+2  A: 

Pros:

  • Scalable
  • Easy and cheaper (in short term).
  • Nice option for start-ups/individuals.
  • Suitable for apps that just store and retrieve data.

Cons:

  • Not suitable for CPU intensive calculations. They are slower and expensive.
  • Scalability doesn't matter much cuz if an app works at Google scale then probably it makes enough money to run on its own servers.
  • They have lots of limitations thrown here and there, as a result deep data analysis is difficult. Like you cannot produce a social graph using GAE.

I would say its not meant for serious businesses and expensive in long run.

Arpit Tambi
Rishi
Answer some questions here and there so that I can upvote your answers.
Arpit Tambi
A: 

You are force to own a cell phone line, and your country+carrier must be able to receive international SMSs.

(I hate cell phones, and my mom's or co-workers won't get the SMSs)

Hugo
see nick's response to voyager's answer. you can get app engine without a phone.
Peter Recore
also, you only need to have a phone to sign up. not forever. if you are planning on running any kind of real business, a small startup cost like that is trivial.
Peter Recore
No reply from that form, even after a week or so. And, NO, I don't plan on any kind of real business.
Hugo