I am currently using a cluster of Mac Minis as a server platform. Some benefits:
* Launchd is a massive improvement over the equivalent mess on Linux. This can't be understated if you are managing your own hardware.
* You can develop on the same machine you are deploying to.
* You have exactly the same toolchain as on Linux.
* Lots of remote monitoring options that are unique to OSX e.g. OSX Server
* The OS is stable and upgrades are safe enough to enable auto update. I could never do that on CentOS.
But really it comes down to hardware and resale value for me. 2 Mac Minis in 1RU is great value.
Most modern Linux distros use systemd now, which is a pretty good unified platform for starting services.
I don't quite understand the other points; you can certainly develop on Linux and there are lots of mature monitoring options.
The trick with auto-updates is, you're getting everything from the package manager. This forces you to keep everything up to date, not just some notion of the 'core system', which is what you're getting from Mac update. Of course, you have to have some discipline and stage major updates in a testing area before you actually update production servers, but I think you'll find key packages like OpenSSL should probably be kept up-to-date.
Personally, I maintain a system which consists of about 30 CentOS servers; not large by any means. But things like upgrades and monitoring are a non-issue; we test updates before we apply them, and we use Nagios for monitoring.
As someone downthread pointed out, you can get a SuperMicro 1U server with a hell of a lot more horsepower than a Mac Mini for an equivalent price; the motivation for Mac servers seems to be almost exclusively to test and build Mac-specific software. I'd be curious to know what your specific application is that motivates this?
I don't have extensive experience with Launchd, but what makes it better?
OS X doesn't have the same toolchain as Linux - notably, Apple doesn't ship anything licensed under GPLv3. This leads to OS X versions of common GNU tools being extremely outdated.
I do agree with the point about developing and deploying in the same environment. I do both in Linux for that exact reason; far fewer surprises when your deploy environment matches what you've already debugged.
Everything. It is all in one place, very simple to use, has process monitoring like Monit and well supported.
Nobody uses what Apple ships by default. Homebrew or MacPorts and I have exactly the same setup as I have on my Linux server. Plus lots of amazing GUI wrappers which can simplify setup and ongoing maintenance.
Homebrew has some pre-built binaries too. From the FAQ: "Homebrew does provide pre-compiled versions for some formula that take a long time to compile (such as Qt which can take many hours to build). These pre-compiled versions are referred to as bottles and are available at: http://sf.net/projects/machomebrew/files.
1. Name your package manager, and I can list the missing packages, or missing flags which have made my life a pain at some point in my career.
2. Yup, and the only way, should you need to set any flags.
3. True. Which is why it's nice that you can mount dmg's and install pkg's via the command line.
How is remote management for these systems? I'm a big Mac fan, but for server infrastructure I've often wondered if Software Update and related things could be more trouble than it's worth.
* Launchd is a massive improvement over the equivalent mess on Linux. This can't be understated if you are managing your own hardware. * You can develop on the same machine you are deploying to. * You have exactly the same toolchain as on Linux. * Lots of remote monitoring options that are unique to OSX e.g. OSX Server * The OS is stable and upgrades are safe enough to enable auto update. I could never do that on CentOS.
But really it comes down to hardware and resale value for me. 2 Mac Minis in 1RU is great value.