Software-defined networks (SDNs) might be a tough sell to both network engineers and CIOs who must choose whether to implement them.
Most IT professionals who gravitate toward a career in networking do so because they like the simplicity of how networks operate. Hardware components, software, and protocols are highly robust, and the network either works or doesn't. There's very little in between. And there's a reason simplicity is built into networking components. If the network is flaky, so is everything riding on top of it.
The SDN concept seems great on paper. It removes intelligence from networking hardware and centralizes it, so it can be managed in a single location. Traffic routing decisions are made at the management plane level and then pushed out to the unintelligent data plane hardware, where routing and switching decisions are executed. This form of intelligence decoupling has already been applied to controller-based wireless infrastructures that leverage dumb access points managed by a centralized server. SDNs build on that concept and take it to the next level.
The primary benefit SDN advocates like to hype is that centralizing traffic routing decisions offers a complete view of the network from end to end. Because of this, reconfigurations can be managed and pushed out networkwide at once, as opposed to making changes one device at a time along the path where traffic flow changes need to be made.
This is all wonderful, but in most enterprise networks, major data flow reconfigurations are few and far between. The need for so much flexibility and control from one end of the network to the other seems unnecessary for most organizations. In fact, many would agree that a great network design is one where very few changes will be required through the life of the hardware.
SDNs go against the "keep it simple, stupid" mantra by which network engineers live and die. Implementing one could destabilize your network for the sake of flexibility -- a benefit that's not widely needed.
I do admit there are some areas where SDNs would be a great success today. Internet and cloud service providers need the type of flexibility that SDNs offer. Because they have customers who are constantly adding, removing, and shifting applications and data, they need the ease of end-to-end management and configuration. Also, as your datacenter becomes more and more virtualized, I can see the use for central control of its network and storage components. But an end-to-end SDN in an enterprise environment? It's simply not needed.