Tonight I threw up a copy of my personal site, just to see if AppFog is 
worth looking into. Perhaps my experience would have been better if I tried 
during business hours while their live chat support was open, but I don't 
plan to use AppFog after this experience.

The highlights:

   - They advertise unlimited apps, but you're limited by how many apps you 
   can squeeze into the RAM your account gets. Sure, you don't have the hard 
   cap of 10 apps like App Engine (still?) gives you, but "unlimited" isn't 
   really true
   - AppFog's founder wants you to 
believe<http://blog.appfog.com/if-paas-is-expensive-and-slow-why-not-use-a-vps/>they're
 proving PaaS doesn't have to be slow and expensive, but I found 
   AppFog to be slow, and their pricing <https://console.appfog.com/pricing> 
gets 
   nutty-expensive very fast
   - Getting my app working at all was a trying experience, and AppFog 
   doesn't offer much in the way of documentation or debug output to help you
   - No sign of a cron system, so you'll be relying on web2py's built-in 
   cron (didn't check if it works there, but I assume so)
   - All apps have a 100MB disk limit, and I don't see a way to buy more. 
   Better hope you're apps don't get very big!
   - You do have a writable filesystem, for what that's worth with the 
   100MB disk use limit. I didn't check whether all instances access the same 
   FS (that's kind of an important way so design the service)

My conclusion: If you want a free place to host something that (really, 
really) doesn't need to be performant, AppFog is a decent choice because:

   - It has a writable filesystem, which sets it apart from App Engine
   - It has MySQL, which sets it apart from App Engine
   - It looks more likely to stick around than some of the other free web 
   host services that I've seen mentioned here

However, to get that free hosting you'll have to put up with terrible 
performance (or highly variable performance if it magically speeds up by 
tomorrow morning), poor documentation, and a tricky and opaque setup 
procedure.

On to doing stuff, and statistics!

First off, I could not find any links on their site instructing me on how 
to configure a Python app to work on AppFog. I eventually gave up and 
resorted to Googling for a tutorial, which led me to this 
section<http://docs.appfog.com/frameworks/python>in AppFog's docs. Not sure how 
you are supposed to find that.

That link isn't too helpful, though- it shows how to make a Flask site that 
works on AppFog, and links to working Bottle and Django sites, but doesn't 
spell out how to make a generic WSGI site work. To make my simple web2py 
site work, I had to do the following:

mv wsgihandler.py wsgi.py  # AppFog needs wsgi.py. I tried a symlink 
instead of a move, but couldn't make AppFog work in that arrangement
ln -s wsgi.py wsgihandler.py  # This ensures updates to web2py affect your 
wsgi.py
gem install af
af login
af push <appname>  # This gives you an Amazon East app. I can't figure out 
how to use `af` to deploy to a different infrastructure

I tried creating an app on the Rackspace infrastructure through AppFog's 
web admin `af update <appname>`, but couldn't get my app to start. It 
didn't start automatically, and `af start <appname> --debug` tells me I 
don't have the "run" mode available. So no Rackspace for me.

Once I got my app running on AppFog's Amazon EC2 infrastructure (after a 
number of false starts related to not having wsgi.py) I noticed my app ran 
very slowly. The front page of my app doesn't really do anything; it could 
almost be a static HTML file, yet it was unbearably slow on AppFog.

I fired up Apache Benchmark and got some very disappointing results. With a 
concurrency of 50, run for 30 seconds: 

   - 1 instance, 128MB RAM: 139 requests completed, mean average of 10.5 
   seconds to fulfill a request
   - 1 instance, 2GB RAM: 140 requests, 10.8 seconds mean
   - 15 instances, 128MB RAM each: 163 requests, 9.2 seconds mean

For comparison, my site hosted on its usual low-end rackmount server (RHEL 
6.2, 3.1GHz quad-core Xeon, 8GB RAM, Apache with mod_wsgi) completed 3061 
requests with a mean 0.490 seconds per request. Beefier than what AppFog 
gave me? Sure, but not enough to explain handling 22x the requests, with 
1/22nd the response time.

*  The AppFog mean request fulfillment numbers varied by as much as two 
seconds over the several times I ran the tests. That sort of 
unpredictability worries me.



On Thursday, July 26, 2012 9:50:01 PM UTC-4, Joel Carrier wrote:
>
> Has anyone tried running web2py on appfog ( www.appfog.com ) and cares to 
> comment on their experience?

-- 



Reply via email to