Last year the company revealed that it had created a custom bundle of networking software built on the open source operating system Linux. Now Microsoft has shared some of the code for that software with the world, so that any other company can use it or modify it for their own purposes.
The bundle, dubbed Software for Open Networking in the Cloud, or Sonic for short, isn’t an operating system. It’s a set of software that can theoretically run on any version of Linux, though so far it’s only been tested on Debian.
Unlike Microsoft's other open source projects, it's software the company wrote to solve its own problems.This isn’t Microsoft’s first foray into open source, nor the first time it’s written software for Linux. But Sonic differs from most of the company’s other open source projects in that it’s software that the company wrote to solve its own problems, as opposed to being an attempt to get more developers using the company’s projects.
Sonic is a software platform that runs on network gear such as switches and routers. Typically this software is baked right into a networking product, but a growing number of web companies—including Google and Facebook—are creating custom software for their networking gear that allows them to scale more quickly. They can make modifications on the fly without having to wait for updates from a third party vendor—or buy entirely new hardware.
Microsoft’s engineers found it difficult to manage the wide variety of software that shipped with network gear manufactured by different vendors, said Microsoft Azure networking principal architect Kamala Subramaniam in a blog post. What the team needed was a single networking platform that runs on all of its gear. So they built Sonic.
A Big Step for MicrosoftSonic doesn’t directly compete with any existing Microsoft product. It’s designed for networking equipment—specifically switches—rather than desktops or the sorts of servers you typically find running Windows. Theoretically you could run Microsoft’s slimmed down version of Windows on network switches, but you’d need to do a lot of extra work. That’s why Microsoft decided to use Linux instead of Windows for switches in the first place.
That’s a big step forward for Microsoft. Sure the company has released a code editor and even an open source artificial intelligence framework that can run on Linux. It’s also promised to make a Linux version of its popular database software SQL Server. But the point of those endeavors is to get Microsoft technology into the hands of Linux developers, rather than to use open source to solve Microsoft’s own problems.
One of the core ideas of open source is that it’s silly for every developer at every company to solve the same problems again and again. Using and contributing to open source software allows companies to pool their resources to solve common problems. But Microsoft has historically resisted such pragmatic solutions in favor of writing its own software using its own programming languages and running on its own operating systems, a tendency referred to as “not invented here syndrome.” By building Sonic on existing open source software, Microsoft saved time and money. By releasing its own code, Microsoft may not only be saving other developers a few headaches, but potentially convince outside companies to help improve the company.