Who ultimately cares about efficiency? People who spend money, that's who. In your own house you care about energy efficiency as it will be directly impacting your bills. If you are responsible for a datacenter and in charge of buying hardware you do care that the equipment is used properly and not just idling. However, unlike your house where you both provide efficiency and use the facilities, datacenter owners are rarely users of their own devices.
How come? It used to be the case a long time ago that people who were building datacenters built them with the specific purpose – to run applications their company needed. They bought hardware, installed software and ran applications, often they were the same people or at least one team. With time services became more and more specialized and a new generation of IT administrators developed whose main job was to provide good operational support for computing facilities but not actually use them. So a new term appeared, application owners, people who run applications using data centers as some kind of a service.
Now, due to modern trends yet another specialty is rapidly gaining success: DevOps. If you ask 10 people what DevOps is you will hear 10 different answers. But if you look closer, there is one interesting thing: DevOps resembles those old teams who used to do everything in the datacenter: buy hardware, install operating systems, configure, install and run applications, manage their performance. With one notable exception: they don’t buy hardware and rarely use bare-metal, they run on top of some virtualized environment and/or cloud.
Good that we are coming back to the more efficient teams. But while they are efficient in their job, the datacenter hardware efficiency is becoming even a bigger challenge. As datacenter owners are becoming farther and farther from users of their facilities it is becoming more and more difficult to justify hardware purchase. How to measure efficiency? A popular metric as we discussed is resource utilization. But if the only thing you care is resource utilization then bringing it to high levels will introduce huge performance risks in shared virtual environments. To avoid these risks you need to be aware of the workload demand but it is now in the hands of DevOps.
So what is the solution for that? You could give more and more power to DevOps teams and they will be eventually responsible for making hardware or public cloud purchasing decisions. So they will effectively own a datacenter. Organizationally it is probably a good thing, less bureaucracy, more control. But DevOps discipline has been fairly simple: this is my application, it needs these resources, so I need to buy specific amount of hardware to satisfy my app demand. Now if you give them hardware budgets and buying power they will be responsible for efficiency. This is good, this is now like our own houses.
But the problem didn’t actually become simpler. Unlike 30 years ago when a team needed to run a new application it was just buying a new host, hardware these days is shared among thousands of pieces of the workload. How to make it efficient and performing well at the same time IS the ultimate task. And even if you combine two teams, datacenter owners and app owners into a single DevOps team they still need a way to solve this task. How?
And if this host and app break down
You will be the sweetest team in town…
Image source: Martin Lawrence as Big Momma carrying another host home for you in her bag in the epically epic, Big Momma's House