Solaris vs. Linux in the Data Center - Maturity vs. Gloss
If you've been around the Unix discussion groups, most likely you have run into countless arguments on the merits of Solaris vs. Linux and which one is better for a particular task or which one is technically superior. The scenario is quite typical where Solaris proponents claim superiority on the technical grounds while referring to Dtrace/ZFS and Linux fans claim that Linux is more ubiquitous, more polished and easier to use. I would agree with both sides - Solaris is an undisputed winner on the technical grounds with more advanced technology packed into it and Linux more of a consumer friendly type. If we go to the world of car analogies, I would liken Linux to a small pickup truck that has a nice stereo and a pretty paint job, Solaris on the other hand is more like giant Caterpillar earth moving truck - it doesn't have the prettiest paint job in the world and it may not have the stereo, but it is brutally efficient at what it was designed to do - moving dirt, moving lots of it and doing it in the most efficient manner. Predictably Linux fans quip that Dtrace, ZFS, high scalability, etc. of Solaris is something they can live without by compromising on old-school LVM/RAID, SystemTrap (poor mans imitation of Dtrace) and scaling horizontally on small PC-type servers. Its all good and true, but compromise is a compromise and all it is saying is that Linux is still second best technically - the level of technology is still on there on the same level with Solaris. But even if you ask me if I would choose Solaris over Linux even when we pretend that ZFS and Dtrace don't exist, I will still say that Solaris is better fit as a serious data center type OS - Solaris still has better tool chains for managing your systems on the daily basis. Solaris LiveUpgrade is a prime example of that - this feature alone would steer me to Solaris and no amount of Linux prettiness would compensate for it. If you're not familiar with Solaris LiveUpgrade - it is essentially a mean of easily creating and maintaining multiple boot environments under Solaris, which while sounding rather simplistic permits tremendous savings in terms of downtime when performing upgrades and patching. Which in essence all OS upgrades regardless how significant and lengthy can be reduced just to the time it requires to reboot the machine - you just create an alternate boot environment which is an identical copy of your current OS and then patch it or upgrade it while the system is running like nothing special is going on! Then you activate the new boot environment and reboot. You system comes up and voilĂ - you're running an upgraded/patched OS! The only disruption you would see is a reboot. No huge change windows required to prepare the system for a potentially risky change and no taking the system out of service to install countless patches and updates that take what seems like forever. And the best part is you can easily return to the previous pre-patch/pre-upgrade state, again with a simple reboot. Needless to say that LiveUpgrade adds a lot to my peace of mind when going through upgrades with Solaris, which is something I can't say about Linux where all you have is much less prettier option of rolling back to a mirror that must be split off before the patching/upgrade. So as I said, even forgetting the latest wizbang technology of Solaris 10 and OpenSolaris, all the Linux gloss is just not enough to overcome the industrial strength features of Solaris that made it the OS of choice in the Unix data center.

3 comments:
Nice article full of things for me to research :-)
I'm primarily a Linux admin who dabbles in Windows, and I have no appreciable Solaris experience. I have often wondered about it, though, and I was curious what you thought a good introduction would be to learning it.
I do enjoy hands-on, and installing it is always the easiest way to get your hands dirty, but I've often found that learning on your own can sometimes lead to large gaps in your knowledge (for example, I only found out about the 'dmidecode' command this past year).
What are your thoughts?
We've found Dtrace, Live Upgrade, Zones and ZFS to be worth the effort. Or standard model today is one zone per app, ZFS root, with apps/data on SAN LUN's. We are IPF firewalling between zones and proxy-load balancing all apps.
It brings much of the benefit of the VMWare stack without any of the cost.
On 'Enterprise' hardware (E25k's) we have hardware flexibility, including the ability to hot-add and hot-remove I/O boards, CPU boards, etc. We don't use it often, but when you need that capability, it's a life saver.
Hello Matt,
Thanks for the comment, it is certainly nice to see the Linux crowd being interested in "old-hat" Unix flavors (even though there is absolutely nothing old-had about Solaris in particular) :) If you would like to add Solaris skills to your portfolio, it should be easy for you considering the fact that you're comfortable with Linux. And getting comfortable with Solaris is easy as it runs on commodity hardware (something that can't be said about AIX or HP-UX) and you can have a Solaris setup literally within half an hour within VMWare or VirtualBox on any el-cheapo PC. I think OpenSolaris would be a better starting point for a Linux enthusiast as it is closer to Linux in the way of userland utilities and has all the full fat Solaris goodness at the same time. There is also a good bunch of books available on the subject and the quality of online documentation offered by Sun is close to best anywhere. Give it a try, you may really like it.
Cheers,
0xbadbeef
Post a Comment