Tuesday, February 12, 2013

Principles of SaaS

Over on InfoQ you can find a recent presentation from Anne Thomas Manes that covers what needs to be considered when building applications that should run as SaaS, i.e. how do you make an application “cloud aware”. The presentation had a surprising architectural focus in which Anne took the a set of desirable cloud characteristics such as elasticity and on-demand and then derived a set of principles from these, i.e.:

  • Latency Aware
  • Instrumented
  • Failure Aware
  • Event Driven
  • Parallelizable
  • Automated
  • Consumption Aware 

From these she went on to show the patterns that enable these and the anti-patterns that get in the way. One of the themes that ran through the talk was that architectural decisions made in the design can have large impacts on the costs incurred in running the SaaS application - using the wrong pattern can be very expensive!

I was particularly interested in the principles. As far as I can see they’re a good set and I’m glad that Anne has succinctly described them. My gripe though is that they only address what needs to be done in writing a SaaS application. They don’t cover what needs to be designed in so that the application actively exploits the advantages to be gained by running it in a cloud. It is a bit like saying that a car should have wheels. True, but to be able to exploit the potential rapid transit times offered by a modern road infrastructure you need to design in that the car is quiet and stable at high speeds.

This kind of thinking is especially acute in the enterprise IT world, where many are only looking at moving their existing applications “as is” into the cloud (this is implicit in Annes talk), rather than looking to see what extra potential a cloud based solution could bring. Effectively they are not asking the question “Who could be the customer for my SaaS solution?” and defaulting to thinking that it is the same as before, i.e. their own staff.

With this in mind I’d like to explore in the next posts some of the design principles that could be - or should be - built into SaaS offerings so that the migration into the cloud can bring something extra.

2 comments:

What is SAAS said...

Thanks for any other great article. Where else may anyone get that kind of info in such a perfect method of writing? I have a presentation subsequent week, and I’m at the search for such info.

Unknown said...

Brief article Andrew! Those points you listed above are nonetheless true but it would have been better if you could elaborate each more even for just a few sentences. But whatever, still informative! Thanks for sharing this. I have heard about http://lirik.io/ and the wonderful Cloud SaaS service they offer. I bet they abide by those principles of SaaS you presented!