Have you heard of the SONiC network operating system? Microsoft released this software to the public back in 2017, but our market is still not entirely familiar with this technology. Being one of Software-Defined Networking (SDN) solution development vendors, PLVision has extensive expertise with major networking operating systems, including SONiC. Let me introduce SONiC to you in more detail.
SONiC (Software for Open Networking in the Cloud) is an open-source network operating system initiated by Microsoft in 2016 and contributed to the Open Compute Project (OCP) a year later. This NOS is Linux-based, built on Switch Abstraction Interface (SAI) and can run on various switches and ASICs (application-specific integrated circuits). In other words, SONiC is a collection of kernel patches, device drivers, utilities and more, combined with Linux distribution. Primarily, it aims at addressing the issues of reliability and availability of the cloud network as well as the possibility of evolution (i.e., adding new features).
SONiC is based on the following principles:
- Control. SONiC is open software, which lets anyone explore what’s inside, choose what to deploy and what features they don’t need running on their switches.
- Extensibility. It allows new developers to add features and capabilities easily.
- Agility. Quick reaction and ability to deploy new functionality onto a working production data center are also SONiC’s traits.
- Cooperation. The open-source nature adds velocity to the implementation of new features and the power to innovate. More networks, more scenarios and more expertise create a better solution that evolves with the users’ needs.
There are currently around 70 platforms that support SONiC. On top of those platforms, Linux is running to manage switches. SAI is used for switch abstraction, and the critical capabilities of SONiC are built on the basis of Linux and SAI. Therefore, this NOS can be viewed as a three-layer system:
- The silicon/ASIC layer
- The switch layer (the main functionality of SONiC)
- Application and management tools
Because SONiC is an open product, different companies added their share to its development on some levels. The ecosystem includes Cisco, which has contributed to the SONiC silicon and switch layer by adding SAI implementation for lacrosse chipsets. Also, ODM providers such as Delta, Celestica, Inventec and others are adding to the switch layer.
As for the application layer, Alibaba contributes to extending SONiC to handle layer-two scenarios. LinkedIn added support for FRR, and other companies are adding multi-hosting capabilities. This makes SONiC more accessible for enterprises without networking software engineering teams.
Interestingly, by contributing SONiC to open-source and driving its development, Microsoft, in particular, was able to achieve a greater presence in the datacenters of cloud service and online multi-service providers (Alibaba, Tencent, Baidu, etc.). Why is that? Data centers of these companies were mostly running on the Microsoft stack, except for the network infrastructure part, usually covered by proprietary products. The adoption of SONiC allowed them to cut their costs on network infrastructure by using open software. It also allowed them to simplify network infrastructure management by aligning the top application level with the infrastructure level.
Peculiarities of SONiC
The distinctive feature of SONiC is its containerized nature. By the way, Docker is one of the supporters that aided in building the container strategy. Everything inside SONiC is a part of a specific container. Each of them can be updated, customized, loaded with more features, etc. so that you could bring in the set of software you need and upgrade the systems running on the switch.
To add a new capability, engineers develop a new container and deploy it to SONiC switches. Its containerized nature allows using a wide variety of configuration and management tools on top of SONiC, and, therefore, tie the switches to the overall service management platform.
Owing it to open collaboration with multiple companies, SONiC has an impressive stack of capabilities that keeps growing:
- support of OOM (Open Optical Monitoring)
- VLAN Trunk, TACACS and streaming telemetry work
- FRR integration, BGP convergence, Open 19
- fast-reboot feature
- warm-reboot feature
- modular chassis and ARM-based switch support
- network virtualization
The project is live, and anyone can add their share to any layer of SONiC, from hardware to new applications and tools. By the way, individual contribution makes the most significant part of SONiC development, with Microsoft as well as leading network equipment companies like Mellanox and Dell following.
PLVision’s Experience with SONiC
Our engineers have been working with SONiC since its open-source launch by contributing to the project’s development (more than 1000 commits) and putting it into action for our clients. We’ve been implementing SAI API for specific switch silicon to enable SONiC stack operation on a network hardware product. We are also providing support and updates of SONiC’s functionality to stay in tune with the customer’s hardware. More than that, we ensure the integration of SONiC with third-party open-source management tools and implementation of specific features of this NOS.
PLVision has vast expertise in integrating customers’ hardware products – network switches – with the SONiC network operating system. But most importantly, we are willing to share our knowledge with the development community to help it prepare for the industry needs of tomorrow.
That is why every tech specialist interested is welcome to join the second specialized Linux Future Meetup on September 24 in Lviv. My colleague Stepan Blyshchak and I will demonstrate some of the unique features of SONiC that make the data center networking community go crazy about this NOS. Don’t miss your chance to join the event!