THE SQL Server Blog Spot on the Web

Welcome to - The SQL Server blog spot on the web Sign in | |
in Search

Buck Woody

Carpe Datum!

Pay in the future should make you think in the present

Distributed Computing - and more importantly “-as-a-Service” models of computing have a different cost model. This is something that sounds obvious on the surface but it’s often forgotten during the design and coding phase of a project.

In on-premises computing, we’re used to purchasing a server and all of the hardware infrastructure and software licenses needed not only for one project, but several. This is an up-front or “sunk” cost that we consume by running code the organization needs to perform its function. Using a direct connection over wires you’ve already paid for, we don’t often have to think about bandwidth, hits on the data store or the amount of compute we use - we just know more is better. In a pay-as-you-go model, however, each of these architecture decisions has a potential cost impact. The amount of data you store, the number of times you access it, and the amount you send back all come with a charge. The offset is that you don’t buy anything at all up-front, so that sunk cost is freed up. And financial professionals know that money now is worth more than money later. Saving that up-front cost allows you to invest it in other things.

It’s not just that you’re using things that now cost money - it’s that the design itself in distributed computing has a cost impact. That can be a really good thing, such as when you dynamically add capacity for paying customers. If you can tie back the cost of a series of clicks to what a user will pay to do so, you can set a profit margin that is easy to track.

Here’s a case in point: Assume you are using a large instance in Windows Azure to compute some data that you retrieve from a SQL Azure database. If you don’t monitor the path of the application, you may not know what you are really using. Since you’re paying by the size of the instance, it’s best to maximize it all the time. Recently I evaluated just this situation, and found that downsizing the instance and adding another one where needed, adding a caching function to the application, moving part of the data into Windows Azure tables not only increased the speed of the application, but reduced the cost and more closely tied the cost to the profit.

The key is this: from the very outset - the design - make sure you include metrics to measure for the cost/performance (sometimes these are the same) for your application. Windows Azure opens up awesome new ways of doing things, so make sure you study distributed systems architecture before you try and force in the application design you have on premises into your new application structure.

Published Tuesday, April 10, 2012 7:53 AM by BuckWoody



AlexK said:

IMO the following statement is controversial: "financial professionals know that money now is worth more than money later. Saving that up-front cost allows you to invest it in other things."

IMO it is not as clear cut as you put it - under many circumstances it is cheaper to own than to rent. Do you follow your own advice, Buck? Do you own a car, or do you rent it? Do you own a house?

April 10, 2012 11:11 AM

Buck Woody said:

Hello Alex - Of course things are different based on conditions. I think I state that in the article. But you do bring up an interesting point - is money now really worth more than money later? If it is put to work, yes. Every time.

Now, as for renting or buying, you're mixing metaphors. Money now is worth more than money later - but nowhere do I imply that you should use the cloud over something you buy! I'm saying that *when you do*, think about the cost implications. In some cases I've steered people to use an on-premises system instead of Azure - because the numbers didn't make sense to do it another way. In that case, money now (the money they saved) was worth more than money later.

And no, I don't always follow my own advice. Nor does anyone, I'm afraid. :) Still learning every day.

April 10, 2012 2:17 PM

martin said:

Maybe we should think of a prepaid system like we have in telecom?

April 10, 2012 3:20 PM

AlexK said:


I misunderstood your reasoning. Thank you for the explanation.

April 10, 2012 3:45 PM

Buck Woody said:

Alex - no worries! Feel free to call me out on stuff *anytime*. Mistakes are sometimes my speciality. :)

Martin - you actually can do exactly that - it's called an EA agreement, and you pre-pay for Azure time that way, and get a break on the price.

April 10, 2012 3:52 PM
New Comments to this post are disabled

About BuckWoody

This Blog


Privacy Statement