Explainer Software-Defined Infrastructure (SDI) has, in a very short time, become a completely overused term. Roughly a year ago I discussed what SDI is. As the individual components of SDI have started to become automated the marketing usage of the term has approached "cloud" or "X as a Service" levels of abstracted pointlessness.
Understanding what different groups mean when they use the term "software-defined" means cutting through a lot of fluff to find it. Ultimately, this is why I chose to eventually use the term Infrastructure Endgame Machine to describe what I see as the ultimate evolution of SDI: the marketing bullshit has run so far ahead of the technical realities that describing theoretical concepts can only be done using ridiculous absolutist terminology like "endgame machine".
I don't think even tech marketers are willing to go there quite yet.
In order to understand the problem with "software-defined" anything, let's start the discussion with the most overused subterm of all: Software-Defined Storage (SDS).
All storage is software-defined. To my knowledge there isn't a single functioning mercury delay line left on the planet, and that might arguably have been the last truly mechanical storage device. Barring a few bits of tech history I don't know about, everything since the mercury delay lines have been driven by software.
Hell, a simple hard drive or flash disk today contains more computing power – and more software – than we used to send people to the moon! Can you imagine what an early NASA could have done with just the flash controller in a modern SSD? Let alone the SSD itself!
From a technical standpoint then, the term SDS is complete nonsense. Despite the meaning of the words having no relevance, the term means something very specific, at least to a certain group of very motivated people. Depending on who you talk to, they'll talk about "commodity hardware" or "hardware independence", "storage gateways" or "storage overlays".
What they mean is simple: they have written software which allows you to use multiple different physical devices to store your data as though it were a single logical device. This is the means by which the SDS peddlers aim to reduce storage giant EMC (and to a far lesser extent NetApp) to ruin, and steal all their margin.
SDS vendors want you to become locked into their software instead of being locked in to EMC's combination of software and hardware. Pure and simple.
How they go about doing this varies, but the end goal is to be able to control everyone else's storage via that vendor's APIs or the storage protocols they present. These SDS companies will then get developers hooked on their APIs. Devs won't have to provision LUNs, create VMDKs or other such things. They'll simply ask the SDS vendor's API for some storage and *poof*, it will find storage that meets the relevant policies somewhere amidst the various devices is has taken hold of.
Of course, hardware peddlers aren't so eager to be marginalised. Scale out storage types have been talking about this for ages. Array vendors are getting in on the game and even the hyperconverged guys are waking up to the fact that "hyperconverged" is a feature, not a product.
Software-Defined Networking (SDN) is another often confused term. It comes in two flavours: virtual and physical, and is often lumped together with Network Functions Virtualisation (NFV) which also comes in two flavours: telco and everyone else.
The two flavours of SDN are not mutually incompatible. Indeed, a hybrid between the two is starting to emerge as the most likely candidate, once everyone is done stabbing Cisco to death with the shiv of cutthroat margins.
Virtual SDN is an overlay network that largely ignores the underlying network hardware in order to provide rapid response and configuration agility regardless of what your local network nazis want.
Physical SDN is the ability to replace almost all of those network nazis with robots, shell scripts and algorithms. Hybrid SDN is the attempt to combine both worlds so that the network has enough smarts that any "generalist" sysadmin or API-fiddling developer can make the network do its thing.
If they break it badly, that's what configuration management and rollback are for (in theory, although actually, don't get me started).
Software-defined really means developer-controlled
But the thing to notice here is the bit about the "API-fiddling developer". When you strip all of the blither, marketing speak, infighting, politics, lies, damned lies and the pestilent reek of desperation away what you have is Amazon envy. "Software-defined" means nothing more than "be as good as – or better than – Amazon at making the lives of developers easy".
That's it, right there, ladies and gentlemen. The holy grail of modern tech CxO thinking. It's been nearly 10 years since AWS launched and the movers and shakers in our industry still can't come up with anything better. Software-defined X, the Docker/containerisation love affair, the "rise of the API", keynotes about the irrelevance of open source and the replacement of it with "open standards" ... all of it is nothing more than the perpetual, frenetic and frenzied attempt to be like Amazon.