You may have seen the announcement this week that Microsoft is releasing SQL Server on Linux:

https://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux/

This is definitely not Steve Ballmer's Microsoft anymore. Releasing SQL Server for open source Linux is a huge surprise. That brought to mind a couple more interesting Open Source related announcements from Microsoft from the last year or so:

  1. Microsoft and Red Hat partner on Azure. (Source)
  2. Microsoft shipped open source software in windows 10. (Source)
  3. Microsoft open sourced the .Net Framework. (Source)
  4. Microsoft Released the DSC Resource Kit as Open source on GitHub. (Source)
  5. Microsoft is working to open source Powershell. They won't say it directly, but Jeffery Snover has hinted at it many times. Open sourcing .Net was the first step in that process.
  6. Microsoft is working to get OpenSSH Running on Windows. (Source)

 

What does it all mean? Specifically the SQL announcement? I'm not a tea leaf reader, but I have some thoughts.

My first thought is that most of this is motivated by Azure. Microsoft knows their future is in the success or failure of Azure. AWS has 2 big advantages over Azure:

  1. They had a huge head start and they are the 800 pound gorilla in the IAAS world.
  2. Amazon has embraced Linux and they have the added credibility of not being Microsoft.

 

Microsoft has to show that they are a compelling alternative to AWS and part of that is open sourcing their products so people aren't afraid of getting locked into a Microsoft product if the use Azure. A SQL Server running on Red Hat Linux in Azure is still a win for Microsoft.

My Second thought is that Docker and Containers are starting to look like they are the future of application development and the cloud. Currently the only way to run containers is in a Linux environment (Windows Server 2016 will change that). My understanding is that you would rarely put your SQL database in a container as Databases are statefull, but I can see a scenario where you wouldn't want to maintain a windows server in a Linux Docker deployment. Now you can use Microsoft SQL on Linus as your database in your Linux based Docker container Deployment.

Thirdly, Microsoft is making a serious push into the Linux admin world. I've read some articles about how PowerShell, .net, and PowerShell DSC on Linux would not only help with cross platform solutions, but it also would create some tools that the Linux world might embrace. Some Linux admins are jealous of PowerShell because it uses objects. Scripting is so much easier when you don't have to serialize and deserialize the files you pass through to your script. This also would feed into some of Microsoft's new PAAS offerings such as Microsoft Operations Management Suite.

The fourth option is that Microsoft wants a piece of Oracle's pie. Oracle is the big name in SQL databases that run on Linux with MySQL and their databases that run on Red Hat and unbreakable Linux.  That's a market that Microsoft could grow into with MS SQL Server on Linux.  I believe that long term Microsoft's SQL PAAS Solution: Azure SQL DB and their recently announced hybrid stretchable databases are going to be a compelling offering offer to anyone running a database:

The final perspective is that Microsoft has finally learned that Open Sourcing software benefits everyone. In the end, it allows Microsoft to ship a better product and be a less scary company. That's sounds like a win win to me.

Nathan Taylor

Written by Nathan Taylor