SQL Server on Linux? HELL YES! Linux on Windows 10? Meh
Like GNU running in Windows – outrageous. And pointless
Once the second biggest enemy of Linux (SCO Group takes top honours), Microsoft is positively giddy about not just supporting Linux but actually building tools that run Linux in Windows and about putting previously Windows-only software on Linux.
One thing I haven't heard a lot about is what it's like to actually use these new tools and – more importantly – whether anyone is using them.
One thing is certain, though. Linux distros are betting that people will.
First Ubuntu. Red Hat and SUSE Linux followed in rapid succession to support Microsoft's popular SQL Server. That quick pace says at least some aspects of the enterprise are itching to get their hands on SQL Server without giving up their Linux infrastructure.
All Microsoft's database competitors are available on Linux, but until the recent announcement, SQL Server was not. That meant that if you wanted SQL Server you had to forego Linux, which might mean losing all sorts of other tools. At the very least it meant that SQL Server had a cost above and beyond the financial.
Now SQL Server is on the major enterprise distros, that non-financial cost is gone. And while open-source supporters might be loath to admit it, SQL Server actually does have some advantages over competing open-source projects. Perhaps the best things about SQL Server is the plethora of tools around it, particularly tools that allow those with little to no SQL knowledge to build powerful databases and run queries without learning how to do table joins. The level of abstraction that SQL Server offers makes it more accessible than many similar tools.
SQL Server on Linux eliminates the tight coupling with Windows and will most likely end up making Microsoft more money since it provides an inroad for SQL Server in all-Linux enterprise deployments, a place it would have previously been off the table. It also makes it easier to get SQL Server into the largely Linux-based world of container computing.
There's a lot of hype around container-based computing, but believe it or not, some of that hype is deserved. Containers make it possible to run just about anything anywhere. The underlying operating system becomes largely irrelevant. Red Hat's Project Atomic provides the best linguistic clue about what this means: right now, containers are the atomic unit of computing.
Once you have everything you need in individual containers you can deploy them on any platform you want. The only thing that matters is which set of tools you want to use to manage your containers. Microsoft's Azure platform happens to support all the popular choices right now: DC/OS, Docker Swarm and Kubernetes, which makes Azure a compelling option for a very un-Microsoft reason: choice.
And believe it or not, Azure is actually pretty nice. My experience is limited to a single client, but Azure has been stable, has a wealth of management tools that don't require years of sysadmin experience to use and it supports just about every container management system you want to use. It's every bit as good as AWS and, frankly, it's the only real alternative out there.
While AWS is a fantastic system, it has a virtual monopoly on cloud-based development, and if you don't think that's bad (because AWS is good) you haven't been working in this field long enough. Azure may well turn out to be the best thing that's happened to the DevOps/sysadmin world if for no other reason than providing meaningful competition for AWS.
It should be no surprise that Azure has been the object of Microsoft's obsession lately – Microsoft chief executive Satya Nadella had run the server group that now houses Microsoft's cloud infrastructure service.
Former CEO Steve Ballmer may be gone, but it's clear that his "developers, developers, developers" chant still echoes through the halls of Redmond. Microsoft recognises that it needs top developer tools to give to its top developers. And that's why you can now run Bash inside your Windows 10 install. That gets you a "native" experience in the shell with tools like awk, grep and all the other developer favourites.
Technically speaking, this is not Linux running in Windows. Linux is a kernel and there's no kernel here. Intrepid hackers have, however, managed to get the bulk of Ubuntu running in Windows. That's not officially supported yet, but clearly the underlying tools make it possible to really run Ubuntu in Windows. The official Bash plus Ubuntu under the hood make it more like GNU running in Windows, which is actually slightly more outrageous from a historical point of view.
Whatever the case, while I'm not about to suffer Windows 10 on a regular basis, at least now I can use the basic set of Bash tools I'm used to without running a virtual machine, which means everything is faster and there's less frustration.
Still, every time I use it I can't help wondering, why not just run Ubuntu and put Windows in the virtual machine? Part of me thinks this move was – in addition to a PR play – mostly aimed at Microsoft's own developers.
The company probably isn't quite ready to hand out laptops running Linux to employees, but it does need those tools available for developers and it also seems to grasp that improving the dev tools in Windows is not good enough. Bring Linux into Windows and your problems are solved.
There's also the developer mind share to consider. Let's face facts: it's been a long time since anyone really cared about Windows. When was the last time you heard about a hot new technology for Windows that was developed by someone other than Microsoft? When was the last time you heard about a hot new startup building its infrastructure on Windows?
Even if Windows soldiers on in the established enterprise market, it lost developer mind share and enthusiasm years, if not decades, ago. Azure, though, that does have some of that new hotness around it. That's part of why it already has a significant share of the so-called Infrastructure as a Service market.
With SQL Server available on Linux and all the basic shell utilities running in Windows 10, many a sysadmin's life just got a whole lot more bearable.
It does have one big feather to put in its cap, though: Azure is well ahead of Google Cloud Platform and Microsoft is clearly hoping that the Linux-backed announcements over the past year will propel it even closer to Amazon's heels. ®