The Infrastructure Dilemma
Over the last decade of running my business, I found very few companies which value Infrastructure as an asset. Most companies think of Infrastructure as something that just needs to be there and working, and that management can apply typical money saving strategies on it as they would apply to anything else they see as a commodity. Well, basically they are right — Infrastructure is a commodity. But the thing is, you always get what you pay for. You can put pressure on the Infrastructure budget and squeeze out the last cent. And that’s what’s actually happening for most of the Infrastructure departments out there.
Somehow, this is a chicken — egg problem: what was first? The bad performance of the Infrastructure department, or the budget constraints they need to deal with every quarter?
The delay on the important projects business wants better now than tomorrow, caused by the quite long lead times for the infrastructure to be in place, makes it hard for this department to shine. It just costs money. If something fails or is not working, it costs even more money, and again, this department doesn’t shine at all.
Actually, Infrastructure never shines. In the best case, Infrastructure doesn’t disturb anyone. That’s how it’s seen in 95% of the companies I’ve met so far.
The main complaints I’ve heard are:
- Lead times are too high
- Investments needed before it is clear if the product that needs the new hardware will succeed
- Operational costs are too high for what should be a commodity
- Oversized hardware — all components’ hardware is planned for their peak load, which occurs on less than 10% of the time
- New environments for development or new projects take ages
I’ve not seen a single company which solved this problem when they were using in-house datacenters, or rented datacenters, no matter how high the degree of virtualization was.
So, how can this miracle be solved?
Let us think about an ideal environment:
- You can get every amount of computing power, storage, bandwidth, etc. on demand with basically zero days lead time
- You don’t need to invest in hardware upfront, and the infrastructure will scale on your demand
- There are no operational costs for the infrastructure
- You just pay for what you need, and if you need more, you will get more without any lead time
- You don’t need to reserve or order a single piece of hardware to create new environments on demand, which are 100% equal to the production environment
This is every managers dream come true! And by the way, no matter if it’s a business or IT manager….
So, if you would be the one who is responsible for Infrastructure, and operations of this infrastructure, ask yourself these questions: even though it sounds too good to be true, what if you could have that within a few months, or one to two years if it is a larger environment? And if the initial investment you need to throw into changing your software’s architecture would pay back within less than twice the time the change would actually last?
There seems to be no rational reason to not go for it, right?
So, why haven’t you gone to the cloud yet? All of the things listed above which sound so good have been here for at least a few years already!
- Business has an urgent demand and needs more of everything: it costs you a little bit of planning and clicking in a web interface to get everything ready — this may take a day, but not more. I’m pretty convinced that you can do that faster than business comes up with appropriate input for your developers….
- Business doesn’t know if the new product will rocket through the sky, or fail miserably — you don’t care, because the system which development builds will scale without anything you need to take care for.
- Of course business wants to know what it costs upfront. You can calculate this immediately, down to the costs per message/user/transaction, and the initial costs are driven by the development team, not the minimum or maximum hardware requirements.
- If a product fails or has less usage than expected, you don’t have hardware sitting around that is doing nothing, beside generating costs — I’ve seen this problem in many many companies!
- Creating new environment which 100% match production is a no-brainer — you should have scripted the creation of your production environment in the cloud already, simply to be able to re-create it if something breaks, and as a documentation (I do mean that). The changes to these scripts to generate smaller sized (in case you still have some dedicated servers for your last monolith you need to operate), or equally sized environments is a very, very small effort. It takes a few minutes to create a new environment with such scripts, and if development don’t need them any more, you tare them down with a single click.
- Oh, and by the way, if your development or test team work 9 to 5 (or test in even smaller time frames), no worries — you just pay if they actually do something on the environment. If they do nothing, you basically pay nothing.
So what are you waiting for?