In early March 2016, the big news the Microsoft data platform world was waiting for was the release date of SQL Server 2016. Instead, Microsoft surprised everyone by announcing SQL Server will soon run on the Linux operating system. Despite how it might first seem, this is about more than Microsoft wanting to compete with its multi-platform peers. It’s about Microsoft supporting developers using its technology, wherever they want to use it – and that now includes the data tier.
Enabling the Microsoft “develop and deploy anywhere” strategy
Increasingly, developers decide what technologies they use to create applications before their organisations choose which cloud services to host them on, or they get to pick both. They often decide based on how easily technologies can run on different compute platforms and devices, and the openness of their source code so they can see how they work and also help make them better. Perhaps more recently, they also consider how easily they can deploy their solutions, with container technologies expected to become a popular answer. It’s these priorities then that often make open source and Linux based technologies the modern developer’s preferred option.
Microsoft began responding to this shift away from its Windows-only and closed source products a year ago. It made many of its development technologies and tools both multi-platform and open source. Where it had capability gaps, it bought new tools or partnered with companies like Docker. Now, it’s going one step further.
Respecting the fact that not everyone wants to use Windows, Microsoft is porting its popular database server product, SQL Server, so it can run on the Linux operating system. While the popularity of running SQL Server on Linux may still be hazy, Microsoft’s intentions are very clear. It wants SQL Server to remain the database engine of choice for Microsoft developers wherever and however they deploy their solutions. It’ll also give some of their competitors something to think about when Linux developers can also start using it.
What to expect from Microsoft
At the end of March 2016, we’ve already seen good progress from Microsoft. At its recent Data Driven event, hosted by Satya Nadella, Microsoft demonstrated fast analytics queries, powered by new SQL Server 2016 functionality, using SQL Server hosted on the Ubuntu distribution of Linux. The select @@version SQL Server query now returns the name as well as the version of the operating system SQL Server is using!
Timelines have been less visible. The only date Microsoft has put in the diary is mid-2017 for general availability although a private preview is underway. Those timelines raise the question of how a Linux version of SQL Server relates to the Windows version of SQL Server. Will SQL Server 2016 still be the latest release in mid-2017 or is this part of a different versioning strategy that we’re yet to learn about?
Finally, the questions people are asking most relate to functionality and cost. How many SQL Server features will be ported to Linux and how much will it cost compared to the Windows version etc. etc. What we do know so far from a ZDNet news article (link) is that only the “core database engine” will be ported – but that makes sense. Developers of Linux based applications who want to make SQL Server part of their solutions, as an alternative to MySQL etc., only require the database engine. The marketplace for enterprise scale analytical platforms is now moving to the cloud too quickly to make any investment to port these worthwhile.
One step at a time
Surprise always creates intrigue and right now the surprise of Microsoft’s announcement has done just that. But we should be patient. This is clearly a long journey compared to the pace of other Microsoft releases. Once Microsoft has (finally) released SQL Server 2016 I suspect we’ll start hearing more about what’s next and that’ll be when we see where SQL Server on Linux sits in the Microsoft roadmap. Until then, data platform professionals (and those who support them) should start thinking about what a world without Windows might mean for them.