Today at the Open Compute Project (OCP) Summit in San Jose, Microsoft announced a fully open sourced "Software for Open Networking in the Cloud (SONiC)’ for running network devices like switches, built in collaboration with leading networking industry vendors Arista, Broadcom, Dell and Mellanox.
Software for Open Networking in the Cloud (SONiC) is not hardware, but a collection of software networking components required to build network devices like switches with rich functionality. It can run on various switching platforms via the Switch Abstraction Interface (SAI) specification, which we announced during last year’s OCP Summit and which was officially accepted by the OCP in July. It is based on a modular architecture with a lean stack built for data center networking needs. SONiC will enable cloud operators to take advantage of hardware innovation while giving them a framework to build upon an open source code for apps on the network switch and the ability to integrate with multiple platforms. SONiC is not just prototyped software but deployed today and planned to run at scale in the future.
Most importantly, all the components of Software for Open Networking in the Cloud (SONiC) are available as open source, enabling community driven innovation in open networking.
The principles of Software Defined Networking (SDN) have been long used to manage our global Azure cloud infrastructure across a massive worldwide footprint. For scalability, reliability, and speed, SDN principles such as virtualization, scale-out and centralized controllers have been replacing legacy designs in Azure at a granular level from servers, Network Interface Cards (NICs) to Edge and Wide Area Networks (WAN) - in compute, storage, and networking. Software for Open Networking in the Cloud was conceived based on these core guiding principles.
All cloud operators rely on high-speed, highly available networks to power their services, which is what makes SDN so critical. It’s vital that network operators be able to rapidly add networking features they need while managing any feature changes that increase risk and complexity.
At Microsoft, we believe there are many excellent switch hardware platforms available on the market, with healthy competition between many vendors driving innovation, speed increases, and cost reductions. However, it is challenging to integrate the different software running on each different type of switch into a cloud-wide network management platform. Ideally, we would like all the benefits of the features we have implemented and the bugs we have fixed to remain intact, even as we ride the tide of newer switch hardware innovation.
SONiC allows us to share the same software stack across hardware from multiple switch vendors, together with SAI, a standardized C API for programming switching ASICs. With its modular architecture and lean stack, SONiC allows us to debug, fix, and test software bugs much faster. It also allows us the flexibility to scale down the software and develop features that are required for our datacenter and our networking needs. Finally, it can easily extend with other open source, third party, or proprietary software components, speeding time to innovation.
Through open sourcing SONiC, contributions to and adoptions from the broader networking community will continue to improve SONiC’s quality. With this initial contribution with our collaborators, we aim to form a robust community that can dedicate resources to improve, customize, extend and evolve this over time. In keeping with that spirit, we are proposing an initial contribution to the OCP today.
What does SONiC mean for the OCP community?
We believe the OCP is the best platform to grow a fully open sourced stack holistically from the ground up. We believe that open sourcing SONiC under the OCP umbrella is the next logical step to growing the stack holistically at the OCP. SONiC brings together all the building blocks to form an open sourced, fully functional, secure, and reliable cloud switch. It gives you the freedom to choose the hardware and software that is best suited for your networking needs.
Today, SONiC integrates with the standardized SAI interface and allows us to exploit new hardware faster and enables us to ride the tide of ASIC innovation while simultaneously being able to operate on multiple platforms. Initial contributions of SONiC also come with supported open source platform drivers for certain switches, enabling SONiC to run as a fully functional Layer2/Layer3 switch.
Tomorrow, this can be extended into a new landscape where Linux distributions could offer support for SONiC and SAI through kernel modules. More vendors can open source their platform drivers. Existing OCP certified switches can integrate with SAI via the Open Network Linux (ONL). Additionally, more software components can be open sourced.
Importance of SAI to SONiC
We view SAI to be a key step towards open networking and a stepping stone to SONiC. Since its inception, SAI continues to grow within the community, attracting increasing numbers of contributors, consumers and features. Our SAI contributors today are Barefoot Networks, Broadcom, Cavium, Centec, Dell, Mellanox and Metaswitch.
After being accepted by the OCP last July, SAI is currently at version v0.9.4 which includes key features such as unified tunneling – an approach to have common APIs to address tunnels and L3 ingress and egress interfaces, and warm reboot – in service restart and upgrade of SAI without impacting the data plane. This is in addition to the existing features that ensure full L3 routing functionality as well as other complicated features such as Quality of Service (QoS). This version also introduces a Python Test Framework (PTF), an effort to drive towards SAI compliancy at the OCP.
We invite you to get involved in both SONiC and the SAI, as either a user or a contributor. Both SAI and SONiC are available in binary and source code for vendor supported platforms. As a consumer, you can either get a binary or build one depending on supported platforms and versions for both SAI and SONiC to prototype your own data center switch. As a contributor, developers can contribute to both SAI and SONiC via the GitHub repositories.
For more details about SONiC and SAI, to join our mailing list, and information on where to consume or contribute to these projects, please head over to GitHub.
We have traveled a wonderful journey with our co-contributors to get to this point. We have more contributors joining us in the future. Here is what they have to say in support for SONiC and SAI:
"Arista and Microsoft have a strong five-year relationship in building a cloud-scale programmable network for Azure. Arista is pleased to contribute Arista EOS (Extensible Operating System) drivers into SONiC and Microsoft's integrated SDN stack," said Hugh Holbrook, vice president of EOS Platform Engineering, Arista.
Big Switch Networks
"We look forward to working with Microsoft and the team to port their Software for Open Networking in the Cloud (SONiC) software to our Open Network Linux operating system and abstraction layers, enabling real traditional networking functionality across the breadth of networking hardware in the OCP ecosystem." - Rob Sherwood, CTO, Big Switch Networks.
“Broadcom is pleased to participate in the Switch Abstraction Interface and SONiC projects, and contribute a SAI implementation” said Eli Karpilovski, Director of Software solutions, Broadcom limited. “Broadcom's SAI and SONiC projects are enabled by Open Network Switch Layer (OpenNSL), and provides yet another example of leveraging direct access to Broadcom chipsets with new datacenter and carrier networks innovations”
"A well-defined API eases feature porting, as good fences make good neighbors.” said Eric Hayes, vice president and general manager, Switch Platform Group at Cavium. ” As shown in our joint demo with Microsoft Azure Networking, the XPliant support for SAI APIs significantly reduced the platform software integration effort."
"SAI is a key enabler for truly open networking systems, we are thrilled to see the rapid adoption of SAI by many leading network OS and switching silicon vendors" said Tao Gu, vice president of business development, Centec Networks. "We look forward to working with Microsoft and other community members in driving the development of SAI and production deployment of open networking systems enabled with SAI."
"As a long-standing and initial contributor to SAI, we’re very excited about SONiC, especially as it relates to our recently introduced OS10 software environment,” said Tom Burns, vice president and general manager, Dell Networking and Enterprise Infrastructure. “Open source is central to OS10 and to our future-ready vision for cloud operators and the key to unlocking the full potential of technology. SONiC, with Dell’s contributions specifically, will go a long way towards realizing this vision.”
“We are excited by Microsoft’s efforts to further disaggregate the networking industry. The addition of SONiC complements their OCP work driving the Switch Abstraction Interface (SAI) project. We hope that the contribution of SONiC will provide operators and developers with more open source options for their OCP switches,” says Omar Baldonado, engineering director on Facebook’s network team.
“Mellanox’s work with Microsoft within the OCP organization to develop SAI (Switch Abstraction Interface) has allowed us to accelerate the pace of development and support multiple Network Operating Systems on our latest generation of Spectrum 25, 50, and 100 Gb/s Ethernet switches,” said Kevin Deierling, vice president of marketing, Mellanox Technologies. "The availability of an offering such as SONiC with our advance Ethernet switches will accelerate the time to market of world class switch platforms and allow even modest size enterprises to innovate at the pace of the cloud.”