Why release SQL Server as a Linux, as well as Windows, application? It baffled many DBAs when it was announced, though most shrugged and decided that it must be part of Microsoft’s long-term wrestling match with Oracle. When Microsoft previewed an early version of the Linux SQL Server on Ubuntu and Red-Hat, with ‘core relational database capabilities‘, it seemed to confirm our suspicions, accompanied as it was by a swipe at Oracle, with an offer to early Oracle migrators of free licensing and support for the lifetime of SQL Server 2016.
A lot more changes in a year at Microsoft than it ever used to, and now we have fully-fledged SQL Server running on top of the new SQL Server Platform Abstraction Layer (SQLPAL), a marriage of the existing SQLOS with elements of the “Drawbridge” containerization project, which abstracts the operating system from SQL Server. It also runs directly within the Docker Engine.
Nevertheless, DBAs haven’t been rushing to use it. It is certainly clever, but then so is a dog standing on its back legs. It may look cute but is it useful? How fast can it run? After all, SQL Server performance is closely wedded to the hardware and doesn’t take that kindly to sitting on top of layers of abstraction. Only time will tell.
So why did Microsoft do it, beyond a poke in Oracle’s ribs. There seem to be two reasons. The first one is the burgeoning interested in the DevOps movement, which prefers services that can run on Linux, and can be containerized. In the past, the Operations team would dread being handed a Windows application to look after because it often meant a whole different set of Windows maintenance routines, using unfamiliar tools. Now, there are other options. With SQL Server hosted on Linux, it makes it much easier for Ops to allocate and deallocate database capacity, and to provision, configure and manage SQL Server instances running on development and test servers.
The second reason is the uncertainty around MySQL. At one time, the LAMP architecture (Linux, Apache, MySQL, PHP) seemed impregnable. Now the choice of low-end database is less obvious, because neither MySQL nor even MariaDB have kept up with the evolving SQL Standard. Was it a coincidence that Microsoft beefed up the feature set of its Standard and Express Editions with the release of SQL Server 2016 SP1? Was it sheer synchronicity that delivered ASP.NET Core and EF Core on Linux? No. The old certainties of the LAMP architecture are now being challenged, with a much wider range of options, such as Angular, NodeJS, ASP.NET Core, EF Code and SQL Server all fighting for their share of the action.
With a wide range of options for IT architecture, it will be interesting to see which architectural options prove to provide the fastest way to deliver applications. I suspect that the resulting acronyms will still begin with ‘L’, though.