Hacker News new | ask | show | jobs
by jasode 3188 days ago
If I put on my "CIO" hat, I would say "no".

An observation from several decades of the software business is the concept of the "reference platform". For MS SQL Server, the reference platform is Windows, not Linux.

This means that if development for the different operating systems gets out of sync, it will be the Linux version that lags instead of Windows.

If I have an urgent crisis with a database down and need to call MS tech support[1], their troubleshooting team will be way more familiar with Windows than Linux.

It's really a bad idea to deploy on a non-reference platform. For playing around and experiments, that's ok. However, for deployment on production environments, it's a risk.

The "reference platform" for MS Windows NT was x86, not MIPS or DEC. Therefore, we didn't deploy Windows apps to MIPS machines. (That was a good decision since MIPS, DEC, and Itanium versions of Windows got cancelled.) Solaris reference platform was their SPARC computers and not Intel x86. Yes, Solaris had a version ported to x86. That was ok to play with at home but we wouldn't deploy any commercial production apps with it.

Same for dev environments. If you're using C#, your life will be easier if you go with Windows instead of "C# NET Core" on Linux. If you're programming Ocaml, stick with Linux instead of trying to cobble together Cygwin+MinGW to deploy Ocaml apps on Windows.

Try to stay with the reference platforms to minimize headaches.

[1] https://www.microsoft.com/en-us/microsoftservices/support.as...

4 comments

One point to add, the reference platform is going to be much better tested and battle proven both in-house and in practice.
Support is support, Microsoft is very comfortable with Linux and uses a lot internally already. They're also partners with Redhat which is what most enterprises will use anyway.

MSSQL also runs on a abstraction layer since v2005 so there's no inherent problem with running on Linux. Also containers change the entire scenario.

>MSSQL also runs on a abstraction layer since v2005 so there's no inherent problem with running on Linux.

Yes, one would think an extra abstraction layer would render platforms exactly equal but that's not the real-world outcome. For example, Windows Server also runs on an "abstraction layer" called HAL (Hardware Abstraction Layer) and yet we had production problems with Windows on Itanium that had specific knowledge base articles and hotfixes for Itanium.

Did Microsoft premier support help us with Itanium problems?!? Yes, they were responsive and eventually solved some obscure bugs. But their support for Intel x86 was more complete and up-to-date. Likewise, I anticipate that Microsoft will be competent and helpful with customers running SQL Server on Linux. But I don't expect their specialists to have the same level of expertise as MSSQL on Windows.

If someone wants to run MS SQL Server on Linux, that's fine but don't think the enterprise platforms are equal. That usually doesn't turn out to be the case.

>Also containers change the entire scenario.

I'd be totally comfortable with MSSQL on Linux for dev/sandbox/QA environments (avoids licensing costs of Windows). But not for mission-critical production deployment.

That is a worry. I guess it could depend on the uptake of SQL Server on Linux though.
This. You always want to stay as close to standard as possible. Cowboy technology and too clever by a half solutions have no place in enterprise.