Let’s zoom back for a second: if you want to expand an existing business, you have two good options:
- Sell a new product to your existing customers
- 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 Point, DACpacks, 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.
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.