SQL Server on Linux removes the barrier to entry for organizations that prefer Linux to Windows. The buzz about Microsoft bringing SQL Server to Linux has been building since the initial announcement, back in spring 2016. It seems you can’t throw a CPU without hitting a blog post about SQL Server on Linux, as everybody scrambles to be the SQL Server on Linux expert. Here’s what you really need to know.
No, it’s not magic or even black magic. SQL on Linux is the result of a new version of the SQL OS, called the performance abstraction layer (PAL). This effort came out of a Microsoft Research project called Drawbridge.
You can read more about the details of PAL and Drawbridge here. It’s interesting to note that Drawbridge research started in 2011; not many companies have pockets deep enough to fund a research project for six years before it bears fruit.
The beauty of PAL means that as new features get added to SQL Server, they can be ported to Linux with minimal effort. All Microsoft needs to do is include the necessary Windows libraries and update the package for distribution.
SQL Server on Linux currently supports Red Hat Enterprise Linux (RHEL), SUSE Linux Enterprise Server and Ubuntu. You can also run SQL Server in a Docker container. This means it is possible to run SQL Server on Linux, Mac or Windows platforms. (See a full list of supported platforms here, along with installation directions.)
When Microsoft first discussed bringing SQL Server to Linux, the company made it clear that performance would be at least equal to that of SQL Server on Windows. The goal is that the customer experience on SQL Server should be the same no matter what OS is being used. To that end, Microsoft has published guidelines for configuring SQL Server on Linux.
It’s true that not every SQL Server for Windows feature will work on Linux. (There is a list of unsupported features here.) Microsoft has focused on bringing core database functionality to Linux, but some SQL Server capabilities depend on Windows functionality (for example, Distributed Transaction Coordinator). With that said, “unsupported” does not mean a feature won’t work; it just means that the feature is not officially supported.
This isn’t Ballmer’s Microsoft; it is Satya’s. That means you are going to get every possible option unless there is a technical reason preventing it. With it comes to SQL Server for Linux, Microsoft didn’t make it an enterprise-only option. Rather, support is available for the Enterprise, Standard, Developer, Web and Express versions of the platform.
The licensing model for SQL Server does not change with the Linux edition. You have the option of server and CAL or per-core. The Developer and Express Editions are available for free. The developer is equal to Enterprise in every aspect except for one: You can’t use it for production. The Standard edition has many of the same features, but they are often throttled. That’s because the new world of software licensing is more a pay-for-performance than a pay-for-features model.
Because having the option is better than not having the option. If your company is primarily a Linux shop, then your choices of database servers have been limited. Microsoft has removed that limitation and is now part of the discussion. Data is a commodity, and Microsoft is focused on making certain it offers in every way possible to store it.
For starters, you need to be comfortable working with a command line. IT staffers who can only “click, next, next, next, finish” will need some training. And, staff members who couldn’t work with Server Core because it lacked a GUI also should not be put in charge of your Linux servers.
You will need to be able to install, update and remove applications from the Linux command line. Debugging applications, understanding telnet/SSH and even starting/stopping processes are necessary skills for anyone working with SQL Server on Linux.
Microsoft has created a stable version that performs as well on Linux as it does on Windows (and, in some cases, even better). Microsoft is making it easy to migrate your data to its platform with the goal of hosting your data in Azure.
This chart creates an Elasticsearch-Exporter deployment on a Kubernetes cluster…
redis_exporter is a Prometheus exporter for Redis metrics. This chart…
This is the Helm chart for the Spark-on-Kubernetes Operator. Spark Operator is…
Tell us about a new Kubernetes application
Never miss a thing! Sign up for our newsletter to stay updated.
Discover and learn about everything Kubernetes