Cloud Principle #4: Ease of Assembly

Finally getting around to my fourth cloud principle: In the cloud it should be easy to consume and produce web services. When you build something in the cloud, you should be able to focus on the essential innovation of your site or service and be able to rely on other web services for everything else.  Conversely, it should be easy for you to expose any part of your site or service as a web service that someone else can consume.  Together this is what I call “ease of assembly.”

We have made huge progress in this area, but much still needs to be done.  First the progress.  There was a time when programming languages consisted (almost) entirely of the primitives of the language and developers were essentially starting from scratch every time.  By contrast, most of the languages in common use today come with extensive libraries that facilitate reuse of large chunks of code for complicated tasks.  In the last decade we also managed to come up with ways of delivering such functionality over the web in the form of a web service.  For some tasks this is a big improvement over using libraries, as the web services bundle more functionality and run on someone else’s hardware. For instance, take the problem of finding references to companies in an XML document.  Sure you could take an XML library, load the document, look for keywords, maybe check those against a database over company names, etc. or you could use Reuters’ Open Calais web service which does it all for you.

Now for the still to do part.  While consuming web services at a basic level is very simple – often a few lines of code, when you do it at scale and in something that might be a commercial offering there are lots of things you’d like to get that those few lines of code won’t get you, such as stats on your requests (how many did you send? how many errors were generated? what was the response time? etc).  Producing web services at scale is even harder.  Now you need to deal with issues such as authentication, throttling requests, potentially providing an SLA, etc.

Startups such as Mashery are beginning to address some of these problems.  But consuming and producing web services is a crucial aspect of cloud computing and so these should be features that are integral to a true cloud platform as opposed to requiring an add-on service.

Loading...
highlight
Collect this post to permanently own it.
Continuations logo
Subscribe to Continuations and never miss a post.
#cloud