Solaris as a server OS - why? [closed]
Solution 1:
We used Solaris (edit Nov 2012: this was in 2009) for software designed to run only on Solaris+Sparc.It is certainly a reliable and robust operating system.However, unless you have an application that offers tremendous advantage when run on Solaris+Sparc, there is no need to go that route.
Undermost circumstances, you will not be using OpenSolaris on production, but the latest Solaris 10 release (May 09 as of now). For someone from a Linux/FOSS background, there is significant effort required to make a Solaris 10 install as "comfortable" as Linux.
Many Solaris gurus I have met are certainly very talented... but are often unaware of how the FOSS packages available from Sunfreeware and OpenCSW can make life easier.
Standard Unix utilities included with Solaris are fully back compatible (another word for back-ward ass). Some Solaris gurus end up installing gnu-tar, wget, gnu-grep and etc for sanity. Some packages are available only as source and not adequately tested by the authors on Sparc. (not all developers have a Sparc box)
Linux/FOSS users are used to patching/upgrading systems using apt/rpm/up2date/ports/yum/whatever. On the other hand, Solaris patching=hell. The most capable Solaris patching tool is actually a 3rd party script, un-supported by Sun. Take your time going through the comments here.
A brilliantly backward-ass "feature" of Solaris is that all package names start with SUNW. (they are working on changing this with OpenSolaris). So lets say you have a package called SUNWfoo Version 1.2. If you release a patch for this package, what would you call it? A rational person not introduced to Solaris would think "SUNWfoo version 1.3". That's wrong, because Solaris patches are for files not packages.
Take a look at this weekly "Sun Patch Club" email that I get. It makes no sense. Compare the Linux/BSD OS update tools and packaging systems and then think about jumping into this.
As for reliability, the most important parameter is your Sys Admin. If your Sys Admin is a Solaris guru but knows nothing about Linux, then Solaris is a great idea. In the hand of a capable Admin, any OS is reliable. But hardware, disk, ram, network equipment will all fail. Once you have a certain number of servers, you will have Sun people coming in to replace something every few weeks. If you go with x86, you will have Dell/HP people coming in. Whats the difference? I don't look at the numbers, but I'm told Sun+Sparc is more expensive.
Many Solaris shops that I've seen are still stuck in 1999. They buy a big expensive Sun box without looking at any performance numbers.("It's expensive, so it must be good.") Three years later, they replace the big box with a bigger box. If your application works best with this strategy, then go ahead with Solaris.
On the other hand you can architect your application to be reliable/scalable/highly-available. If some cool software/hardware on Solaris enables you to increase performance substantially, or be more reliable then go with Solaris. However, you will find that many companies have been able to scale up and scale out their app servers, web servers and DB servers using complete FOSS based technology.
I guess many of these points will be obsolete in a few years when OpenSolaris is ready. As of Nov 2012, Oracle has gutted OpenSolaris, and Solaris 11 is no longer compelling.
ZFS and Dtrace are very compelling features. IMO, they are just not compelling enough to ignore Linux/*BSD. ZFS and Containers are not problem free. The "binary-compatibility" argument is not that important with the proliferation of virtualization. Binary-compatibility is also not problem free.
Today Google, Apple (yes Apple), Amazon, Facebook make billions of dollars running massive clusters that run only Linux underneath. 90+% of HPC/Super computer clusters run Linux. At the other end of the spectrum, about a billion+ phones and small devices run Linux.
What could anyone possibly gain, even if it were possible to run the above on Solaris? Or in other words, what are these people losing, by not running on Solaris? Clearly, ZFS, Zones, Dtrace etc is not compelling enough for them, to outweigh any negatives. The answers to these questions, should help you answer the original question "Why".
Solution 2:
Solaris does have a number of qualities that are pretty nice. I don't run Solaris much and I'm not that experienced with it so I'm sure others will have a bigger list than this.
Here are a few that I can think of.
- Solaris has a lot of nice tech under the hood that you can't find anywhere else. Such as ZFS, DTRACE, Comstar, Crossbow, Containers. You can find ZFS in BSD's and OSX Server.
- It's supported for 10 years.
- It's binary stable. Meaning that programs written for Solaris 2 still run on Solaris 10 today without any changes on both x86 and Sparc.