Waxy.org
Waxy.org is the sandbox of Andy Baio, a journalist/programmer living in Portland, Oregon. I'm the CTO of Kickstarter, created Upcoming.org, and some other stuff too.

Contact Me: log@waxy.org or waxpancake on AIM

Exclusive: Google App Engine ported to Amazon's EC2

Posted Apr 14, 2008 (Updated Apr 20, 2008)

One of the biggest criticisms of Google's App Engine have been cries of lock-in, that the applications developed for the platform won't be portable to any other service. This morning, Chris Anderson, the Portland-based cofounder of the Grabb.it MP3 blog service, just released AppDrop — an elegant hack proving that's not true.

AppDrop is a container for applications developed with the Google App Engine SDK, running entirely on Amazon's EC2 infrastructure. Just like Google's Appspot, anyone can use a modified SDK to deploy their App Engine apps directly to Amazon EC2 instead of Google, and they work without modification.

This proof-of-concept was built in only four days and can be deployed in virtually any Linux/Unix hosting environment, showing that moving applications off Google's servers isn't as hard as everyone thought.

How does it work? Behind the scenes, AppDrop is simply a remote installation of the App Engine SDK, with the user authentication and identification modified to use a local silo instead of Google Accounts. As a result, any application that works with the App Engine SDK should work flawlessly on AppDrop. For example, here's Anderson's Fug This application running on Google App Engine and the identical code running on EC2 at AppDrop.

Of course, this simple portability comes at the cost of scalability. The App Engine SDK doesn't use BigTable for its datastore, instead relying on a simple flat file on a single server. This means issues with performance and no scalabity to speak of, but for apps with limited resource needs, something as simple as AppDrop would work fine.

I spoke to Chris this morning about his project and where he wants it to go. "AppDrop is open-source just like the Google SDK, so I'm hoping someone will come along and take it to the next level," he said. "It wouldn't be hard for a competent hacker to add real database support. It wouldn't be that hard to write a Python adapter to MySQL that would preserve the BigTable API. And while that wouldn't be quite as scalable as BigTable, we've all seen that MySQL can take you pretty far. On top of that, you could add multiple application machines connecting to the central database, and load-balancing, and all that rigamarole."

While this is only a hack, it demonstrates that App Engine developers don't need to live in fear of Google's reprisal. "The upshot is that if you put a lot of time into an App Engine app, and then run afoul of Google, you have alternatives, even if they are more work."

Update: Chris announced the project on his own blog, with some design notes.

April 20, 2008: Addressing concerns with data lock-in, Google announced that large-scale data import and export for will be coming soon to App Engine.

20 Comments (Add Yours)

Apr 14, 2008
1:18 PM  
Phil Nelson wrote:

Interesting hack, cleverly done by Mr. Anderson. Wonder how long it'll take for someone to make this even easier, and 'fix' the scalability problem. Not long, I'm betting.


Apr 14, 2008
1:20 PM  
Greg Knauss wrote:

I love when stuff like this comes along: all the hand wringing just goes away because someone got off their ass and wrote some code.


Apr 14, 2008
1:21 PM  
kellan wrote:

And presumably if you were very clever you would swap out the flat file for Hbase, or Hypertable so you don't have to pay the penalty of metaphor mismatch.


Apr 14, 2008
1:43 PM  
Mazdak Rezvani wrote:

Shouldn't be too hard to port BigTable class interface to Amazon SimpleDB!


Apr 14, 2008
2:19 PM  
Asa wrote:

What about data? If you have a bunch of users of your app on Google, will you be able to get your data out and use it on EC2 instead?


Apr 14, 2008
2:28 PM  
Chris Anderson wrote:

Thanks for the write-up, Andy. As far as data export goes, I think the standard we'll see is people writing web-service layers with XML, JSON, or CSV export support, into their App Engine apps. Then they can download from big table and upload to App Drop, or vice versa, without worrying about the backend.


Apr 14, 2008
3:19 PM  
Yousef Ourabi wrote:

I think (I believe) this misses the point of the lock-in concerns.

Porting the python/wsgi code is *trivial*

Getting the data that is already in Big-Table out, and migrating away is *not* especially when there is a 10 second time out on any script that runs on GAE...

So this doesn't really prove anything at all -- in fact it answers the wrong question.


Apr 14, 2008
3:22 PM  
Edward O'Connor wrote:

In what way is this an exclusive? Chris already posted to the appengine list & blogged about it himself.


Apr 14, 2008
3:27 PM  
Chris Anderson wrote:

Edward - After Andy encouraged me to go through with this hack on Friday, I told him I'd give him the scoop on it, so I waited to announce it until his article went up. I guess that makes it exclusive. Can't keep a secret forever...


Apr 14, 2008
4:16 PM  
Andy Baio wrote:

Edward: What Chris said. I was the first to write about AppDrop and the first to interview him about it. And, for a short time after I posted, my site was the first result for "AppDrop," since the official site hadn't been indexed yet. Exclusive!


Apr 14, 2008
4:44 PM  
max wrote:

Except of the DB storage part there is nothing really new in the appengine. It is a packaging of python libraries and python is a very portable language. If you are not planning to use Google for storage you may as well use a more advanced open source python framework like web2py (http://mdp.cti.depaul.edu) which can seamlessly switch between MySQL, PostgreSQL and Oracle. Here is a video: http://www.vimeo.com/875433


Apr 14, 2008
5:32 PM  
Danny O'Brien wrote:

I wonder how hard it would be to graft hypertable onto it?


Apr 14, 2008
5:37 PM  
Steve Bjorg wrote:

This is missing the point. The whole idea of App Engine is that it complements EC2. See blog post about Cloud Software here: http://is.gd/5wY


Apr 14, 2008
9:42 PM  
pbx wrote:

This is cool. I like Greg's comment: all hand wringing goes away because someone got off his ass. Isn't this always the way!


Apr 15, 2008
12:56 AM  
Gordon wrote:

Put me in the camp that thinks the hand wringing is kind of weird.

First of all, I don't believe that anyone creating applications that live in the cloud expects perfect portability from platform to platform. Whether you're living on Ning, Amazon, AppEngine, or something else, you're working in a sandboxed API that might just happen to look like an existing language runtime. If you're not willing to bind to a provider's cloud abstraction API, then that begs the question of what is acceptable and has semantics that magically port to the universe at large?

Secondly, I fail to see how the complaint in the linked arstechnica article is addressed at all by being able to dump a Google AppEngine app onto EC2. Don't you need to pay for EC2 from the get-go? Additionally, who is to say that the costs that Google will charge will be priced monopolistically instead of competitively with other cloud platforms? It will probably be enough to keep people from abusing its storage and processing capacity, but it will also probably be inexpensive enough to consider seriously, if a developer is truly serious about a project. At least if they're not, hopefully Google will be kind enough to show a "Out of Resources" screen instead of running up a tremendous overage on your account.

So, to me, this is all kind of a silly argument. Promoting the idea that all cloud platforms should speak some form of scripting and data Esperanto is probably just about as effective as filing a bug against the MySQL developers asking them to "work like Oracle."


Apr 15, 2008
6:58 AM  
stwf wrote:

I have to agree with the naysayers. Porting the code will be the least of your problems if you start a popular web service on AppEngine and then want to leave.

You'll be forever tied to using google accounts, the google database etc... which is all they cared about anyway.

So while I like the idea of the AppEngine for small projects and as a learning sandbox, there are still many serious considerations you should make before deciding to use it to host a big time project.


Apr 27, 2008
8:33 AM  
Rocky wrote:

Does using GAE require one to use Google accounts for authentication (or is it optional)? I haven't seen this in the documentation yet.


Apr 29, 2008
1:20 PM  
Bolo wrote:

The scalability issue is a perfect candidate for the Google Summer of Code ;))


Jan 1, 2009
10:30 PM  
Sachin Rekhi wrote:

Very clever. This is exactly what we need to see more of. The lock-in issue with GAE is a serious one and steps like this will help overcome it.


Jan 26, 2009
2:55 AM  
Matt wrote:

Anyone looking for a quick and dirty tutorial to get started with GAE should check out http://www.squidoo.com/Google-App-Engine


 

Leave a comment





Waxy Links
Ads via The Deck
November 7, 2009
Microsoft COFEE, digital forensics tool for police, leaks online — available where you'd expect; sounds like common Windows network utilities with a simple interface
NYT visualizes the unemployment rate for different demographics — 48.5% of young black men without a high school degree; 3.6% of college-educated white women over 25
November 6, 2009
Another World level ported to Javascript — in other emulation news, a NES and Gameboy emulator in JS and SNES9x ported to Flash (via)
Blocktronics' ANSI art tribute to RaDMaN — powered by Viewtronics, Peter Nitsch's gorgeous new Flash 10 ANSI viewer (via)
Aaron Straup-Cope leaves Flickr, joins Stamen Design — one of my favorite geeks joins one of my favorite companies
Unreal Engine 3 development kit now free for non-commercial use — huge announcement, along with the recent free release of Unity Indie
The Big Picture's series on Martian landscapes — Kai's Power Tools in real-life (via)
November 5, 2009
Preview of McSweeney's Panorama, their one-shot newspaper — as expected, looks incredibly great (via)
The Grant-Pattishall Award — congrats, Kellan! (via)
Birdhouse for Your Soul — Greg Knauss finds one small piece of the historical web
Google open-sources Closure Tools — JS compiler, along with Google's huge widget library (via)
Video montage of actors speaking the movie's title — great comments with some missed opportunities; "You talkin' to me? You talkin' to The Taxi Driver?"
The Morning News' Cloud of Atlases — impossible to guess, but look at all the pretty colors
American Airlines fires UX designer for explaining why their UX isn't great — a lapse of judgment from both American Airlines and an employee who cared too much
November 4, 2009
Overheating, photo series of gadgets thrown through walls — from issue 6 of Amusement, the incredible French gaming culture magazine (via)
Ricardo Autobahn's The Golden Age of Video — insane pop culture video mashup
November 3, 2009
The Last Days of Gourmet — sad photo series, reminds me of the dot-com carnage photos
Put This On — first episode of Jesse Thorn and Adam Lisagor's Kickstarter-funded video series on clothing
Jono Bacon's The Art of Community released for free download under CC license — looks fantastic and worth buying (via)
Eric Testroete's papercraft portrait Halloween costume — incredibly creepy, like videogames leaking into the real world (via)
November 2, 2009
Mark Pilgrim's history of the IMG element — told through annotated conversations from 1993 (via)
Every vandalism edit to Nickelback's Wikipedia page — I wonder which edits managed to stay in the longest without detection
November 1, 2009
Mike Pusateri's Halloween costume data collection — for the fifth year, he's collected every costume name; this year, "nothing" spiked to #2
XKCD's movie narrative charts — here's a more serious attempt at Primer's timeline
October 30, 2009
GameCity Squared's 15-Pixel Megamix — extremely minimalist interpretations of 12 different games
October 29, 2009
Lauren McCarthy's Happiness Hat — it measures your smile and stabs you if you're not smiling sufficiently (via)
October 28, 2009
Auto Tune de Nieuws — needs an angry Dutch gorilla
Facebook prank memorializes living person — the Facebook team should allow an email veto, or at least require better documentation (via)
2D Boy's pay-what-you-like World of Goo results wrapup — don't miss the breakdown by OS and country (via)
FreeForm's short film on the Open Internet — impressive set of interviewees, directed by Jesse Dylan of Yes We Can fame

Andy Baio lives here. Some rights reserved, for your pleasure.