2016 will be remember as the year of Trump’s victory, Brexit and Microsoft releasing SQL Server for Linux. I was feeling a mix between skeptical and excited the first time I read about MSSQL Server on Linux but after reading a bit I have to say I’m quite surprised of what Microsoft have achieved. The first incredible thing is the installation process…
$ curl https://packages.microsoft.com/config/rhel/7/mssql-server.repo | sudo tee /etc/yum.repos.d/mssql-server.repo
$ sudo yum update
$ sudo yum install mssql-server
That is all. No, I’m not joking. That is everything you need to run MSSQL Server in Linux (Redhat or Ubuntu flavor). The real question is: Is there any difference about using MSSQL Server on Linux than in Windows?
Getting closer with MSSQL Server
Some years ago Microsoft decided to start using SQLOS as a platform layer for different hardware. During that time the idea was not using MSSQL Server on a different platform than Linux but to centralize the access from the database to the operating system in a single layer. Years later this layer played a main role on MSSQL Server port from Windows to Linux since this layer allowed for the system calls to be ported centrally. Anyway there were still some process that didn’t use SQLOS so it was necessary to port them.
On 2011 Microsoft started to investigate Drawbridge which it is a new form of virtualization. It basically combines process isolation, Windows ABI (kernel/syscalls), implementation of Windows APIs/lib and divers to initialize the memory for the VM. If we combine Drawbridge and SQLOS we can run MSSQL Server to be run in Linux quite smooth and similar to run it on Windows.
I checked some blogs of users who experiment with MSSQL Server under Linux and the results are really good. The run-time behaviour doesn’t change as compared to a Windows and the applications should run as good as they run on Windows.
How to manage the database
We can manage the databases almost as we do right now on Windows. Both CLI and SSMS are available for MSSQL Server on Linux. We can use CLI from the own server or connect remotely from a different computer using SSMS. We can even use these extensions for Visual Studio Code if we don’t want to use Windows at all.
What the future will bring
Even if the current version of MSSQL Server for Linux is stable and fully working there are some features to be implemented:
- Full text search.
- Active Directory authentication.
This last topic is a key feature for some of my customers who use AD authentication and SSO in order to access the databases. Considering this I think there will be a lot of companies that won’t migrate their database to MSSQL Server under Linux at this moment. I probably setup a testing VM to check the performance of MSSQL Server on Linux and compare it with it running on Windows, as soon as I have some results I will post them. We will see what happens in 2017, right now there is only one thing to say: Well done Microsoft!