The Golden Middle Path - a blog by Amit K Mathur

Webservices to make application development easy

Last week there was an article on six revisions about Website Features That You Can Easily Offload listing how you can take advantage of web services to lesser the burden on a site.

That prompted me to make a list of web services that an application developer, especially a Rails developer can use to similarly, offload functionality and get away with less code, less maintenance and develop quickly. Here’s what I could think of:

  • Authentication – Even though creating an authentication system in Rails is easy thanks to plugins like Resftful authentication, your users probably hate having to create and remember another login and password. By using OpenId you can allow them to sign using a login and password they already remember, not worry about handling forgotten passwords and actually be more secure.
  • Server side metrics – If you want to collect metrics within your application, there are web services that help you there as well. See Mixpanel and Nuconomy.
  • Server monitoring and alarms – If you don’t want to build a dashboard yourself using Nagios or Munin, one of the best web services product to monitor your server performance is Scout
  • Application performance monitoring – Among the hosted services, NewRelic seems to the current leader for Rails application performance monitoring. Scout would also do it for you in a limited sense. this also looks like a promising upcoming alternative.
  • Uptime monitring – To know if your site is up and get notified as soon as it goes down is absolute key to any business. Keynote, Pingdom are two good choices. Of course, there are many others as well.
  • Exception reporting – probably unique to Rails, is getting notified whenever a user gets the dreaded 500 server error page. If you want more than what Exception notifier plugin can do for you, Hoptoad and Exceptional are two services which you can look at.
  • Sending emails – If sending emails from your server seems like too complicated, or you are seeing your mails end up in people’s spam folders, you can try Google’s SMTP. For a more full featured alternative, try Campaign monitor or Mailchimp.
  • Videos – With excellent services like Youtube, Vimeo and You no longer really need to handle video upload, processing and serving. In fact, using one of these services will be faster for both development as well as for your users.
  • Images – Similarly, with services like Flickr you don’t need to handle photos if you don’t want to. You can even offload profile pictures to Gravatar
  • Payment – Handling payment is one of the trickiest pieces. Almost all the apps end up using one of these services to make it easy. Take your pick from: Paypal, Google checkout and Amazon payments. Then there’s Spreedly especially to make handling subscriptions easier.
  • E-commerce – If you want a service for handling checkouts, order management dashboards, fulfillment and the whole nine yards, check out NetSuite and Shopify
  • Geoocoding and maps – You are probably already using Google maps as a service to embed maps in your application. If you need to do geocoding, try this
  • DB backup and storage – There are umpteen choices for offsite storage. Couple of good ones are Amazon S3 and Jungle Disk but there are many others too.
  • Amazon Web services: I thought AWS deserved special mention since they really have been pioneers of web services. You can find many interesting services here from distributed queue, hosted databases, metering and even on-demand work force.

Besides, there are Rails plugins of course which make developing applications easier ever further. But, since we are considering only web services, they are not listed here.


Post a comment

(Formatting help)