Hacker News new | ask | show | jobs
by recoiledsnake 5381 days ago
> Nobody uses Windows as a server OS,

This is the problem with getting tech news only from HN.

4 comments

Yes. At my last job, they had 200+ servers, all Windows.

When I tried to bring up Linux as an option, they sort of winced and said "Linux... ehhh... it's hard to get Linux doing what you want."

I've actually never heard that, I've heard more like "no one will support it" until RedHat came around, then it was "no one knows how to use it" until I saw IBM use it, then I heard "but there's no software" until I saw Oracle make software for it. That was just in Non-IT businesses. In IT-industry businesses, I never heard Windows discussed too seriously outside of "well, we had to unfortunately because of a client..."
I have never used Windows servers, and I am curious how do you do things which are obvious on Linux on a windows server?

1. Can SQL server deployment be automated? I remember reading somewhere it is mostly GUI administration, though things might have changed with WMI.

2. How do you manage IIS? Say you need to restart IIS on 200+ servers?

3. What is the remote model? Windows doesn't have a decent command line, so ssh will be weird.

Do you write custom code for all this, because I find the ecosystem on Windows sorely lacking.

Two words: Power Shell. Well, one word.

PS is a "decent command line" for Windows, that can handle most of the things you discuss pretty well.

Why should I learn a new toolchain when I already have one that's just as good but has been around for 30+ years? It's fun to reinvent the wheel, but as a user, sometimes enough is enough. Just give me bash and the coreutils, kthx.
You're completely killing innovation this way. Your bash and coreutils work on Windows, they're just not as useful in that environment. Would you also expect to have bash and coreutils on Lisp Machine?

Also if you don't know this anything about new toolchain, how can you say that your old one is "just as good"?

Caveat: I have been heavy Linux user for past 7 years, but I'm not so quick to dismiss alien technology, especially when it addresses obvious flaws in Unix -- e.g. piping plain text with parsing and printing it again on all stages seems so ancient, I would much rather like to be able to use structured data instead. Also, you could remove the overhead of process initialization if your command line tools are just functions, and not executables. Just sayin'.

PS is just a piece of the puzzle. In fact, if I were to automate things on Windows, I would pick perl/python/ruby(on linux, I use shell scripts only for jobs which are less than 50 lines).

The major question is does the objects which are to be automated lend themselves to automation?

Here is one of the results I found while looking for 'sql server automate'

http://msdn.microsoft.com/en-us/library/ms187061.aspx

If I were talking about MySQL/PostgreSQL, they lend themselves very well to automating. The shell script just calls the relevant programs.

Likewise, if I am automating nginx, shell is just the glue. nginx provides the nut and bolts, and scripting is the wrench.

Unless IIS, SQl server et al. provide similar facilities, powershell isn't going to help.

I haven't used SQL server in a long, long time. My doubts were from some articles I have read:

http://hal2020.com/2011/07/27/porting-microsoft-sql-server-t...

nix DBA’s used shell scripts as their primary management tool, but the SQL Server of that day was not scriptable. Would those DBA’s accept the use of GUI tools?

So it looks like it used to be the case that it wasn't scriptable, but it is now.

You can script and automate IIS and MSSQL using powershell. I'm willing to bet dollars against pesos that if MS hasn't made everything in Windows scriptable via Powershell, they are currently working towards it.

http://msdn.microsoft.com/en-us/library/hh245198(v=SQL.110)....

#3 is Remote Desktop, not sure on the other 2
I make it short: 1. Of course 2. You write a script. Or simply use something out of the Systems Management Product Family (awesome btw) 3. WMI or Powershell should do the job.

You rarely write custom code when scripting....most use cases a covered by a huge library MS offers. The rest is available through google :)

We have run large Windows Server Farms at my past company (SaaS Business) and maybe 3-4 Linux Servers...the ones causing the most trouble where the Linux ones. One reason: Every dummy can administrate a Windows machine....not so a Linux machine! That fact forced the Ops team to get rid of the Linux machines as quick as the could.

Every dummy can administrate a Windows machine....not so a Linux machine! That fact forced the Ops team to get rid of the Linux machines as quick as the could.

So you choose a inferior mediocre alternative just because you can hire mediocre folks to handle it(you mentioned 'dummy'). Ultimately having sufficient technical debt to make your miserable for the next decade.

Linux command line isn't very upfront friendly for sure, but its strength lies in automating as much as you can, programatically. When you talk of administration things go beyond cleaning up files and giving access to users. You must have abilities/tools to quickly hack up solutions to programming problems while problems in operations. That's why bash/sed/awk/perl and other Unix text processing utilities are so big on the server side. Unix forms a complete programming ecosystem in itself apart from being an OS.Windows command line is not just weak but literally useless in this area.

Its like saying just because anybody can use notepad, Emacs is useless.

Unfortunately, this is how business works. If they can hire an operations team full of Windows lusers and pay them $30K a year instead of Linux admins that cost $60K a year, they usually do that.

The thought never crosses their mind that you get what you pay for, and 1 qualified Linux admin can replace an entire team of Windows admins due to automation, scripting, and superior manageability of Linux.

Look at it this way: you should never trust a single guy to manage your entine system. You need to have backup in case of the flu, accidents, anything.
What do you think makes it inferior and mediocre?
Reasons: --------

1. Windows was never originally designed to work as a Server side operating system at the first place. They started to drive it on the server side when they first discovered the Internet had a huge commercial potential to sell machines on the backend. There fore all means of getting things done on a windows machine for a developer have to go somehow through a set GUI's to get work done programatically. This sucks from a programmers perspective, programming is all about level of customizability.

2. Command line on windows sucks, apart from just removing, adding files/directories and running commands anything else is just a pain. The UNIX command line is a complete interpreter in itself(bash).

3. The UNIX operating system is more than an OS, its a complete programming ecosystem in itself. The whole concept of everything being a file or a process is just so elegant. You can endlessly leverage native tools like sed/bash/awk/cut/tr/perl and other text processing utilities to solve any problem with a combination of text files and processes. Which is not easily possible with windows, heck using those tools on windows is big pain. They are often ported with limitations.

4. Debugging, is a breeze. Checking logs is a breeze. Text processing utilities and endlessly configurable tools make it very easy for system administration with the help of pipes. This is very crucial for system administrators. They often want to do stuff without the help of programmers to get quick solutions when they get paged at 2 in the night.

5. Many other development features like Inter process communication with tools like DBus. Sockets et al are vastly superior in UNIX than windows.

6. Many programming languages were developed(Perl/Ruby/C) with entire context of UNIX in mind. Therefore they natively work very well with UNIX.

7. Vast resources of knowledge of troubleshooting and maintenance available for UNIX. Which makes things newbies easier to deal with it.

8. Unix is open source, its freely available. And will be there for a long time. People who supply it do it on passion and pure volunteer effort and will do it for fun and because they like. Windows can be killed by anytime for profit.

9. Vendor lock in problems. I don't understand why I should use all MS specific software all over. I can't scale horizontally due to cost issues. Also apart from .NET developing for any other technology sucks on windows.

10. Lack of multiuser login, Servers need many people to login and work at the same time. For testing and for development reasons.Servers are just so much more than deployment only boxes.

11. GUI overhead, Why should I spend my computing resources on OS and GUI when I should I actually be spending them on my applications?

12. Registry is a pain on Windows, I don't have to worry about those hassles on UNIX.

The list goes on and on...

> they sort of winced and said "Linux... ehhh... it's hard to get Linux doing what you want."

I'd say the company you work for has a humongous and probably incurable HR problem. If this is the kind of IT folks they hire, my best advice would be to run away and stay as far from it as possible.

You can also write a very fun book with the stories you probably witness. I'd buy it.

> This is the problem with getting tech news only from HN.

Most of us have worked one or more tech jobs, and HN isn't the source for the assumption that nobody uses Windows as servers. That nobody is far fetched - of course .net shops will most probably be deploying on Windows; for some reasons most of the Java shop do so as well.

But outside that, Linux or BSD is the favored deployment platform. And the OP's argument basically boils down to server vendors can't afford to not boot Linux, not when Linux has a significant market share.

There's more to life than deploying webapps.
I read this as no-one uses Windows (desktop) as a server OS. This is true.
I've n ever worked anywhere that doesn't use Windows as a server OS.