Open Source Networking: a hierarchical approach

I have been extremely fortunate to be part of several network cloudification projects over the past 18-24 months.  It's been very exciting to see the changes that disaggregation and open source projects have been making to move an industry forward.  Here I capture some initial thoughts about open source networking.

Note: while the on-the-job learning has been immense, I have supplemented this with some terrific courses from The Linux Foundation including LinuxFoundationX: LFS165x Introduction to Open Source Networking Technologies by Reza Toghraee.

Networking has come a long way from the widespread use of rigid appliances to perform networking functions such as routing, firewalling, switching, and load balancing.  A key principle behind this transformation is disaggregation, i.e. the de-coupling of the software performing the networking functions with the hardware it is installed on.  The main driver of this transformation is the evolution of Cloud computing.

Let's explore the impact of Cloud computing on networking further.  The Cloud virtualizes Compute, Storage and Network.  Compute virtualization came first.  While things began slowly, once virtualization technology became reliable, enterprises began migrating physical servers to virtual servers en masse.  Today, almost all enterprise applications are served on virtual compute environments.  Storage virtualization came next with massive disk arrays giving way to distributed filesystems where JBOD (Just a Bunch of Disks) could be converted into a highly available and robust storage system.  Both compute and storage virtualization disaggregated software from the underlying hardware.  The same changes have now been occurring with networking over the past several years.  The open source revolution has been a driving force behind this change and several open source projects exist for both hardware and software elements of networking.

To understand all elements of the open source networking landscape, it is useful to take a hierarchical approach starting with the open hardware at the bottom and working our way up to the applications layer at the top.  Here is the complete hierarchy:

      • Disaggregated Hardware
      • IO Abstraction and Datapath
      • Network Operating Systems
      • Network Control
      • Network Virtualization
      • Cloud and Virtual Management
      • Orchestration, Management, Policy
      • Network Data Analytics
      • Application Layer.
A diagram with this hierarchy and the various open source projects associated with it is provided below (source: Reza Toghraee and The Linux Foundation):

In following blogs, I intend to cover the different elements of the hierarchy in detail along with the various open source projects that are driving developments in this space.

Comments

Popular posts from this blog

AI, ML, NN and DL: a visual explanation

Understanding And Interpreting Gain And Lift Charts

Coefficient of Alienation