Discussions

News: "Goodbye Google App Engine"

  1. "Goodbye Google App Engine" (8 messages)

    Carlos Ble has posted "Goodbye App Engine," meant to be a quick summary for friends about why his company switched away from GAE. It's a good summary of the problems with GAE and PAAS.

    It has a laundry list of problems: python 2.5 instead of 3, no https, no C (so pure python libs only), request time limits, a really ugly database (slow, no joins), memcached limitations, just a huge set of things that on the surface look like things you can handle but they end up making you feel like you've been stung to death by gnats.

    He ported away from GAE in one week, and finishes by saying "developing on GAE introduced such a design complexity that working around it pushes us 5 months behind schedule" and listed it as a 15 thousand euro mistake.

    Ouch.

    Some people say it's Carlos' fault for not knowing everything about GAE going in, or for ignoring the risk disclaimers that GAE puts out; Carlos points out that stability was a crucial problem, which a risk disclaimer wouldn't make obvious. (Can you imagine using a service that says "This may or may not work, good luck"? I can. It's called memcached.)

    There are a lot of comments, and they're worth reading, although a lot of them flame Carlos for not being a Google fanboy (which is ironic, since Carlos says that's part of why they used GAE in the first place.) One commenter said this:

    "Out experience has been that it's usually quite slow, reliably unreliable and very niche in its potential application, but if you can work around these serious limitations, its very cost effective. ... for 99% of applications GAE is the wrong solution, with some knowledge and understanding, for 1% it's ideal"

    Eugene Curiana has written books about GAE, and even he says that he ultimately recommends people not use it for anything serious.

    However, he also says that his "real app continues to sit in a regular data centre or we put it on Amazon/Rackspace/etc."

    That's a crucial point. I've read other people complaining about platforms-as-services, or external clouds. It seems that the cloud is a great concept, but it's either too hard to administer, or something, because people keep hoping that some external provider will do it right and they won't have to figure out how to host it, or use it.

    They use it like Carlos did, and just sprinkle bits of cloud farts over their app, hoping it ends up smelling like roses, and it doesn't.

    You'd be far better off hosting your own cloud, getting some cheap servers from tiger direct and hosting your own local cloud or even using a WAN to help it survive local problems. Anyone have any good advice for doing that? What problems have you found with this approach?

    Threaded Messages (8)

  2. "Goodbye Google App Engine"[ Go to top ]

    GAP might be a good start, but it is not really a viable platform for Java enterprise applications. There are just too many restrictions: can't write a file, start a thread, etc... you would not be able to do a lot of things that are taken for granted in the Java world even if you are on Spring and don't need a Java EE app server.

    VMforce so far looks much better, but this is just from a brief review, I'm not claiming concrete experince with either.

    Cheers,

    E. Conde
    Lead Develop
    jBilling.com - Enterprise Open Source Billing 

  3. "Goodbye Google App Engine"[ Go to top ]

    Hmm... to be honest I haven't used GAE or VMForce, but in assessing the various cloud options available, GAE did tickle my interest a fair bit.

    One of the major concerns I have always had with the cloud environment was with regards to security and how it could be implemented well. In most environments I worked in, security does play a significant role and of course having our apps sitting in a PZ ensured that to some extent they were protected from malicious attacks. The cloud basically meant that we were in a shared environment, where one could load a malicious application within the same infrastructure and attempt to breach the application. This in essence makes it a bit more riskier for us.

    GAE with it's limited set of functionality on certain specific operations does seem to address this to some extent. By limiting the APIs that are available, it does reduce the likelihood that someone could load up a malicious app within the infrastructure and attempt to break through to the application. This alone to me has been the biggest selling point as far as the environment is concerned. 

  4. "Goodbye Google App Engine"[ Go to top ]

    The cloud basically meant that we were in a shared environment, where one could load a malicious application within the same infrastructure and attempt to breach the application. 

    Could you elaborate this (esp. in an EC2 environment)?

  5. I agree that GAE is not a great fit for someone who is trying to build a standard Java web app, with RDBMS, local files, and back ground threads. But then again, the built-in scalability, elasticity, megastore, etc make it a great fit for building high scalability web applications. To succeed in the high scale arena you wind up needing to change your data model in a typical DBMS to be more like the megastore approach. Using task queues is more appropriate than spinning up new threads per request. Etc.

    Whenever you choose a tool, you need to learn the right architecture for the tool. When we moved from btree indexes to rdbms you needed to learn a new way to structure data. The early J2EE vendors and users who migrated the thick client OOD to create EJB apps wound up with HUGE performance problems because of the fine-grained remote object calls.

    Saying GAE is not appropriate for Java web apps is like saying a screwdriver is not a good choice for pounding in a nail. Learn how to use your tool correctly, or choose the right tool.

     

    --

    David Rader

    allianceglobalservices.com/blog/drader

  6. URL doesn't work[ Go to top ]

    Unfortunately, looks like blog post URL doesn't work. Could someone fix it?

  7. Here it is[ Go to top ]

    http://www.carlosble.com/?p=719

  8. Too far[ Go to top ]

    Hi, I don't know how this has gone that far. I've written another post as a reply to many comments:

    http://www.carlosble.com/?p=722

    I hope when we go live with our project we get the same traffic than with this post :-)

    Thanks

  9. "Goodbye Google App Engine"[ Go to top ]

    I think I will wait until GlassFish 4 gets to GA status with its vm clustering capability... Creating a custom private cloud, that can expand/shrink depending on load, is very easy this way. And there are enough companies that can sell me vm services.