SQL Server for Linux

Although SQL Server for Linux removes the concern that adopting SQL Server forces you to also adopt the Windows platform, it could also provide a useful alternative platform, and a more obvious alternative to Oracle. There are, however, several obvious concerns as to how such a product could ever achieve parity with the existing Windows-based product. Microsoft have made an interesting move with several ramifications, as Robert Sheldon explains.

On March 7, 2016, Microsoft announced that it was bringing SQL Server to Linux, the operating system they once disparaged but which over the years has proven too big a thorn for Microsoft to ignore. This isn’t the first time that Microsoft has made inroads into Linux terrain, but it’s the first time the company has tried to port a server product to a new environment. And that’s something worth noting.

Since the announcement, Microsoft has released a Channel 9 sneak peak of the new product and has made a private preview available to a limited number of participants. According to Microsoft, the preview contains only the “core relational database capabilities,” as will the initial release when it becomes generally available. Microsoft describes the core capabilities as the basic database engine components that support transactional processing and data warehousing. Microsoft provides no details beyond that.

SQL Server on Linux is targeted for general availability in mid-2017, with plans to support multiple Linux distributions. However, the preview is currently available only for Ubuntu and Red Hat. Participants can also download the preview as a Docker image.

Moving to Linux

Microsoft’s stated goal is to deliver a Linux version of SQL Server that looks, feels, and performs just like the real thing, that is, just like the Windows version. Any applications or tools that work with SQL Server on Windows are supposed to work with SQL Server on Linux. Users should not be able to see any differences between the two, at least not from front-end or middleware perspectives. According to Microsoft, if you can use it with Windows, you can use it with Linux.

Moving a server product to Linux might seem out of character for Microsoft, but the company has, over the past few years, made a number of forays outside the Windows wall, such as embracing Docker and Hadoop or acquiring Revolution Analytics for its R technologies. Microsoft has even released Office 365 apps for iOS and Android, which many claim are better than what Microsoft came up with for Windows Phone.

Microsoft has also expanded its own business intelligence (BI) products and services to incorporate OS X, iOS, and Android and has added support in Azure for Linux virtual machines (VMs). Even SQL Server has benefited from Microsoft’s more open attitude, with components such as the Java Database Connectivity (JDBC) driver for SQL Server available as a free download for connecting Java applications to SQL Server. The driver supports Unix, Linux, and Windows operating systems.

Despite all these changes, SQL Server on Linux is still a big deal. Microsoft has had to learn to take Linux seriously, especially given its role in the public cloud. According to a recent IDC report about SQL Server on Linux, 39.5% of all new x86 servers entering the market between Q4 2014 and Q3 2015 were configured with Linux. Even Microsoft admits that nearly one-third of its Azure VMs are running Linux.

Microsoft has little choice but to embrace Linux, despite its third-party, open source nature. Many organizations prefer Linux for their server operations, and Linux is often used in conjunctions with relational database management systems (RDBMSs). The Linux universe represents significant possibilities for SQL Server, even with Windows absent from the scene. That doesn’t mean Microsoft is about to release open source versions of SQL Server, but it does mean Microsoft recognizes a strategic advantage to moving into this new territory, particularly given its “mobile-first, cloud-first” strategy, put forth by Satya Nadella back in 2014.

A new world order

Both Microsoft and its customers could win big if Microsoft can provide a consistent data platform across Windows and Linux, whether on-premises or in the cloud. Microsoft might even consider throwing other operating systems into the mix. Imagine a version of SQL Server for Unix or OS X. Once the barriers have been broken, anything is possible.

SQL Server for Linux has the potential to remove what for many has been a serious stumbling block with SQL Server—forced Windows lock-in. According to a recent Gartner analysis about SQL Server for Linux, client interactions over the past 10 years have led analysts to believe that “clients resist using SQL Server as they fear lock-in to the Windows platform and could not move to another OS platform, if desired.” If SQL Server can be implemented in either a Windows or Linux environment, customers would have a choice they never had before, an important consideration in today’s cloud-centric world of pick-and-choose.

But this is only one reason why SQL Server on Linux could reach a broader user base. Organizations already well-invested in Linux technologies have had no reason to consider SQL Server. It was, in fact, barely on their radars. A data center that is running nothing but Linux servers is highly unlikely to stand up a handful of Windows machines just to support a database product, when there are so many other viable alternatives out there.

SQL Server for Linux changes all that, providing Linux diehards with a viable database alternative, assuming Microsoft can deliver a product that plays nicely with the Linux environment and respects the subculture that surrounds it. SQL Server on Linux could also win over shops already running both Windows and Linux servers because it gives them the ability to operate a single database product that can run in both environments. Even existing SQL Server customers might expand their commitment to the database product if they can extend it into their Linux systems.

Then there is the Oracle factor. It’s no secret that Microsoft has wanted to stick it to Oracle for quite some time. Consider Microsoft’s recent offer of free SQL Server licensing for Software Assurance customers if they scrap Oracle Database in favor of SQL Server. With SQL Server on Linux, Microsoft is undoubtedly taking another shot at the database giant.

Some Oracle customers might not need a lot of convincing. Oracle’s notoriously complex and confusing licensing structure, combined with its controversial auditing practices, have already tempted some customers to jump ship. Oracle also suffers from the perception that it has not been as focused on its database product in recent years as it has on other offerings, particularly cloud services. SQL Server on Linux could provide Oracle Database customers with just the incentive they need at a time when they’re most ready to make the switch.

That said, it’s no small task for an organization to replace a backend system like an RDBMS without significantly impacting operations and straining resources. Even if the SQL Server team can pull off a Linux version of SQL Server with relative success, it must still contend with the realities of an organization’s budget and resource constraints. On the other hand, organizations not too entrenched in an existing database system or are already thinking about moving to a new platform are likely to give SQL Server a serious second and third look once it becomes available on Linux.

Not so fast, Microsoft

Microsoft’s move toward SQL Server on Linux will likely prove a good strategy, assuming the SQL Server team can deliver on its promises. SQL Server is a complex product and reaching feature parity on Linux is no small feat. Fortunately, Microsoft has left itself a fair amount of wiggle room with regard to when and what it plans to deliver, committing only to “core relational database capabilities” and a vague target date of sometime in the middle of next year. They’ve also started with a private preview well over a year in advance—a good sign that Microsoft plans to deliver a product that has been put through the wringers.

Some naysayers are concerned whether Microsoft will be able to drop its Windows-centric worldview long enough to build a credible server product on Linux. Of course, we won’t know the answer to that until next year, but Microsoft’s recent ventures into open source technologies and non-Microsoft platforms suggest that the company is ready to acknowledge and accept alternative realities and as a result is willing to confront the new frontiers, if only to better control them.

Yet many questions remain unanswered, and until we see exactly what features are included in SQL Server on Linux and how well the new product will perform, it is difficult to know what to expect.

From all reports, we’ll be getting a stripped-down version of SQL Server when it’s first released, but how stripped down? Will it include in-memory columnstore indexes? Failover clustering? Transparent data encryption? If features are missing, when will they be added? What about all the extras, such as Reporting Services or Analysis Services? Is Integration Services even in the cards?

To deliver anything credible, Microsoft must contend with a wide range of technical issues, such as how to negotiate a non-NTFS file system or provide seamless integration with Azure SQL Database and Azure Data Warehouse. And what about CLR stored procedures? Will users be able to port them to a Linux environment? Will the Linux environment have anything comparable?

Questions also arise about what SQL Server editions will be supported on Linux and whether feature parity will be at the edition level. For example, will Microsoft release a Standard edition for Linux that is comparable to the Standard edition on Windows? What about versions? Will SQL Server 2016 mean the same thing on Linux as it does with Windows?

We also won’t know with certainty how licensing will work until the product is closer to being released. Currently, it appears that Microsoft will be following the same model that is used for SQL Server on Windows (per-server or per-core). According to Microsoft, customers who buy SQL Server licenses will be able to use them on Windows for Linux, and Software Assurance subscribers will have rights to future releases of SQL Server on Linux when it reaches general availability. Does that mean customers who plan to use SQL Server solely on Linux and consequently are not able to utilize the full feature set will still have to pay for all the bells and whistles?

Another issue that Microsoft has to contend with is which Linux distributions to support. As already mentioned, the preview can run on Ubuntu or Red Hat, so those two seem a given for the final release. It’s also been suggested that Microsoft will support (or will need to support) SUSE Linux, but Microsoft does not yet appear ready to commit beyond Ubuntu and Red Hat for now.

However, the issue does point to the fact that the Linux operating system comes in many different flavors, and not surprisingly, the more Linux distributions that Microsoft supports, the more difficult their efforts to make everything work, especially when it comes to deploying, updating, and maintaining a SQL Server instance. Microsoft must be able to prove it can support SQL Server on Linux to the same degree it’s been able to support SQL Server on Windows.

More questions than answers

Microsoft has had a lot of years to get SQL Server on Windows right, and the result is a good, solid, reliable database product that includes plenty of extras, particularly in the area of BI. Many people will be expecting SQL Server on Linux to deliver the same experience. Anything less could result in a lukewarm reception and disappointing adoption rates.

Even if Microsoft gets it right, there are no assurances that SQL Server on Linux will win over converts. Those who’ve been happy with open source products such as MySQL or PostgreSQL are not likely to switch unless Microsoft can wow them with an extraordinary system, and as noted with Oracle, moving to a new backend platform is seldom an easy task. Still SQL Server on Linux opens up new pathways, so converts are possible, but it might take Microsoft more time than expected to win them over.

Certainly Microsoft has a number of challenges ahead to implement a Linux version of SQL Server that achieves complete feature parity with the Windows version, if this is even possible, but that by no means diminishes the fact that Microsoft is taking a significant step by moving one of its server products to another operating system. Imagine the Microsoft of 10 years ago making such a move. But if Microsoft does it right, the company and its customers could have much to gain.

Perhaps by this time next year we’ll have a better sense of the level of success that Microsoft might achieve with SQL Server on Linux. At the very least, we’ll have a considerably different perspective on what it means for Microsoft to come calling on its Linux neighbors.

  • 16828 views

  • Rate
    [Total: 11    Average: 4.5/5]
  • Robert Young

    the main issue, since (nearly?) all RDBMS excepting DB2 on z mainframes, are written in C/C++ is how much so. some rely on the OS for I/O and memory management etc. while others roll their own. depending on how much Windows is inside of SS, more or less of the code will either have to be ported to *nix service calls or written to provide such services internally. Oracle, at one time or another, has run on z (yes, it really did: http://tinyurl.com/gu7uczq ), windows, and *nix so it’s far from impossible.

    • William Sisson

      SQL Server was originally based on Sybase which was built to run on Unix and took care of most of the memory and disk management tasks itself rather than handing them over to the operating System.
      I don’t know to what extent Microsoft have changed this, but my understanding is that SQL Server functions still very much as an OS within an OS, and is therefore not that dependent on Windows. One of SQL Server’s strengths is that it’s multi-tasking is not based on operating system sessions.
      So I would see Linux based SQL Server as distinctly viable.

      • coreylawson

        way back in the day one could use Unix or raw data files in Sybase on Unix. It’s been way too long (and too lazy to google) to remember why one chose one over the other…

        SQL Server does its own thing with its data files, too. Sure, the data and log files show up in NTFS, but they’re internally managed by SQL Server like they’re raw files (it’s called SQLOS, and it has its own file system implementation in those files).

        I hope people aren’t too bent that it doesn’t support SSIS, SSRS, SQL Agent, etc. on Linux. SSRS and SSIS really are bundled *app* stacks, not essential for SQL Server core server.

        You can set up your SSIS and SSRS databases on a Linux SQL Server, and use the rest of the tools on Windows to “work” with these.

  • Postgresql

  • Elijah Gagne

    My impression of SQL Server on Linux is that it is that it will be most useful as part of a cloud strategy, in particular, where it is used in a Docker container. .NET has recently been ported to be cross platform and so if you’re a developer writing a .NET app on Linux, perhaps in a Docker container, you usually need a database solution for your app. With that in mind, I think it makes perfect sense that Microsoft needed to provide some sort of a database option on Linux. As organizations and vendors look to move applications to the cloud, running on Linux is very attractive. I’d guess that Microsoft will probably make more money on SQL Server on Linux, not from direct licensing, but from providing it as an option in Azure and other cloud services.

  • Jimbo99

    SQL Server to Linux should be the easiest part of the migration, it’s everything else Microsoft offers that enhances SQL server in Windows environment that is going to be the sticky part. Microsoft Office goes to OS X pretty much the same as it plays in Windows. There is no MS Access for OS X and that’s why Open Office with Base database beats MS Office in Linux and OS X everytime. To be honest, the way Base works, you’d be just as easily served using MySQL/Oracle, Firebird, MariaDB and anything else that is an open source database as a community edition ?

  • Blair

    Note to the author: before criticizing Oracle for having a complex licensing model, try licensing Windows… Unless you have the ultimate corporate plan (unlimited everything), it’s no less daunting for a MS environment – and that doesn’t even take into account user CAL’s or server OS licensing or virtualization… If you’re in a mid-size MS shop like me it’s a nightmare that even our VAR’s have trouble sorting out.

    • Michael Spurlock

      Amen. They both suck.

    • Matthew Blott

      Good point. I also struggled to understand the Azure pricing model and had an uncomfortable moment explaining a steep charge we received when I’d persuaded my boss we should give it a try.