What Belongs In The Cloud?
The use of cloud technologies will be high on the agenda for many during 2013. Indeed, Gartner’s recent report listed cloud computing as one of the top three priorities amongst the 2,053 CIOs they surveyed. However the benefits of cloud computing are not always clear and this interesting analysis challenges the idea that cloud offerings will always lower costs. So does cloud computing make sense for all applications? And, if you do choose a cloud solution, which type of offering (IaaS, PaaS, or SaaS and public versus private) will best fit with your needs?
For me this is a very similar problem to the traditionally asked question of when it is best to buy off the shelf software and when it is best to build a new solution. As such I think that Martin Fowler’s recent post on utility software versus strategic software provides some useful insights. He defines the difference between strategic and utility as follows:
“A classic example of a utility IT project is payroll, everyone needs it, but it's something that most people want to 'just work'.
So what is the distinguishing factor between utility and strategic projects? To my mind it's all about whether the underlying business function is a differentiator or not. If how you do this function is a crucial part of what makes you better than the competition, then the software that supports this function needs to be as good as you can make it.”
I also found his comments on the likely split between strategic and utility applications interesting:
“Few projects are strategic. The 80/20 rule applies, except it may be more like 95/5.”
So how can these ideas be applied to cloud offerings? My thoughts on this are easiest to articulate with a diagram:
At one end of the spectrum we have utility applications. For these, publicly hosted SaaS solutions make a great deal of sense. And even if the SaaS offering does not exactly fit your existing business processes, the most cost effective approach may be to adapt the business process, as touched upon by Martin Fowler:
“Often people...buy a package for a utility project, but then spend huge amounts of money customizing this - which is just as wasteful. My view is that for a utility function you buy the package and adjust your business process to match the software.”
As we move along the spectrum to more strategic applications we reach a point where using a SaaS solution is non-viable because it will hinder your competitive edge. Remember, strategic applications are strategic precisely because they differentiate you from your competitors. If your competitors can easily adopt exactly the same SaaS that you use then it cannot be a differentiator.
However, just because your strategic software shouldn’t be SaaS, doesn’t mean that the custom solution you create shouldn’t utilise PaaS. In fact, using a PaaS should allow you to focus more resource on delivering the functionality that the business needs, rather than the platform and infrastructure. It is my view that, for the vast majority of business systems, the platform is non-strategic even when the software is.
One important point to note is that to benefit from using a PaaS solution it must be a good fit with your application architecture. When this good fit is achieved it can allow for incredibly rapid application development and deployment, and built in scalability. When it isn’t achieved you may realise little benefit from a PaaS solution. Hence it is my view that an important architectural question in modern software design is whether there is a suitable PaaS available on which the solution can be built.
If your development platform is truly strategic or (more likely in my view) there isn’t a PaaS which fits your application architecture, then IaaS can still give you some of the benefits in terms of time to market and scalability without the requirement to build your application on a specific platform.
The choice of public versus private cloud solutions cuts across SaaS, PaaS and IaaS. In general I would suggest that utility applications tend towards a public cloud solution whilst strategic applications tend towards a private cloud option. However, in practice, the decision may be influenced far more by other factors such as the sensitivity of data being stored, legal constraints and connectivity. This is why in my diagram I show a large overlap between public and private clouds with them both spanning SaaS, PaaS and IaaS.
There are, of course, many other factors to take into account when determining what you should put into the cloud and which type of cloud solution to go for. However, I believe that the concept of “utility versus strategic” can aid the decision making process. My view is that, in the majority of cases, organisations will benefit most where they use SaaS for their utility applications (and tailor business processes if necessary) and PaaS to underpin the delivery of their strategic applications.
Utilising the best type of cloud offering for each application will bring with it new challenges. As most business systems do not operate in isolation, organisations will need to understand how the different systems in their own “hybrid” cloud will interact. Furthermore, managing the orchestration of these different cloud solutions (and the required connectivity and communication between them) will be critical in order to ensure a high overall combined benefit of these application to the business.