Late last week, hell had apparently frozen over with the news that Microsoft had developed a Linux distribution of its own. The work was done as part of the company’s Azure cloud platform, which uses Linux-based network switches as part of its software-defined networking infrastructure.
While the software is real, Microsoft isn’t characterizing it as a Linux distribution, telling us that it’s an internal project. That’s an important distinction, and we suspect that we’re not going to see a Microsoft Linux any time soon.
The Open Compute Project (OCP), of which Microsoft is a member, is an industry group that is working together to define hardware and software standards for data center equipment. This includes designs for high-density compute nodes, storage, and networking equipment. One part that Microsoft has been working on is network hardware, in particular, software-defined networking (SDN). SDN adds a layer of software-based programmability, configuration, and centralized management to hardware that is traditionally awkward to manage. Traditional network switches, even managed ones, aren’t designed to enable new policies—alterations to quality-of-service or VLANs, say—to be deployed to hundreds or thousands of devices simultaneously. And to the extent that such capabilities are present, they vary from vendor to vendor.
Earlier this year, Microsoft, Dell, Mellanox, Facebook, Broadcom, and Intel contributed a specification, the Switch Abstraction Interface (SAI), that provides a common API that can span the wide range of ASICs (application-specific integrated circuits—chips tailored to handle very specific workloads, in this case, handling Ethernet frames) used in software-defined switch hardware. The SAI API is, in principle, cross-platform, defined for both Windows and Linux, but much of the switch hardware is supported best, or even exclusively, in Linux. A Linux distribution to support these applications, Open Network Linux, has even been developed.
The Azure Cloud Switch, which is what Microsoft announced on Friday, is Redmond’s software-defined switch. It builds on the SAI API to enable it to work with switch hardware from many different vendors; in August, an ACS switch using six different vendors’ switch ASICs was demonstrated. ACS is built on top of a Linux SAI implementation, and it uses Linux drivers for the switch ASICs.
Given Linux’s dominance in this area, it’s at once both surprising and unsurprising that ACS uses Linux. Unsurprising because there’s little practical alternative for this situation; surprising because Microsoft is still assumed to have some degree of hostility toward Linux. The company today would tell you that this hostility is a thing of the past. Microsoft would say today it’s willing to use the best tool for the job and work to ensure that its software is available on the platforms that people need it on. With this new, more pragmatic Microsoft, the use of Linux should be expected. And accordingly, Microsoft says that it is using this software in its own datacenters. Microsoft has publicly used non-Windows infrastructure before—some Skype infrastructure initially used Linux, for example, and Hotmail ran on FreeBSD when it was bought—but this is nonetheless unusual, as it’s new Microsoft development, not a bought-in project.
So why isn’t the company calling this new endeavor a distribution? The big reason is that the company doesn’t intend to distribute it. Again, it’s an internal development that showcases the OCP approach, but it isn’t a package that will be given to third parties.
Microsoft’s diagram describing ACS might also be significant; the Microsoft components are a set of applications and services that sit above SAI; that’s a chunk of software, but everything else could be taken from an off-the-shelf Linux distribution (Microsoft hasn’t specified). Another confounding factor could be the various switch ASIC components. Each vendor’s ASICs have their own drivers and SDKs, and at least some of these are not open source. This would make it difficult to build a Linux distribution around them.
As such, hell likely remains toasty and warm, and Microsoft won’t be in the Linux distribution business any time soon. But equally, it’s clearer than ever that this isn’t the Microsoft of the 2000s. If Linux is the best tool for the job, Microsoft is willing not only to use it, but to tell the world that it’s doing so.