Steve Wexler raised an interesting question last week: Is SDN revolutionary or evolutionary?
His post touches on a reality that's been bothering me for years. Almost everyone in IT I’ve spoken to in the last three years--from CTOs to admins--has mentioned that network management is one of the biggest impediments to automating the data center. Most are looking to network programmability, and by extension software-defined networking, to solve that problem, yet most have struggled to really make progress toward this transition.
Why? Because thus far SDN has been too revolutionary (read: highly disruptive). Solutions have required buying brand new equipment or deploying overlays. The heart of the challenge lies in delivering interoperability and manageability--both, highly dependent on the size of the ecosystem around a given solution. It’s hard to take one piece of the network and upgrade it by itself. It's all interconnected, by nature. This is especially true given one of the objectives of SDN is to centralize network programmability. The challenge, as Steve correctly points out, is that a rip-and-replace strategy is costly and disruptive. But an overlay model has its own challenges. I've spoken to IT admins who have started deploying overlays and they tell me it can be a nightmare to diagnose a network issue. Most existing tools weren't designed to work with the overlay. Overlay vendors are building tools as fast as they can--and that can help a little--but it doesn't replace the dynamism of a healthy ecosystem. Until a true SDN platform emerges that everyone can get behind, SDN is revolutionary and that inhibits adoption.
The market is desperately clamoring for evolutionary SDN with real, deep interoperability. SDN won't make it big time IMHO until one or more platforms emerge that a large percentage of the industry can get behind. End users need to be able to pick the best network services for their specific needs: security appliances (virtual or physical, although increasingly the former), load balancers etc. They need to be able to choose the network management and orchestration tools for their needs, and the switches that fit their budget/performance requirements. They need to be able to use Open vSwitch, talk OpenFlow, and yes even BGP in a number of cases.
For the foreseeable future most users probably won't be able standardize on any one component, protocol and vendor, even if they wanted to. As a result we need open platforms that provide abstraction layers and support a modular approach. This is especially true when you take legacy technology support as a requirement. At an event last year Andy Brown, who was CTO of UBS at the time, said, “What some people call ‘legacy systems’, we call ‘systems that work’.” People don’t let go of their systems for the promise of something that may work in the future.
The path to SDN has to be an evolutionary one. Open source has the freedom to evolve as networking needs evolve. It’s a bit like natural selection. As Linus Torvalds said of Linux, “What works is what survives.”