Microsoft's Azure Cloud Switch Built with Linux
Microsoft quietly delivered a media bombshell of sorts this week as it explained that its Azure Cloud Switch solution was built with Linux.
"The Azure Cloud Switch (ACS) is our foray into building our own software for running network devices like switches," explained Kamala Subramaniam, a principal architect for Azure Networking, in a Thursday blog post. "It is a cross-platform modular operating system for data center networking built on Linux."
The Azure Cloud Switch was demonstrated by members of the Microsoft Research team at SIGCOMM 2015 in August. It enables an application to "talk" to various application-specific integrated circuits (ASICs), according to Subramaniam. In addition, ACS can work with other application stacks, such as those built by Dell and Metaswitch.
No Linux Distro
While ACS' software-defined networking capabilities may seem impressive, ACS' use of Linux seems to have flown under the radar screen.
Several news outlets today claimed that Microsoft's use of Linux in ACS meant that the company now has its own Linux distro. However, when asked if that were true, a Microsoft spokesperson said, "No," that Microsoft doesn't have a Linux distro.
Essentially, Microsoft needed to solve a problem with hardware inflexibility. It wanted to take advantage of hardware technology improvements in ASICs but also wanted to be more agile and provide support for the software features it was rolling out in its Azure datacenters. To that end, Microsoft created ACS.
Despite its use of open source Linux, ACS was built mostly to support Microsoft's Azure datacenters. It has a C-based API, which allows developers to tap into it. For instance, various hardware switch manufacturers can interoperate with ACS via the API.
Subramaniam explained that ACS has a "lean stack," with just enough capabilities to support Microsoft's datacenter networks, but it also has a "modular stack." That combination of a lean and modular stack allows Microsoft to validate ACS faster and fix software flaws faster. ACS is capable of running Microsoft applications, as well as third-party ones, including open source apps, at the top of the stack (see diagram).
ACS is integrated with "Microsoft's monitoring and diagnostics system" for Azure. It allows switches to be managed via a graphical user interface, much like server patching.
"By deviating from the traditional enterprise interactive model of command line interfaces, it [ACS] allows for switches to be managed just as servers are with weekly software rollouts and roll backs thus ensuring a mature configuration and deployment model," Subramaniam wrote.
ACS isn't a commercial product right now, according to the Microsoft spokesperson, but Microsoft is showcasing it as a software-defined networking solution to the inflexibility of switch hardware.
"This is just internal right now," the spokesperson explained. "We are doing this because the approach of disaggregating the switch software from the switch hardware will continue to be a growing trend in the networking industry, and ACS is a Linux-based way to showcase our approach to this, which we're sharing with OCP [Open Compute Project]."
The SAI Spec
ACS is based on the Switch Abstraction Interface (SAI) specification overseen by the Open Compute Project. The Open Compute Project is an industry collaboration started by Facebook engineers that shares ideas and specifications to optimize datacenter designs.
Microsoft was "the initiator of SAI" last year according to Subramaniam, in a second blog post. Currently, it's "a leading contributor" to SAI along with "Broadcom, Mellanox, Dell, Cavium, Barefoot, and Metaswitch." Subramaniam described SAI as "an ASIC agnostic interface."
The SAI spec was backed by both software and hardware makers. Microsoft, Dell and Metaswitch are the application stack providers that built upon the SAI spec. Barefoot, Broadcom, Cavium and Mellanox are the ASIC hardware makers that collaborated on it.
About the Author
Kurt Mackie is senior news producer for 1105 Media's Converge360 group.