Sure you could cobble together a bit of this and a bit of that that sort does something similar, but it takes 10x as much effort, only has 1/2 as many features, and is a nightmare to support or troubleshoot when it breaks (or a new guy comes onboard and has to figure out your homebrew mess you created.
It's not cobbling stuff together, it's a different thought process for tackling a problem. Rather than having one big mess provided by Microsoft, you have lots of individual parts that do one thing well and are configured to work together--see the LAMP stack for an excellent example.
A new employee doesn't have to figure out the "homebrew" mess, they just have to know how to manage the application(s) they are responsible for--A skill that is vastly lacking with most Windows Server admins I have met--no, rebooting a server does not "fix" the fact that every 5 days the server is at 5% load with 95% memory utilization.
Most of Microsoft's problems in the server space is that the products ship with 10x more "features" enabled than are actually needed. This makes for loads of time disabling things or having vulnerable servers. A properly managed unix-based solution usually has 100% of the needed requirement--no more, no less. This limits exposure to security issues and limits the effects of bugs or bad code on the overall health of the system.