Linux: Ubuntu 10.04 Impressions
Needing a good environment for some web projects I've been putting off, I recently built out one of my spare PCs with Ubuntu 10.04. I've generally been a fan of the CentOS distributions for server purposes, but I've been so impressed with the strides Canonical has been making on the desktop, I figured they deserved a look as a server platform. The two word review is, "Good enough".
To more accurately describe my little experiment, I should note that I am not running the server in what most admins would consider true "server mode". Since the only *real* difference between Linux as a desktop and Linux as a server is whether or not it is *acting* as a server, I essentially started with the normal desktop distribution and just added the server packages I needed. This approach diverges from normal practice in that I start with a GUI desktop, rather than the straight command line interface preferred by most purists. The argument goes that running anything other than the services required to meet the server's purpose just eats up memory for no good reason. Others argue that any packages installed beyond the minimum just add complexity and increase the likelihood of being compromised or corrupted. I hear all that, but there is one key fact that simply overrides it all from my point of view: You can't configure a Linux desktop without editing a config file. I suppose real men do that from the command line, too, but I'm not that kind of masochist. Call me a noob, but I want a decent text editor and a web browser if I'm going to have to manage an Apache configuration.
For the most part, I went with a KDE desktop, mostly because that's the environment with which I am most familiar. KDE is an afterthought for Canonical so some tools seemed to work better in Gnome, but I was past most of that in the first day. Long term, I will probably download and switch to XFCE, which should give me the tools I need without loading a ton of unnecessary libraries into memory. I've heard it's much faster, but that's a review for a different day.
The installation, on a relatively modern Acer, went flawlessly. Absolutely every piece of equipment, from NICs to video cards, was recognized. I can't emphasize how much of a pleasant surprise that was.
One of my complaints against Debian based servers in the past has been the dearth of quality administrative tools, and while this version of Ubuntu makes progress on that front, it still has a ways to go. In Centos, I'm used to having (relatively) full feature tools for doing many things like managing services, the firewall, and network interfaces. In Windows, I'm used to having good tools for *everything*. Ubuntu added a tool for the NICs since last time I checked, but I found it didn't work for me, and I had to resort to editing the network configuration by hand. There were no tools for managing firewall settings. I was able to create functioning file shares without touching a config file, and was able to activate the VNC server without using the CLI.
Another weakness I saw that was that none of the usual maintenance tools had an easy way to enter administrative mode. If I opened a config file in Kate to edit it, made changes and hit the save button, it would tell me I didn't have permission. A well designed application would prompt me for the requisite credentials. Instead, I would have to launch an application from the CLI with SUDO, and then access the files I needed from there. That's not security. That's just poor design.
Debian based distributions tend to excel as web and file servers, and that is how I am using this server. As I noted, the file server section was pretty easy, although I have yet to attempt to do anything complicated with permissions. Since I saw no tools intended for bridging the Linux/Active Directory gap, I suspect one would have to resort to account credentials synchronization to enable anything more complex than "wide open".
I continue to be disappointed with the Apache tool set, although this isn't really something I can pin on Canonical directly. I find the tool set MicroSoft provides for IIS to be excellent, and wish there was something like it for Apache. That said, given the level of configuration possible for Apache, I can see why no one has taken that on. Likewise, the tools for MySQL, even those provided by the vendor, didn't give me the level of control I wanted. I ended up downloading a web management package called "WebMin" which provided me the functionality I needed, albeit through a browser. It wasn't exactly an MMC snap-in, but I could stop and start the requisite services when I need to, create databases, manage MySQL users, run SQL scripts, and generally administer a web site remotely. It was a pretty easy install with apt-get, too.
As for overall functionality and stability, this has been one of my most stable Linux servers. There is something flaky, apparently, with my VNC set-up that makes the screen go blank every so often, but that's about it. For the most part, it runs and I forget it's there. That's pretty much what you want out of a server, and what Linux is generally famous for.
So my overall rating? I give it an 85%. It does what a server needs to do fairly flawlessly. It could be easier for me to manage.