Cost efficiency through transparency

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.

Grown up cloud or – why I moved to Solidsoft

With the adoption and maturity of public cloud growing, businesses are changing the critical lenses they use when thinking about deploying applications to the cloud.

During the last couple of years, during which I delivered countless briefings on Windows Azure to businesses across the UK, I found that, broadly speaking, they typically fall into one of three buckets – those who are jumping in head first (a clear minority, mostly composed of start-ups and very small ventures), those who object completely (another minority who see public cloud as too new, to risky, to flaky, too different, not different enough, or any number of other reasons) and the vast majority who wanted to explore further, albeit with some caution.

This third group, the majority, and a very diverse group, wanted to criticise public cloud from a point of knowledge, to get some first-hand experience, and it’s members usually sought a project or two which were small enough and contained enough, which provided a fairly narrow and well defined profile of risk, and gave it a go. some took it further than others, but, generally speaking, failure was almost always kept as an option and the cloud was treated, to a degree, at an arms length.

I’m a curious, yet conservative, guy, and I can subscribe to this view very well – a child who’s been given a new toy and wants to poke it around a bit, see what it does, see if it’s fun, before deciding to its worth welcoming this new toy to the group of favourites, maybe even chucking away some of the old ones to make some room. It all makes perfect sense.

This poking around business, though, meant that, until recently, most have taken a fairly uncommitted approach to public cloud and have not yet started to look at what it means to take public cloud seriously. They have not yet made place in the pram for the new toy.

I sense that there has been a real change in this respect recently, driven partly by the maturity of the public cloud platforms and the surrounding technologies but largely because businesses, who have seen the benefits of the cloud either first hand or by observing others, are now starting to seriously commit to adopting public cloud as mainstream.

What this means is that the scope of the discussion around cloud computing has to be much broader than it has been so far, and the proposed solutions have to be more comprehensive.

These ‘grown up’ cloud solutions need to ensure that, with the great benefits that public cloud bring in cost, flexibility, agility, collaboration, focus, etc, the other aspects of the enterprise IT landscape such manageability, supportability, end-to-end security, etc all looked into in detail as well.

Grown up cloud takes into deep consideration the fact that what gets deployed into the cloud has to remain deeply connected with everything else – whether it is integrating parts of a solution that spans cloud and on-premises, integrating an application in the cloud to the rest of the enterprise or indeed connecting together multiple cloud tiple platforms into one coherent end-to-end solution.

Be it EAI and/or B2B, or a single application that spans cloud and on-premises, one has to think about how a versioning strategy would looks like, how would an IT estate that spans my data-centre and multiple clouds be managed? how does logging monitoring look like? what’s the back-up strategy? all these questions, and others, have to be looked at as part of a mainstream solution in the enterprise, cloud-or-not.

Of course this sounds very old-school, it is. but it’s, arguably, carries increased importance as organisation not only deploy applications to public cloud in an ever increasing velocity (and ferocity?) but actually as there’s a big move from build to buy, from manage to subscribe, all drive not only a move to a cloud platform but, indeed, to multiple cloud platforms.

In my personal story, this is exactly why I was delighted to accept a position as a principal consultant in Solidsoft’s CTO office, after a couple of great years in the Windows Azure space at Microsoft.

My role as a technical specialist for Windows Azure was absolutely brilliant, I love Microsoft as a company and as a place to work at, and I absolutely love the technology it delivers. I enjoyed (almost) every bit of my two years at Microsoft, but, for me, there was one big downside at this point in time – in this particular role, one does not get to walk along ones customers long enough to touch on everything that matters.

In that role, you work with customers as they make their first steps – you work with them to define their needs, you bring your understanding of the platform and mix it all together to get a view of a solution on the platform, at which point you, typically, pull out of the conversation somewhat and let the customer, often with the help of a technology partner such as Solidsoft, get on with delivering the vision.

Admittedly this has many advantages, but it also carries some disadvantages – and at this exciting time for software development in the enterprise I wanted to be firmly in this other part of the conversation – where both functional and non-functional requirements are digested in detail and translated into a complete solution, which is then built in a way that ensures it is is fully integrated with the rest of the enterprise fabric, that delivers long term benefits to the business, and that just works, and I could not think of a better place in the UK to do just that other than Solidsoft.