A couple of months ago, Duncan Epping wrote a post on requirements of a Software Defined Data Center (SDDC). Note it’s not a post that lists required elements within or that define a SDDC, but rather an editorial that today’s SDDC should be governed by requirements (i.e. policies). The ultimate goal of the data center, whether defined in software or otherwise, is to serve the business users and their demands. Let’s reverse-engineer this argument: if our goal is to serve the demand of the users/applications then we must meet that demand on a continuous basis.
To manage an infrastructure using policies presents more challenges than it solves. Here’s why: think of the number of possible states of your infrastructure. Let’s try to quantify this. Consider an environment that contains 2 hosts, 3 datastores, and 4 VMs. Suppose we only care about the following resources, respectively: memory and CPU; IOPS and capacity; and vMem, vCPU, vStorage. For the sake of simplicity each resource can be used between 1-100%. We now have something to this effect:
At any given time, there are 1004 possible states just on the two hosts in question. That’s 100,000,000 possible states between two hosts with only two resources. Introduce storage: 3 datastores providing just two resources each. That’s 1006 (one trillion, for those keeping score at home) possible states of your storage environment. Multiply 1006*1004 and you have the number of possible states of your compute and storage environments simultaneously. Keep in mind we haven’t even addressed the possible states of the demanders of resources (workloads) in the environment. Good luck establishing policies to account for each possible state of the infrastructure.
Policies: An Expensive, Inefficient Quick-Fix
You can see why this quickly becomes an intractably complex problem. While policies may provide (at best) a quick fix for a specific issue, it’s not a solution for the complex SDDC management problem that plagues nearly every modern data center around the globe. Since identifying and maintaining this dynamic intersection of supply and demand within the data center is so impossibly intricate, the easy remedy for application service assurance is excess hardware. This solution (or rather, problem) is so ubiquitous that the typical data center server operates at about 18% capacity (PDF link).
It’s clear that assuring performance is the goal with which IT organization are most concerned, as is evident by them overspending on capacity by about 5 times. In fact according to that same study, by driving utilization from 18% to only 50% would save U.S. businesses about $3.8BN annually—just in electricity.
The Real Challenge: How Do We Meet Application Demands?
How do we satisfy demand in any situation (assuming demand must be met rather than restricted)? We supply the necessary resources to the consumer based precisely on its needs. In order to prevent too many consumers competing for resources from the same supplier, we create a price curve and the ability for the consumers to be smart shoppers. I, as a consumer, know what I need (a collection of resources), I know my budget (how much of each resource I need), and what each resource costs from each supplier. We now let each consumer find the resources it needs at the best composite price, and let the market do the work. Supply and demand converge and assure that the marketplace naturally finds an equilibrium.
When we replace “consumer” with workload and replace “supplier” with infrastructure, we leverage the ability of the workloads to go out and find the resources they need to deliver service. We don’t need a maze of policies that drop workloads and infrastructure into different buckets and try to organize and manage those silos.
Dynamic Demands Need an Equally Dynamic Control System
An infrastructure’s purpose is to deliver service dynamically and efficiently. It needs a control system that enables the infrastructure and its operators to achieve this goal. Without it, we continue to overprovision and underperform.