The Tyranny of the Parts
Vendors who say they're only providing one layer of the SDN or NFV vision have little to contribute.
We all know that everything in IT and networking today is made up of a bunch of cooperative pieces. You may visualize a network as a "black box," but it's really a zillion boxes connected with a lot of services and managed by a whole array of software elements. All that complexity cries out for simplification, of course--and we may be doing it wrong.
Virtualization is abstraction plus instantiation. We have the cloud because we can abstract computing into something that can be mapped to various resources (i.e., instantiated). We have the Internet because the sea of websites and the array of IT plumbing is represented by a simple interface. That's the kind of simplification we all love. But what if all we had for the cloud, for the Internet, was just a little box? Does anyone think that the whole of either (the cloud or the Internet) can be built from the sum of one part?
I was at the SDN World Congress in October and I was amazed at the number of vendors who showed their "SDN" (Software Defined Networking) or their "NFV" (Network Functions Virtualization) strategy, and for it presented only one piece. You go to their booth and ask a few questions about where this or that is done, and you hear, "That's in the higher layer", which of course they don't provide. So if nobody does the "higher layer," then where does this stuff get done? Maybe in some black box somewhere?
All forms of virtualization must, first and foremost, be complete, in the sense that the set of abstractions matches the problem set; and also must be complete in the sense that all its abstractions are fully realized upon resources. We can't have a piece of SDN or NFV; what we'd have is a piece that could be part of SDN or NFV--but isn't until there's a whole SDN or NFV to be a piece of. Absent this simple truth, something that took in your data and ate it could be called "the cloud". You'd be unlikely to pay for it of course, and it's unlikely anyone will pay for a sip of SDN or NFV either.
So why all this PR effort around offerings that amount to nothing (because it takes more pieces than what they provide if you're going to make a "something")? First, vendors love PR. There's nothing more wonderful than seeing your company or your product splashed across the headlines, sending waves of eager buyers to your website without you having to make a single sales call or executive speech. Not only that, this sort of mindless bull has no inertia to overcome in order to get started. It takes years to craft a product, but a good half-hour of creative thinking will get you good ink.
Second, to realize virtualization in a complete sense is a major challenge. At least to date, the cloud isn't a perfect model of a computer abstraction because it's not perfectly instantiated on resources. In a real data center, we have predictable performance, familiar management principles, and fairly clear rules for accountability of the parties. In the cloud of today we have best-efforts services, incomplete and incompatible management even of the same applications, and it's the Wild West in terms of responsibility.
SDN and NFV are working themselves toward the same imperfect state--and the reason is our brains and how they work.
People are task-oriented. We plan our days as a series of successive activities, and we tend to push new stimulus off till the old stuff is handled. Computer science calls this a "FIFO" or first-in-first-out" sequencing of activity. But mowing the lawn while your house is on fire is an example of where FIFO thinking breaks down.
In complex virtualization systems, which is everything we've invented recently, you can't couple your deployment, operations, and even services into nice orderly lines and expect it to work. Why? Because a list of tasks imposes a sequence of processing, and the world of the future is about dealing with events, which have no inherent sequence.
Our IT today is built around things like Enterprise Architecture and Service Oriented Architecture and workflow engines and service buses. All that this stuff is doing is recognizing the linear notion of human planning and imposing that notion on automated systems that have to make our disorderly world into something we can manage. But, as in the FIFO example above, this is unsustainable--if your process requires that you always mow the lawn before moving onto new tasks, in the event-based world you'll wind up letting your house burn down.
We need some new thinking here. We need to frame all our revolutions in a complete picture of what we expect--the abstraction--and a complete picture of how we'll instantiate them. One bee can't make honey (or other bees, for that matter). The end product is achieved only by the complete system that creates it.
To bring this back to the problem with SDN vendors: You don't have SDN just because you have software, nor do you have NFV because you know what OpenStack is.
We do need some linear thinking, though. We need a line connecting the high-level vision to the low-level fulfillment that passes through all the required elements, and then and only then can we say that we have that high-level vision fulfilled. In the cloud, in SDN, and in NFV, we're not quite there yet. There are some clear steps north of those SDN northbound APIs, some functionality that goes inside the newly announced NFV structures. We'll have reached the Promised Land when we've kept all the promises.
Follow Tom Nolle on Google+!
Tom Nolle on Google+