Sun's Solaris is still significant in the server market. What are some of the advantages to using it in a Unix shop? Since it's easy to mix and match Linux and Solaris, are there special tasks at which Solaris servers excel?
I would say two of the big advantages to Solaris are ZFS (http://en.wikipedia.org/wiki/ZFS) which is a 128-bit filesystem who's awesomeness I could not begin to describe in a few paragraphs, and DTrace (http://en.wikipedia.org/wiki/DTrace), which allows for kernel level troubleshooting/tuning of production systems in realtime.
Edit: Sun has a "benefits of running Solaris 10" document available here: http://www.sun.com/bigadmin/features/articles/s10_dsee_benefits.pdf
Besides the marquee features (ZFS, Zones, DTrace) people mentioned above, (Open)Solaris also has great observability and management tools. Some things that I like:
- prstat - sort of like top but can view tons of stats based on per-process or per thread including breakdown of CPU time by many different categories (sleeping, locks, waiting on CPU, etc)
- coreadm - easily administer how core files are named and managed
- plockstat - view userland lock statistics for a process
- lockstat - view kernel locks
- FMA - fault management architecture handles HW failures well and has good reporting
- privileges - hand out "bite sized" pieces of root privileges to accounts that need it
Also, the new 2009.06 OpenSolaris release has:
- Excellent network virtualization support (vanity interface naming, virtual NICs, easy rate limiting)
- Multi-protocol (iSCSI, FC) storage target support
One thing that has long frustrated me with Solaris is the antiquated packaging/patching system. This is being fixed in OpensSolaris with a new package management system. I think there is still some work to do, but it is coming along fairly well.
ZFS rocks. The more disks you have in your systems, the more it rocks.
Personally I'm a fan of JumpStart for building up servers. One touch (boot from network) installation & configuration so that your machine is production ready is fantastic. Obviously there's a fair bit of work in getting it automated, but in a configuration controlled environment it can't be beat. RedHat Linux's kickstart is good as well, but I believe JumpStart (with frameworks like JET) provides a fair bit more functionality.
Another advantage is binary compatibility with older applications (i.e. legacy support). The people who maintain Solaris have been much more diligent about this than the maintainers of (for example) glibc. While this is more likely to be of interest on SPARC hardware, there is a considerable body of software such as Oracle for this platform that does run on X86 hardware. Sun also maintain Java for this platform.
Solaris may be a good choice if you're planning for a long-lived production application that you expect to be in service for years.
Solaris loves threads and scales very well. Prime platform for heavy multi-user/multi-threaded applications on any server, but really shines on bigger servers.
Others have already mentioned ZFS/Dtrace. Other benefits are Zones (lightweight virtualization - good enough for use in production), and SMF (init scripts done better - automatically restart a service when it dies if possible and other benefits).
Don't forget that ZFS and DTrace are available in a semi-stable format on FreeBSD 7+. Good for tinkering, but then, so's OpenSolaris.
A late addition, but I think its not unimportant.
For me the first platform requirement is stability. Not long uptime, but APIs that don't change overnight. Sadly, but understandably, Linux fails this. Every release is different. Stacks change, APIs change, ... Solaris thinks very much on how to implement new solutions so that you're not forced to update or force to change apps when upgrading.
If you are serious into software that you want to run and support for 10+ years, this is the first point you look at - API stability and known lifetime management.
No one has mentioned LiveUpgrade yet. LiveUpgrade gives you a way to install patches, or even upgrade the OS to a new release, but gives you a recovery where all you do is reboot, and you're back to the way you were. Using ZFS and cloning gives you even more possibilities. I recently took a Solaris 9 box with an SVM mirror and upgraded it to Solaris 10 with a ZFS mirror with less than 10 minutes of downtime.
It's a very specific answer sorry but BEA (now Oracle) WebLogic is famously superior on Solaris than Linux - if you happen to be a WL user and push it hard then consider Solaris x86.