SQL on Linux – why bother?

It’s easy for someone who has been working with Microsoft technologies to wonder why they should bother learning about Linux so that they can run SQL Server on it, when it can run just fine on Windows machines.

There was a time when my main PC at home ran Linux. But that was before I graduated at got into the ‘real world’ and started using creating applications that ran on Windows machines. Sure, many of the databases I interacted with were on Unix servers (which generally meant they were Oracle), but most of the systems I used were Microsoft-based. As time went on, my career moved further away from Unix servers and more towards Microsoft systems, until I was working completely within the Microsoft space. Windows Servers and SQL Server. The cloud changed things in regard to the physical infrastructure but still I was within the Microsoft space for everything from the OS up.

I’m NOT about to rebuild my laptop using Ubuntu or Red Hat.

So why should I learn about Linux? Or why should you for that matter?

I’m not sure many of my customers care where their SQL Servers live. Only a few of them even care these days whether they live in the cloud or on-prem, and the operating system is becoming less and less important. I’m sure I could avoid Linux easily enough from that perspective. They’re more likely to move towards from having no operating system at all (by using a PaaS solution like Azure SQL DB) than towards an operating system they haven’t had to support before.

But as long as there are on-prem customers, there will be those who are concerned with the cost of licensing their operating systems, and that makes a strong case for Linux. Even those who are in the cloud but thinking more of VMs than SQL DB are starting to opt for the cheaper licensing of Linux.

And then there’s the concept of provisioning machines on-prem for a variety of reasons, particularly in containers – the idea of having instances of SQL that don’t need a whole machine to run, but just within subsystems like Docker, able to be spun up and torn down without having to set up a whole server.

One major benefit of the cloud has been that we now think of provisioning new systems, rather than having to purchase servers. This had started in the virtual world even before the cloud, when new servers could be placed onto hosts that had other servers on them already – but it was still complex and the realm of IT departments. Developers wouldn’t provision servers. We’d install multiple named instances of SQL Developer Edition, but the overhead of having a number of Windows VMs was often painful (not to mention the licensing). Docker with Linux gives us access to a different world. We can provision containers running SQL Server easily, rip them down easily, reconfigure them easily, set up HA using them, and so much more.

So why not embrace SQL on Linux? It doesn’t mean having to give up Windows. You can start by appreciating the ease of provisioning new systems with Linux – inside VMs and containers. Try it out, and see how easy it is. You don’t need to give up your copy of Windows, or even your version of SSMS. But the future isn’t going away, and the future includes SQL on Linux.

@rob_farley

Thanks to Tracy Boggiano for hosting this month’s T-SQL Tuesday.