In the first part, I outlined what made AppFog such an appealing tool for developers. Setup is painless and fast, and there’s a free tier that has a lot of functionality and power. In Part 2, I’ll take a look at some of the other really slick functionality that AppFog offers.
Adjusting the amount of resources available to an app is amazingly easy. Just slide the Instances and Memory Quota sliders and set your desired levels. After adjusting, your app will restart, and your code will be copied to each instance, each one running with their own set amount of memory.
After provisioning your app, you can still easily add-on several useful services:
This can be accomplished in a matter of seconds. To setup a MongoDB store, all it takes is the following:
MongoDB was ready to go almost instantaneously.
AppFog also features a number of external add-ons. Their list isn’t as extensive as Heroku’s, but then again I don’t think anyone’s is. These add-ons are provided by external companies, so I’m not sure if all of them have a free tier available. Like everything else, they are also very easy to setup. Within about 30 seconds I had a MongoDB store provisioned at mongolab.
Overall, AppFog is a pretty slick PaaS, but I would be remiss if I didn’t mention some of the small issues I’ve encountered. I’ve found that provisioning services can be a little buggy at times, as can adjusting the Ram capacity and number of instances for an App. At times these seem to be simple UI issues, but at other times, like when I was recently trying to add a MySQL database service to an app, I kept receiving this error and was unable to proceed:
name: VmcError, endpoint: POST:/services, statusCode: 502, code: 503, description: Unexpected response from service gateway
There was no similar issue when provisioning a PostgreSQL database. Another weird bug: I tried to setup a simple PHP application on RackSpace hardware. The install I ended up getting was the PHP Drupal install. Not a huge issue, and the next time I tried it I got the basic PHP install.
The other issue I’ve noticed is that sometimes I’m not sure if the UI has reacted to my actions or not. After changes are made, I’ve hit Update and ended up with two contradictory messages being displayed for a time: “Unsaved Changes” and “Done”. Which one is it?
I’m going to do one final post on AppFog, outlining a couple of nice tricks and techniques that I’ve discovered and have seen discussed. I’ll link it up here when it’s completed. Edit: It’s now up.