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.
Aside from having to reboot to apply some patches and the cost, Windows Server runs fine as a server if you're running an all or mostly MS stack. TBH, some things about Windows Server I like considerably more (e.g. performance counters, the event logging system, PowerShell) than the equivalents on Linux.
I always thought that Windows gave me a super easy to setup server too because of the fact that I don't have to use the command line.
With Linux server setup, if I haven't done something in a while - I must go and hunt down the information on what files I need to configure and commands that I need to run. Sometimes it takes hours of reading. With Windows I can usually take a look at the standard management interface provided with the server software and just figure it out or be guided through it.
Professionally I haven’t been very involved in deployment, but my experience deploying personal projects to, and configuring, Linux servers has taught me that the process is confusing, poorly documented and difficult. Don’t get me wrong, it’s doable and I’ve done it (likely poorly), but after a day of stitching together steps from blogs and frequent back-tracking and starting from scratch, you have to wonder if there isn’t a more user-friendly way.
I’d hope that windows server offers this, though I don’t know that it does, as I haven’t much experience with it. As windows is considerably more GUI centric than Linux that could be a big plus for me personally. I’d certainly check it out, at least to compare the experience to Linux.
But currently, given that windows servers are not free, Linux wins hands down.
Can someone with Windows Server experience please explain how this might make any sense at all?
I've never uses Windows Server or any of the MS server technologies. The closest I've gotten to this was using Exchange in the context of being just another user in a corporate environment.
If you need Windows Server, why would you want any part of Linux?
And, if you need Linux server, why would you pile gigabytes (?) of MS Server code onto your server?
I can see (and I like) the utility of WSL on the desktop for development. As this evolves it will become more and more useful. But on the server? Not sure I see the point.
I use C# w/ Windows Server for game servers but I'm in the process of migrating to Linux. Why? Because everything else I have runs Linux so managing an extra OS is a lot of overhead. And Windows Server automation is hugely painful compared to Linux. With Linux automation for example, you can go from Ansibel which is a wrapper around SSH to Chef/Puppet that are very very powerful but much more complicated. With Windows, you get crappy Chef/Puppet support and the MS automation tools (from what I've seen) are too complicated for most people. Even setting up remote Powershell access is painful compared to setting up sshd. In short, there's monetary reasons for running Mono as well.
What part of hosting apps on Windows was painful to you? I actually prefer to host my apps in Windows when I'm able and the technology stack supports it. I don't need to set up new apps often, but when I do, it's many orders of magnitude faster for me to get an app running on Windows vs. Linux.
Linux works great as a server OS once I get everything set up and configured correctly. I never need to think about it again. However, I dread having to set things up on a new Linux machine. There's always some hardware that doesn't install correctly or some config file that needs twiddling. Sometimes it takes an odd sequence of commands that needs to be run in just the right order to get things going. Invariably I waste hours on the internet searching forums every time I do this, getting more and more frustrated the whole time.
As far as Windows hosting goes, I find IIS 7 to be much easier to set up and customize than Apache in terms of hosting web applications. I find the uptime of Windows Server boxes to be functionally equivalent to their Linux counterparts. I also find it's much easier to administrate large groups of Windows servers because of the nice tooling. Things like Active Directory, SMS and SCOM make things pretty easy.
I kinda like Windows server, mostly for the stability - both of the runtime and of functionality. Compared to Linux it requires less attention, i can concentrate more on software and less on the system: after two years of not touching i can still find configuration options in more or less same places. With Linux i have to re-learn quite a lot after not paying attention for a while. Missing good ssh/command line but not badly, I don't really need advanced shell scripting.
I'm not talking about just the operating system, I'm talking about the platform and the necessary services you'd need on a server. Configuring a windows server, setting up IIS, mail server, etc, are different from version to version. Linux is much more consistent, editing a few text files in /etc. Sure, you can jump into cmd and execute many of the commands that always worked on windows, but that's a very small set of commands compared to Linux.
I made the switch to Linux a few years ago for servers, only months ago for my primary workstation, and I'd never go back to Windows; though Windows with cygwin is close enough to Linux to make a very nice workstation.
I won't comment on the eBPF or WSL or even the Windows as linux debate, but I used to do some Windows admin.
Some clarifications are in order.
MSIs CAN be installed on servers with no gui required. Or much more commonly via powershell automation. Completely remotely and I'm not referring to remote desktop either.
I know its fun to complain about Windows, but really, if you're not using powershell and the right tools such as a Windows Domain, you're kind of like some kind of debian linux admin that refuses to use bash scripts / debian apt / ssh etc plus chef or similar management. It really is that kind of comparison you're making. What would you say about a linux admin that refused to use SSH or any scripting? You'd wonder why they are complaining.
Most of Windows Server comes alive when you join the machine to a domain and it gets access to actual infrastructure rather than some lone isolated server. This is to the point where you don't even need to log into the machine via remote desktop or ssh at all. In fact you manage the server from a completely different Windows machine with an admin account within the domain. You can then run the powershell script on your management computer and things happen on the target computer(s). I haven't even mentioned the multiple other tools you get as part of the machines being joined to a domain. Or you can deploy the script to the machine and execute it there. Still no remote desktop required.
So, I am not a big fan of windows- so do not take this for defence of windows.
But my understanding is that windows fleets are just administered drastically differently than Linux fleets.
On Linux we have a lot of config management tools and commandline remote administration kits.
In windows they have SCCM and remote access GUIs which do not get rendered on the target server. It’s very common to see a GUI program which does something pretty basic but over 500+ windows machines in windows heavy shops. In fact when I explained that I do all my scripting with a local target (because I use salt stack which is essentially a remote execution framework before it is a config management system) I was told in no uncertain terms that I was doing things the “old way”.
Using windows for servers is plain wrong and usually reserved for the inexperienced, and you stating the opposite is just a projection. The only issue in linux is with proprietary software that microsoft intentionally limits to its own os.
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.
reply