If I had a dollar for every time I heard someone complain about their Cloud bill…

Thomas Soares
Software Architecture in the Clouds
3 min readJun 14, 2019

…I wouldn’t be writing this damn blog. Seriously.

And I don’t think it is just me — there is a whole sub-industry of products and consultants dedicated to helping organizations get control of their Cloud spend. It is a thing. Ouch.

But is the Cloud really expensive? And does it have anything to do with Software Architecture?

If fairness to the cloud providers, not all of the complaints about cloud spending are valid. I sometimes hear people say, “It costs what?!? I could buy a server for $X!” That may be true, but for a proper apples-to-apples comparison you’d need to look at the fully-loaded cost of a host-your-own-server solution. You’d have to include the cost of little details like rack space, power, and bandwidth. And you’d have to add the cost of ancillary services, like patching and monitoring. And possibly the cost to support geographic fail-over, and so on. So just looking at the purchase price of a server isn’t a valid approach.

I sometimes also hear people complain about the cost of a specific cloud vendor. “Vendor X is expensive, we’re thinking about switching to Vendor Y,” as if that is going to solve the problem. Now I’m sure that you can find cases where an apples-to-apples comparison between two cloud vendors will show that one is more expensive than the other — prices aren’t always strictly equal. And indeed, for a particular workload you might save money with one vendor versus another. But I think that such price differentials do not really account for the pain and suffering that is being endured out there. Organizations aren’t complaining about their bills because they’ve accidentally stumbled into using a pricey cloud vendor.

So what is the problem?

I think it has a lot to do with how organizations use the cloud. You can certainly spend a ton of money in the Cloud, quickly and easily. And if you aren’t careful, you probably will spend a ton of money in the Cloud. But you don’t necessarily have to.

I would liken it to air travel. Is it expensive to fly? It can be, especially if you wait to the last minute and buy a seat in first class. But it doesn’t have to be. If you put in some care and effort, you can fly for a reasonable price (albeit perhaps with a bit of discomfort). You will always be able to point to less expensive options in terms of absolute dollars — like taking a train — but there are extenuating circumstances that make those cheaper option not so great (the train takes forever).

The Cloud is analogous to air travel. It can be expensive, but it doesn’t have to be. You definitely need to put in some care and effort to use it economically, which may cause a bit of discomfort. And there are alternatives that may seem less expensive when viewed from a certain perspective, but don’t quite match up when viewed in toto.

Undoubtedly though, there are many organizations that feel they are spending too much on the Cloud. And they probably are. But I would guess that many — if not most — of them could be spending less. It just isn’t necessarily easy to do so.

Which brings us, in a rather circuitous way, to Software Architecture.

I should hasten to say that bad architecture isn’t the cause of big Cloud bills, and good architecture isn’t a silver bullet that will solve the problem. It takes effort — and sometimes learning things the hard way — to use the Cloud effectively.

But Software Architecture can help. I defined Software Architecture previously as a process that “constrains the solution space” of your software development project. If you’re building a solution that will run in the Cloud, constraining your solution space is an important thing to do because it is way, WAY too easy to build cloud solutions that aren’t economical. And, unfortunately, it is often the case that the easiest way to build something in the Cloud is not the most economical. A robust Software Architecture process should can — and should — be a key part of an organization’s overall strategy for using the Cloud in a cost-effective manner.

Next time you hear someone complain about their Cloud bill, keep that in mind. They probably are paying too much, and they probably could be paying less if they changed how they use the Cloud.

--

--