In part one of this series on software-defined networking, we discussed how multicore processing has enabled the performance necessary for software-centric networks. In part two, we examine the role of network-centric software in network integration and cloud networking.
Now that software-defined networking has become a reality due to multicore processing and enhanced performance, innovation at the software layer and above will allow for parallelization and virtualization of the network stack. It will also mean open APIs for third-party development, which in turn will result in easily integrated network systems, as well as automation for the cloud.
With software-centric networks, core functionality is implemented in a rich and extensible software layer on top of commodity, or near-commodity hardware. Essentially, the switch or router contains off-the-shelf server hardware, running a real-time optimized operating system -- often Linux-based -- that will offer more ports and power supplies than a regular server. Software-centric network devices may implement many of the design and architecture innovations we have seen in servers in recent years: virtualization, process isolation, parallelization, modularity, extensibility with plug-ins and software portability.
What is network-centric software?
In parallel with the development of software-centric networks, we should see the emergence of network-centric software. That is, software designed to run across a network, so that it is dynamically distributed among software-centric network devices. This is software that will enable automated, multi-tenant cloud networks. Rather than running a monolithic software system on a single network device, network-centric software is based on a distributed architecture with shared state or dynamic state synchronization, resulting in, for example, distributed hash tables across devices.
Further examples of nascent network-centric software necessary for the cloud include peer-to-peer protocols, such as BitTorrent; messaging protocols, such as XMPP; distributed search algorithms, such as Hadoop and MapReduce; and enterprise service bus software, such as distributed XML processing.
Software-centric networking results in third-party development and integration
The biggest impact from software-centric networking comes in terms of integration. Software’s inherent flexibility and dynamic nature make it ideal for implementing integration between rapidly evolving systems. Consider, for example, the case for integration between the network management and virtualization management platforms. Both network management and virtualization management APIs are rapidly evolving -- the latter much faster than the former -- so keeping them in synchronization is a daunting development challenge. In a closed, monolithic software and hardware stack, this becomes a daunting challenge for the network equipment vendor. Also in that case, the end user can only wait patiently for the next release. By comparison, an extensible software-centric network device could theoretically include an integration module that is developed by third parties, the virtualization vendor or even by the end users themselves. As long as the API for plug-ins to the network device remains stable and is well documented, innovation can be diffused among many different parties, accelerating the pace of development and allowing for tighter integration between the network and other parts of the infrastructure.
Software-defined networking innovation will outpace current vendors
Integration and automation will be driving forces behind the adoption of software-centric networks. The rate of change and enormous complexity of today’s networks make it impossible for most vendors to keep up. Furthermore, vendor roadmaps are guided by many motivations, not all of them aligned with customer needs. Sometimes, profits drive vendor decisions that lock customers in and slow innovation down.
Software-centric networking is about more than just shifting innovation from silicon to bits. It’s also about shifting innovation from a single vendor to an ecosystem of software designers and even to the network professional trying to solve a very specific problem. That makes software-centric networks a revolutionary and disruptive technology, because they decentralize innovation and empower end users and developers. In the end, software-centric means user-centric, and that’s good news for innovation, cost and competition.