> I dread having to set things up on a new Linux machine
That's what Puppet, Chef, package management and a host of other tools such as virtual machine images and unattended installs are for.
> There's always some hardware that doesn't install correctly
Most server-grade hardware you buy from reputable sources is exquisitely Linux-compatible. I never had any problem with that.
> it takes an odd sequence of commands that needs to be run in just the right order to get things going
This indicates you are deploying servers without really understanding what you are doing. Your phrase evokes a series of spells that have to be cast in order to conjure the proper demons. Unix machines simply don't work like that - there is no magic.
> Invariably I waste hours on the internet searching forums every time I do this
Buy a good book, read and understand the documentation of the software you use. Hire an experienced consultant to teach you and your team, if needed.
When you understand what you are doing, it is really easy. Every piece is open to inspection and all you need to do is look inside.
> I find IIS 7 to be much easier to set up and customize than Apache in terms of hosting web applications.
Until you need to do something the GUI doesn't allow you to do.
> I also find it's much easier to administrate large groups of Windows servers because of the nice tooling
The tooling is there - you just need to learn it. We use Puppet where I work and we use it to manage our server fleet. Works as intended.
You're totally right. I don't know what I'm doing. I'm not a sysadmin by trade. I've had the misfortune of having to deal with sysadmin work because I was the only one willing to dive in. So you mention Puppet, Chef, the distro's package manager of choice. These are all great tools but they have a learning curve. My point was that hosting apps on MS requires much less in the way of configuration and learning. You can just get things working.
Indeed, but it's harder to automate. And automating tests is very important.
Some test cycles here involve the automated deployment of VMs based on machine templates that are then configured using Puppet. If we were to do that with Windows, those tests would never run.
Maybe I misunderstood what you're saying (and on re-reading I'm still not entirely sure). Are you saying you chose a tool that doesn't work on windows and those tests would never run because of the tool you chose? Or are you saying that automating the deployment of VMs based on machine templates for testing is not possible in windows (hence "those tests would never run"). Reading your parent comment re: automated provisioning and configuration of virtual machine images - windows has all this. You suggest that people learn linux better, but seem unwilling to do the same for windows.
No. I chose the tool because it did what I wanted it to. It was implied there are automated tools that, say, upon an SCM push with a given tag, can instantiate Windows VMs, deploy and test the app with no manual intervention and report any issues encountered. I never did that and I'm curious about how would you do it.
I imagine a combination of Buildbot and Microsoft's VM container could do it and be automated with a PowerShell script, but I'm not very sure how. Has anyone done something similar to this?
That's what Puppet, Chef, package management and a host of other tools such as virtual machine images and unattended installs are for.
> There's always some hardware that doesn't install correctly
Most server-grade hardware you buy from reputable sources is exquisitely Linux-compatible. I never had any problem with that.
> it takes an odd sequence of commands that needs to be run in just the right order to get things going
This indicates you are deploying servers without really understanding what you are doing. Your phrase evokes a series of spells that have to be cast in order to conjure the proper demons. Unix machines simply don't work like that - there is no magic.
> Invariably I waste hours on the internet searching forums every time I do this
Buy a good book, read and understand the documentation of the software you use. Hire an experienced consultant to teach you and your team, if needed.
When you understand what you are doing, it is really easy. Every piece is open to inspection and all you need to do is look inside.
> I find IIS 7 to be much easier to set up and customize than Apache in terms of hosting web applications.
Until you need to do something the GUI doesn't allow you to do.
> I also find it's much easier to administrate large groups of Windows servers because of the nice tooling
The tooling is there - you just need to learn it. We use Puppet where I work and we use it to manage our server fleet. Works as intended.