Microsoft SQL Server is Coming to Linux.

Two things: SQL Server is coming to Linux, and no, this isn’t April 1st, although the meeting minutes kinda read that way.

Let’s zoom back for a second: if you want to expand an existing business, you have two good options:

  1. Sell a new product to your existing customers
  2. Sell your existing product to new customers

For years, Microsoft focused on option 1 by adding new features in higher-edition boxes to encourage customers to step up their licensing fees. SSIS, SSRS, SSAS, PDW/APS, Always On Availability Groups, System Center Advisor (aka Atlanta), PDW, Utility Control PointDACpacks, the consolidation appliance, Hekaton, etc. In SQL Server 2016, that effort continues with R and PolyBase.

I haven’t shied away from calling these efforts as I see ’em. That’s why you’re here, dear reader – I give you my honest feedback, and I don’t polish turds.

So it’s time for option 2: selling SQL Server to new customers.

A few years back, Microsoft unveiled a cloud-based version of SQL Server that’s known today as Azure SQL DB.

That worked. New customers used it. It was a cheaper way to get in the door.

In 2016, the way you get your existing product in front of new customers fast is to put it in a Docker container. It’s like a virtual machine, but it’s lighter weight – it includes just your app and its dependencies. However, the Docker ecosystem is all about Linux-based applications.

That means SQL Server has to run on Linux.

Right now, it’s basically a thought exercise.

There are a whole lot of questions that Microsoft has to answer before people will even consider this as a valid deployment option, like:

  • How will it be priced? The open-source market is notoriously fickle about paying for closed-source products, although they’re more open to paying for support and services.
  • How will it perform? The Docker audience will tolerate the performance overhead of containers, but people who want to run it directly on Linux will be comparing this directly to PostgreSQL.
  • What features will it have? The press release uses careful wording of “core relational database capabilities…in mid-2017”, which means the first version will suffer from the same feature limitation challenges Azure SQL DB had at first.
  • How will it be supported? If we’re honest, the SQL Server support experience has been tough even with just a single OS. The Linux community won’t embrace “have you rebooted?”
  • How will improvements be handled? The open source community is super-interactive, and they simply won’t tolerate the Microsoft Connect bug reporting experience.
  • How will deployments and updates work? Linux users want to see apt-get mssql, but traditionally the SQL Server installation and patching process has been much more challenging.
  • Will it be open source? Before you say this is unthinkable, remember that .NET has gone open source.

SQL-Loves-Linux_2_Twitter-002-640x358None of these answers exist today.

None of them.

What we have right now is a press release with vague wording. It makes for a really fun thought exercise, though.

Will it succeed?

I believe Microsoft can get the engineering right. If we were talking about the consumer devices group that produced the Surface RT, I’d say absolutely not. However, this is the SQL Server team, and I bet they’re going to nail it. I’m excited to see what they produce, and I bet it’s going to lead to a better experience for SQL Server on Windows too.

However, I think this is going to be too little, too late for the mid-2017 Docker and Linux database market, especially if Microsoft takes the same $2k-$7k per core pricing approach. I know what Microsoft is thinking: this is still cheaper than Oracle. But we’re talking mid-2017 before the first version ships – so it’s a race between a very mature PostgreSQL (which has the hearts and minds of the open source database community) vs a brand spankin’ new SQL Server (which has one hell of an uphill battle).

I’m really excited to see the race take shape.

Previous Post
SQL Server 2016 Installation Screenshot Tour
Next Post
Learning How To Learn: Setting Priorities

29 Comments. Leave new

  • Sreekanth Bandarla
    March 8, 2016 8:36 am

    Great Pointers Brent!
    My guess…Yes, it will succeed provided Microsoft can provide proper support. “How will it be supported” is my biggest concern, at least for first few years. We, SQL DBAs are sooo used to Windows Servers and Linux will be a new animal for most of us. It’s going to be a huge learning curve for a SQL DBA (at least for me). Bring it Microsoft bring it…

    Reply
  • Chris Nelson
    March 8, 2016 8:47 am

    Linux admins, developers and users are looking at the high SQL Server license costs and going, “Meh, nice try…”

    Most Linux shops have a variety of OSS database engines and tools to choose from. Many smaller Windows shops are exploring alternatives to SQL Server due to costs. (Yum, more contracts for me!)

    The only place this makes sense is on Azure, corporate clouds or very large enterprise deployments of just the core engine in a huge cluster. It may be a reaction to Oracle funding MySQL as an alternative RDBMS. (Or a shot across the bow of Microsoft’s OS group.)

    Microsoft can’t possibly port all the tooling, VS and additional Servers and services that make up the SQL Server infrastructure and environment on Windows to Linux. They don’t even fix the issues that you and the other MVP have begged for years on Connect. And .NET and Skype on Linux are treated like a red-headed step child.

    Color me amused. Or should I use the Southern US phrase: “Bless their heart.”

    Reply
  • While I’ve always been a big Unix/Linux fan I am not convinced that given Microsofts pricing model that they will be successful at this. At the very least it will be interesting to see if they can pull this off, and if they can make it run on a Linux box will they then try to make it run on OS-X?

    Reply
  • > SQL Server support experience

    Can you elaborate on that? I assume you are seeing quite a few cases as a consultant.

    Reply
  • After running Sybase on Unix for years, SQL on Linux sounds great!

    Reply
  • I was at a company that was trying to consolidate on one RDBMS to improve support, and in comparing technical capabilities of Oracle to SQL Server there was no clear overwhelming superiority of one over the other. What it came down to was SQL Server couldn’t run on Linux/Unix host. There was an overwhelming option that security and uptime capability of Linux/Unix hosts were better, and that’s what tip the scales to Oracle.

    Reply
    • I’ve been at several companies making the same sort of decisions. Neither was vastly superior to the other (though Oracle would like us to think otherwise). It always came down to cost and what OS you want to support.

      One company went to DB2/UDB based on cost. Another went to MySQL. My current company went to SQL Server. The 1st too stuck with unix/linux because it was already entrenched and they had lots of experience supporting it. The third chose SQL for the same reasons. Lower costs and they had plenty of experience supporting Windows.

      I used to feel that Oracle was superior because it ran on linux which was more scalable and reliable, but that was 10 years ago. Today I think both are just as reliable and scalable.

      Reply
      • Correct me if I’m wrong but doesn’t Oracle offer 24/7 support which you don’t get with Microsoft? That certainly used to be the case and in an enterprise environment it’s a deal breaker (and why Oracle has dominated Fortune 500 companies).

        Reply
        • Matthew – uh, you are seriously, wildly, amazingly, jaw-droppingly wrong.

          It stuns me that someone would even think Microsoft doesn’t offer 24/7 support. I’ve been working with their stuff for 20 years now, and it’s had 24/7 support the entire time. I can’t even comprehend where you would come up with something like that.

          Reply
          • I remember an Oracle DBA saying this to me a few years back. He was referring to 24/7 SQL Server support specifically.

          • Seriously, you should know better than that. Anyone even remotely involved in the tech industry knows better than that, let alone a “full stack” developer with MS stuff all over his site. C’mon man.

  • Steve Conroy
    March 8, 2016 1:12 pm

    Thanks for this post, Brent. I can always count on you adding a healthy dose of perspective to news like this. It’s definitely fun to ponder the possibilities, isn’t it?

    Reply
  • I think it’s 10 years too late, but very nice try for Microsoft. On the cloud nobody cares about server OS. I think docker movement is the driving force here.

    Reply
  • MSSQL on linux will be as popular as Oracle on Windows 🙂

    Reply
    • Christoph Wegener
      March 9, 2016 4:44 am

      One could say that it might even become more popular than Oracle on VMware! 😛

      Reply
    • Oracle on Windows is more popular than you might think. I found myself out of a job 5 years ago when my company outsourced all of IT to India. As an Oracle DBA at the time I was surprised to find that most of the companies I interviewed with were running Oracle on Windows. I ended up with a company running Oracle RAC on Windows, as well as SQL Server. (Boy was I glad I’d taken those SQL Server classes thinking someday it might come in handy). I support both at my current company and between the two I’d have to say I prefer working on SQL.

      Reply
      • That’s because years ago Oracle on Linux wasn’t that good at start afair (too young to have any experience with that). Not to mention support for Linux started with which version? 9? 8?

        Reply
      • Jiping Wang
        May 31, 2016 12:24 pm

        I also met clients running Oracle on Windows Server, because their IT team are experienced with MS server but not Linux server.

        Reply
  • As this is just core functionality, I am expecting something like SQL Server Express Edition for Linux, maybe with a simplified agent, but probably not. This will get around the cost problem, and allow the upselling of advanced features later.

    With Windows Server going to a per-core pricing model this could be a balancing act that stops SQL Server being priced out of the market.

    But what I really want to know is “Will it run on Raspbian?”

    Reply
    • Chris Nelson
      March 9, 2016 4:32 am

      Alex,

      There’s no point in having an Express Edition for Linux, unless incoming folks that would use .NET on Linux are so fragile they can’t handle SQLite, MySQL or PostgreSQL.

      Raspberry Pi’s don’t have the I/O bandwidth to handle more than a modest database. SQLite is currently the best solution I’ve found for smallish embedded projects.

      Reply
  • What will be interesting is how they price SQL Server 2016 for windows. They have to be competitive on the Linux side to be viable but that means they will need to provide the similar pricing on the windows side. I predict the core database engine on both Linux and Windows will be free or close to free. This means enterprise features is how they make money. This is never been good for the users since critical features that everyone needs haven’t been adopted due to vendors coding for standard edition. Microsoft will make the lion share of money long term via Azure and support so giving away SQL Server licenses a few years from now won’t been an issue but in the short term they need a pricing model that keeps making them money selling SQL Server licenses while at the same time adjusting to market forces.

    Reply
  • recent announcements and releases from Microsoft show everything they care about going to open source and Linux – witness – .NET C#, Linux distribution, membership in Eclipse.org, SQL Server on Linux and buying Xamarin. I am sure there is much more to come. As I see it, this is a quiet message to the market that Windows OS has peaked and on a slow and steady way out. The replacement for Windows OS is in fact Azure Cloud, which will be run by Windows but on top of all that Microsoft will run everything that people want to run. I think most important products from Microsoft will be ported to Linux inside next 2 years.

    Reply
    • Chris Nelson
      March 12, 2016 3:36 pm

      Unless Microsoft has been actively porting applications for the last decade, they will have a tough time porting major core applications to Linux. There’s so much dependence on the Windows infrastructure, it’s like leveling a mountain range.

      Reply
  • I am sure SQL Server @ Linux would be very beneficial.
    Considering the fact – restructuring the “Windows Components” that SQL Server uses like WMI , Windows Fibres and the like… – demands a complete restructure of the code should not impact the Execution Plans / features of SQL Server and I hope Engineers @ Microsoft would surely win to make this happen in a way it has to be.

    Reply
  • How long to you think it will be before they post some blazingly fast stats showing how well SQL Server performs on Oracle’s linux. };-)

    Reply
  • Interesting Topic,

    I would like to see if Microsoft would implement LDAP authentication on Linux OS.

    How Load Balancing options for MSSQL on Linux vs MySQL (Horizontally vs Vertical Scalability ).

    MSSQL on Linux with SQL Authentication ( multi master ) peer – peer replication where we need Index on tables.
    whereas
    MySQL has 10 different Storage engines and has already proved Horizontal scalability a cake walk to implement and manage.

    Reply
  • Hi, Brent,

    I am developing a “lightweight” clone of SQL Server, running on Linux (but it compiles on Windows too).
    So far, it is 90% finished. It successfully runs a subset of TSQL, like the little example below.
    Many things are still lacking, but it can already be downloaded and played with to get a first glimpse:

    http://www.rsql.ch

    All functions, statements and examples on the site are implemented and working.

    I’m just curious to have your opinion on such a project.

    —- small example of TSQL it can execute —

    CREATE TABLE [dbo].[t] (
    [id] INT IDENTITY(1, 1) NOT NULL,
    [name] VARCHAR(20) NULL,
    CONSTRAINT [$sysidx$0] PRIMARY KEY CLUSTERED ([id])
    );

    GO

    INSERT INTO t VALUES (‘Fred’), (‘Maria’), (‘Omer’);

    SET NOCOUNT ON;

    DECLARE @i INT = 0;

    BEGIN TRAN;

    WHILE @i<10
    BEGIN
    INSERT t(name) VALUES ('Row_' + CAST(@i AS VARCHAR));
    SET @i += 1;
    END

    COMMIT;

    SELECT * FROM t;

    Reply
    • Nicolas – interesting! I would actually make a decision on the licensing right away, though, and consider posting it on Github if you go the open source route. There just isn’t much interest in using a closed source database that isn’t feature-compatible with its competitor. The kinds of folks who would want to use this would be very impacted if you changed the licensing later down the road.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.