SDN abstracts the network control from the underlying hardware. An SDN controller works as the interface between the switches and routers via southbound APIs and the applications via northbound APIs.
The main advantage of SDN – and other software-defined approaches, e.g. WAN or storage – is that as it is a programmable approach an environment can be relatively quickly adjusted to changes and is open to automation and orchestration of network services. This makes SDN an enabler to cloud computing, DevOps and an agile network.
Generally, the three components involved within Software-defined Networking are:
Challenges with SDN are that most environments may at some point include SDN controllers from multiple vendors (e.g. from Cisco, VMware, Microsoft, Juniper and others), which puts the “centralised” view at risk and may not only require additional tools for monitoring and management, but also will increase complexity. While SDN and related technologies like network functions virtualisation have been around for more than a decade, no definite standard has been defined for SDN – as is so common in IT. However, all vendors provide open APIs.
The management of SDN will also require additional skills, preferably combining network operations, network engineering and software development/programming – and will require in most cases extensive training to gain all advantages of software-defined networking.
SDN Solutions promise the benefits of:
Careful planning is required to realise some or all of these benefits; a fragmented environment that is being run mostly on proprietary hardware managed by untrained staff is unlikely to achieve any improvements. Ultimately the success will depend on the combination of the right technology, the right people supported by the right processes.