February 12, 2013 Leave a comment
There are many aspects to the cost saving argument for cloud computing. in the past it was suggested too often that cloud could bring head-count related cost efficiencies. I never subscribed to that view and I no longer hear it mentioned as frequently. Cloud does bring a shift in the focus of existing resources, allowing them to invest more in where it matters – the application – and less in mundane tasks such as maintaining hardware, which is very handy indeed, in particular given that, in today’s economic climate, most organisation are having to run quite lean anyway, but that’s a topic for another post.
Other aspects of cost-saving to cloud computing can be more concrete and accurate, such the reduced cost of hardware and resources, the efficiencies in the very modern data centres, etc.
But there’s one aspect of cost saving Windows Azure brings, that, although not the biggest, is the one I find most interesting and one that can have a big impact on how software is conceived and designed, – the accuracy and transparency about the cost of running a specific solution or even individual solution components on the platform.
This is not wholly novel, but in most organisations I’ve had a chance to work with over the years, the cost of running IT was never broken down to a low enough level to allow management to estimate the cost of running any particular solution. In fact – in many organisations IT is budgeted annually and then, to some degree, that aspect is forgotten about, until the discussion of next year’s budget that is.
This comes up often in the early discussion about Windows Azure when the pricing calculator is used to estimate the cost of running any application on Azure, which is then contrasted with whatever estimates exist for the cost of running said application on-premises (or elsewhere).
Having a reasonably accurate view of the cost of a solution often forces a debate that otherwise would not have occurred or may only occur much later. This can be daunting at first, but over time this undoubtedly leads to more informed, and thus better decisions on what to run, how and when.
Similarly, when purchased through an Enterprise Agreement Windows Azure allows customers to set up their own subscriptions at a very granular level, used well, this can provide a very accurate, and almost in real time, view of the costs associated with each application, allowing the organisation to make better decisions on where to invest and at what scale and may even encourage businesses to try things they may have not tried otherwise.
For development teams a new, and quite interesting, aspect when designing solutions is introduced – designing for cost. one can get quite hooked up by this, which is a risk project managers will do well to manage closely, but with the clarity of the costs associated with solution deployed on PaaS platforms such as Windows Azure, one can consider multiple design options and optimise for costs as necessary. a consideration that rarely made it to the early iterations of a project before.
For example – knowing that every poll on a service bus queue to check if a message exists counts towards the cost, whether a message was found or not, coupled with a clear cost model for said queue, and with a platform that scale as necessary and automatically, one is equipped to decide whether implementing a truncated exponential backoff pattern is justified by the expected savings this would bring.
Of course, the total cost of ownership of an application is bigger than just the development, hardware and licenses, and factoring elements such day to day operations and maintenance is harder; more so with seemingly less known paradigms such as cloud computing, where operations could, and should, be done slightly differently, but the former are a good starting point and models begin to emerge to help organisation define the cost cost of running cloud solutions based on their size and componentry and these would help as will experience, of course.
Managers also have to consider the new balance between the options available to them – facing with a throughput problems, for example, managers need to consider whether tasking a developer with improving the performance of an application is more cost-effective than scaling the application out further. the latter option rarely stacked up before public cloud, but now makes perfect sense.
The transparency that Windows Azure brings into the cost of running a solution can have an effect on several aspects of software development, each may lead, on its own right, to cost savings.