Lojic Technologies

Sticking With Linux For Server Deployments

leave a comment »

I recently considered switching my server deployments from Linux to FreeBSD. I need to move a number of sites off a dedicated server to either a different dedicated server (less money), or to a vps (much less money). Since I have to go through some pain with switching, I figured now was a good time to try and decide whether I should stick with Linux (Debian/Ubuntu) or move to FreeBSD.

After spending too many hours researching and experimenting (multiple installations of FreeBSD & lots of software built/installed), I’ve decided to stick with Linux for hosting web applications. Here are some advantages for each OS from my perspective.

FreeBSD Advantages

  • A slight performance advantage currently from my research, but this is debatable
  • My primary desktop is Mac OSX which is based on FreeBSD, so I would be able to leverage sysadmin knowledge between my development machine and my hosted machines. This is the same advantage I had when my main development machine was Ubuntu and I hosted apps on Ubuntu. However, OSX doesn’t require much Unix sysadmin knowledge, so this isn’t nearly as important as the analog below.
  • I like the idea of building packages from source, and the ports system does this very nicely.
  • The organization of the OS seems superior to me. The ports system, startup scripts, file locations, etc.
  • Paul Graham’s server OS of choice (at least for news.ycombinator.com), so I expect Arc will continue to be well supported on it (that is if Arc continues itself)
  • Yahoo & other large sites use it.

Linux Advantages

  • Ubuntu is a much better desktop OS, and I’ve decided to use it on my non-Mac home computers, so I can leverage sysadmin knowledge between my home machines and hosted machines. The desktop installation for Ubuntu 8.04 is unbelievably nice. If I ever become dissatisfied with OSX as my primary desktop, I’ll switch back to Ubuntu in a heartbeat. I just loaded Ubuntu 8.04 on my old 900 MHz AMD w/ 384 MB RAM, and it’s quite responsive.
  • I’ve accumulated more sysadmin knowledge for Linux than for FreeBSD, and supporting two operating systems (OSX / Linux) is more appealing than supporting three.
  • Better virtualization support
  • Linux threading seems to perform better (although FreeBSD has caught up a little)
  • Companies such as slicehost.com support Linux, but not FreeBSD (due to virtualization issues), so this limits my options with FreeBSD
  • Auto power management works out of the box – shutdown the OS and the computer powers down
  • The binary package system is much faster for installations. If I need to get another web server up and running quickly, I can do it much easier with Debian/Ubuntu than with FreeBSD.
  • Google & other large sites use it

The two operating systems seem quite close to me, and it’s possible I’ll make a different decision a year or two down the road, but for now, the cost of switching from Linux to FreeBSD is higher than any expected benefit – particularly since my code rests upon Apache, Mongrel, Ruby, Rails, etc.

I have an emotional bias toward BSD since I started out on SunOS (as far as Unix is concerned), and it seems to have a richer history; however, Debian/Ubuntu seems to be the most practical choice for me at this time.

Even though I ended up sticking with my current server platform, I do feel better about having performed my due diligence rather than continuing with a default, and I have some really great notes for setting up a FreeBSD system should I need to do so in the future 🙂

Written by Brian Adkins

September 8, 2008 at 12:18 am

Posted in software

Tagged with , ,

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: