The future of networking is software
Tags: devops, networking, softwaredriven, opensource
Published: 2019-10-14 17:14:20

---
title: The future of networking is software
published: true
date: 2019-10-01 00:30:00 UTC
tags: #devops, #networking #software-driven, #open-source
canonical_url: https://gaveen.me/2019/10/the-future-of-networking-is-software/
cover_image: https://unsplash.com/photos/SwVkmowt7qA/download?force=true
---
**Edit**: _The original post maybe edited since publishing here. Please check the original post if you're reading this much later after the published date._

I believe the future of networking is software. To be a little more specific on my thoughts, I believe the future of networking in the data center is software-based. Water is wet, and on that note, thank you for coming to my TED talk. And, quick PS: clouds are also hosted in data centers.

While what I just mentioned maybe obvious to say—given how pretty much everything has its future in software—you would be surprised at the state of the networking industry if you came to it as an outsider. The cloud has already happened and compute has embraced it with both arms,... and legs, and tentacles, and whatever else you have available. Storage is also not too far behind. Cloud-scale storage technologies are becoming closer and closer to being commoditized[^ceph]. Network—in a way—is the last frontier in the data center not yet fully subscribing to cloud ethos.

Things are certainly changing—more on that later. But, networking vendors are still trying to sell you pricey switches, they are only just now getting serious about DevOps, and their idea of a software-defined network (SDN) is to run a bunch of software on top of their existing traditional network solution stack (i.e., [ASIC](https://en.m.wikipedia.org/wiki/Application-specific_integrated_circuit)-driven expensive boxes + mostly-blackbox [NOS](https://en.m.wikipedia.org/wiki/Network_operating_system)/firmware + ridiculous licensing + exorbitant professional services + consultancy that makes sure you stay with them).

Forgive me for sounding cynical, I am not. I think things should be better though. To that end, let me share a few things and sort-of-predictions I believe of the future, at least at this point in time. However—fair disclaimer—I may have a vested interest in this game. Therefore, take whatever beyond this point as however you will.

***

I believe the future of networking—at least, networking in the data center—is in software. Networking in general is gradually heading that way. Telco industry has learned from what happened with the "cloud fad", and are trying to move towards NFV[^nfv], SDN[^sdn], and SD-WAN[^sdwan] already. But let me focus on the data center (and in turn, cloud), which has been [my work domain](https://gaveen.me/mind-the-air-gap) for a while.

I believe that the enablers of this shift will be multi-fold. For example network virtualization[^netvirt] and network functions virtualization[^nfv] are precursors, and they have already been here for a while. Also, network equipment supporting alternative NOSs have been here for a while. For example, some brand vendors like Mellanox and Dell EMC—as well as whitebox switch vendors—support multiple OSs such as generic Linux, Cumulus, Open Network Linux, SONiC, along their own OSs on their switches.

I believe the next wave of convergence will incorporate networking into already converged compute and storage. For the lack of a better term—and in line with the buzzword-based naming (e.g., CI[^ci]/HCI[^hci])—let us call it Fully-Converged Infrastructure (FCI). If and when this becomes a reality, it is likely that it will co-exist with existing types of infrastructure—similar to how HCI/CI still remain somewhat of niche markets. However, if this comes to pass with significant enough adoption, it will be a salient indicator that the balance has been tipped from hardware to software.

In any case, I believe there will be a significant shift in direction from specialized hardware-based switch/network appliances to **software-based networking on generic computing platforms**.

I am not sure how the gap will be bridged exactly. Perhaps, x86 server-based networking will become more powerful to catch up to ASIC/[FPGA](https://en.m.wikipedia.org/wiki/Field-programmable_gate_array)-accelerated networking. Perhaps, network appliance hardware will become generic open platforms. Perhaps, ASICs and FPGAs will become increasingly generic till they become commodity components in generic computing. Perhaps, it will be somewhere in between.

We already see some precursors in the evolution of the hardware aspect. For example, x86-based switches are now commonplace, while some ASICs are becoming more and more in the territory of generic platforms[^asics].

Software in the networking industry on the other hand, had been a little more nimble. While proprietary software stacks of traditional vendors have been evolving further, there also has been an interest to consolidate effort on the common components. For example, [Linux Foundation Networking](https://www.lfnetworking.org/) and [Open Networking Foundation](https://www.opennetworking.org/) has received contribution from even the bigger network vendors such as Cisco, Arista, Juniper, and Mellanox. This has resulted in the development or improvement of interesting open source technologies such as [DPDK](https://www.dpdk.org/), [P4](https://www.opennetworking.org/p4/), [VPP](https://fd.io/), [SONiC](https://azure.github.io/SONiC/), [Stratum](https://www.opennetworking.org/stratum/), etc. Open source-based as well as proprietary vendor OSs[^propnos] also have been available in the market.

The physical networking (e.g., fiber/copper infrastructure, optical transceivers, cables, connectors, etc.) components are likely to remain and continue to evolve in traditional / proprietary supply chains as they involve physical fabrication, manufacturing, and other logistics.

But the non-physical side of networking space (e.g., which contains processing, forwarding, routing/switching decisions, protocols, virtual endpoints, segmentation / micro-segmentation, policy frameworks, telemetry / observability, etc.) will get much more interesting. I am not saying traditional networking equipment will become obsolete in a hurry. But I believe building networks with generic computing platforms that are at least akin to x86 servers of today—perhaps augmented with FPGAs or ASICs—will at least become a mainstream option to ops teams. These networking infastructure will largely be handled by the software they are running.

With cloud computing[^cloudcompute] becoming a mainstay—along with all the shifts in thinking it brings—networking is due for a re-imagining. While the body of domain knowledge, standards, abstractions, and even expertise can be reused, I believe that the traditional thinking such as the ones that involve believing in different switch boxes for different places[^boxen] in the network is—IMHO—antiquated and only serve to drive network vendor sales.

Application-aware [Layer 4 - Layer 7](https://en.wikipedia.org/wiki/OSI_model) software systems are already starting to do [pretty-cool things](https://www.infoq.com/podcasts/open-source-cilium-security/)[^l24cni]. However, Layer 2 - Layer 3 networking that enables them—as well can further empower them—are yet to catch up to the future that is already dawning.

And, I believe it is going to be awesome to build.

[^ceph]: e.g., [Ceph](https://ceph.io/), [MinIO](https://min.io/), etc.
[^netvirt]: [Network Virtualization](https://en.m.wikipedia.org/wiki/Network_virtualization) (e.g., VMware NSX)
[^nfv]: [Network Functions Virtualization](https://www.sdxcentral.com/networking/nfv/definitions/whats-network-functions-virtualization-nfv/) (e.g., OPNFV)
[^sdn]: [Software-Defined Networking](https://www.sdxcentral.com/networking/sdn/definitions/what-the-definition-of-software-defined-networking-sdn/)
[^sdwan]: [SD-WAN](https://www.sdxcentral.com/networking/sd-wan/definitions/software-defined-sdn-wan/)
[^ci]: [Converged Infrastructure](https://en.m.wikipedia.org/wiki/Converged_infrastructure)
[^hci]: [Hyperconverged Infrastructure](https://en.m.wikipedia.org/wiki/Hyper-converged_infrastructure)
[^asics]: Competing vendors like Arista and Cisco use the same Broadcom ASIC silicon series (e.g., Tomahawk, Trident, Jericho) in some of their comparable switches.
[^cloudcompute]: Cloud Computing and its inner aspects such as public/hybrid clouds, Cloud Native Infrastructure, etc. has become a mainstay in the industry, and continue to influence the thinking in adjacent areas of technology.
[^l24cni]: Layer 4 - 7 software options include cloud-native software such as [Cilium](https://cilium.io/), Service Mesh software (e.g., [Envoy](https://www.envoyproxy.io/)/[Istio](https://istio.io/), and [Linkerd](https://linkerd.io/)), etc.
[^propnos]: e.g., Cumulus Networks, Big Switch Networks, and Pluribus Networks
[^boxen]: Either talking in terms of older core/aggregation/access switch classification or the newer spine/leaf classification, is still hinged on the fact that these switches are usually built for different purposes with different limitations and capabilities. However, if everything is software, running on sufficient compute power, and necessary physical connectivity, there will not be much technical justification why one of your switches cannot be a core switch while another is orders of magnitude more expensive than the previous one.