Microsoft SQL Server 2017 is now available for the first time on Windows, Linux, and Docker. In this Ask the Admin, I’ll look at what this means for DevOps and database admins.
When Microsoft announced that it was releasing SQL Server for Linux last year, it caused something of a stir. Microsoft hasn’t always embraced Linux. But times are different, and SQL isn’t the only Microsoft service or product that works on Linux. Notably, Microsoft Azure offers Linux-friendly services and is a member of the Linux Foundation.
At its Ignite conference in Orlando last week, Microsoft announced that SQL Server 2017 is now available for Linux as a certified Docker image based on Ubuntu 16.04. SQL Server for Linux is supported on Red Hat Enterprise Linux 7.3, SUSE Linux Enterprise Server 12, Ubuntu, and Docker on devices with 3.25GB of RAM.
Microsoft claims that performance is the same on both Windows and Linux, although the Linux version of SQL Server doesn’t have Reporting Services, Analysis Services, or Machine Learning Services. Replication is also missing but SQL Server on Linux has what it needs for high availability. And there’s no Stretch DB for hybrid local or Azure storage. File Table is also unsupported on Linux. Command-line management tools work on Linux but Microsoft expects you to use the Windows-based GUI management tools.
What’s most interesting about the announcement is that the Docker image is SQL Server 2017 on Linux. There is an official SQL Server 2017 image for Windows Containers but it runs SQL Server 2017 Express. It is not the full version of the product. In the Docker store, you can find an image from Microsoft of SQL Server 2017 for Windows but it is a preview that’s not supported in a production environment. The existence of this image suggests that Microsoft is working on an official Windows image for the full version of SQL Server.
The ability to deploy SQL Server 2017 using Docker makes the database server much faster to install. If you have ever manually set up SQL Server, you will know that it can be a time-consuming process. Plus, Docker allows developers to install multiple instances of the database on one host, allowing more flexibility, easier configuration, and the ability to manage the resources that each SQL Server image consumes.
You can find the Docker image for SQL Server 2017 on Linux here.
Follow Russell on Twitter @smithrussell.