Goodbye Apache, BIND and Tomcat
Posted by Sam
Tired of the same old, same old
I've been using free and open source software for a really long time. Going back nearly 10 years. I'm definitely no stranger to it. Apache, PHP and MySQL were among the first pieces of open source software that I ever used with RedHat being the first. They were great at the time. PHP and MySQL were so easy to use. They made it effortless to write web apps. Like I said I've been using these tools for a really long time, but there are big problems with all of them that have only recently started to really bother me.
It's all Sun's fault
There is a certain amount of comfort that comes from doing things the way they've always been done. Even though there are annoyances, they are annoyances that you're accustomed to. You know what to expect, even if it's negative. But every once in a while something happens that makes you look at how you are doing things. Sometimes you just get fed up and go looking for something better and sometimes something better comes to you when you aren't expecting it. For me it was Solaris 10 from Sun that got me looking at what software was best for our particular jobs. I've had these feelings of discontent for some time. The seemingly constant bickering among the Linux community. The many different flavors of Linux and products that only support certain flavors. I just felt like there had to be a better way. And then as if an answer to a prayer that I didn't even know I should be praying I kept hearing about the great features in Solaris 10. Zones, DTrace and ZFS to name a few.
I've used Solaris on and off a couple of times in my career. Version 8 (2.8) and 9 were very solid but also very uninteresting. It was missing a lot of the gnu tools that I'd come to expect and didn't even have SSH installed by default. Of course all these things could be rectified, but out of the box Linux was much nicer. Like many people I didn't feel any pull towards Solaris, but then I started reading about ZFS and then DTrace and then zones. I haven't seen anything like ZFS or DTrace. Sure there are some things that are similar but NO where near as effective or useful. ZFS is just plain amazing. And for all it's power it's also very simple to use. We are currently using ZFS, DTrace and Zones in varying capacity and couldn't be happier. Unlike Linux, Solaris actually has features worth talking about these days. And Sun isn't standing still. They're continually improving and innovating in the server OS space. I'm really looking forward to finding out what Project Virginia is all about. Microsoft is trying to catch up with VMware. Linux is playing with it's scheduler and constantly changing things, but I'm just not seeing much innovation out of them. Solaris is, in my rarely humble opinion, the only one who is doing anything interesting in the server OS space.
So why am I going on and on about Solaris and all the wonderful things that come with it? Because Solaris is what caused me to start evaluating everything. Suddenly I'm looking for alternatives to Apache, BIND and MySQL. Solaris was the catalyst. Our hosting infrastructure is looking very different from where it was two years ago. We are looking into switching from BIND to PowerDNS. From Tomcat to GlassFish. From Apache to LiteSpeed. From MySQL to PostgreSQL. There is nothing wrong with open source, but I believe the old mainstays in the open source world are getting very stale and are going to be replaced by newer programs, some open source and some not. PostgreSQL isn't a new program, but I think as more and more people run into limitations with MySQL (can't add a row without locking the whole table!) they'll be looking to PostgreSQL.
Apache
On the outside Apache hasn't changed at all for years and years. Apache has changed significantly since I started using it but most of the changes are on the backend and are mostly changes to allow platforms other than Unix to scale better. While this is nice you would think a project as large and as old as Apache could spend some time cleaning up their horrible and inconsistent configuration file. And hey while you're at it could you throw in some kind of an admin tool like LiteSpeed has? I like editing config files, but at a certain point they become unwieldy, especially with Apache's knack for not telling you why it won't start. And when you make a simple mistake like not creating a log directory and Apache just silently dies it's very frustrating. I already blogged about some of my annoyances with Apache in a previous blog, but those were just things that were bugging me at the time. There are many, many more. So we are switching to the much faster and much more Ruby on Rails friendly web server LiteSpeed. Even though LiteSpeed isn't open source they have a free version which is more than adequate for our needs. Apache is very configurable and very capable, but such a pain compared to newer, simpler and faster products. I recently had to set up Ruby on Rails for a client and since they already had Apache installed I decided to go the Apache 2.2/Mongrel route. I got this all setup but it was such a pain compared to LiteSpeed that I ended up scrapping it and installing LiteSpeed on their servers. It took a fraction of the time to setup and it's more robust. If anybody is really interested in why I hate the Mongrel setup so much leave me a comment and I'll expound.
BIND
I'm not going to talk much about BIND. It's an antique that I'm tired of dealing with. Every time I add a zone I have to edit the named.conf file on all my name servers. There is a better way. It's called PowerDNS. PowerDNS is much easier to attack programmatically because it uses a standard database backend. Much easier to attack programmatically than the BIND text files. PowerDNS is also faster and so far has had a much better track record.
Tomcat
Tomcat has been downright annoying for years. It seems with every release they break the configuration file (server.xml). And documentation for Tomcat (like nearly all Apache projects) is extremely lacking. Tomcat is another application that when things don't work it can take forever to track down the problem. It's been stable and as long as you don't upgrade it's ok. Certainly nothing to get excited about though. And lastly they seem heading in the wrong direction as far as I'm concerned. The last thing I read about Tomcat 6 is that they are integrating the APR (Apache Portable Runtime) into Tomcat. They are taking an entirely Java application and adding native code which I personally have always found distasteful. I would much rather the Tomcat folks work on the admin and reporting side of Tomcat than trying to make it serve static files as fast as Apache (which isn't all that fast). If I want Apache speed I'll put Apache in front and get all the modules that go with it. And if I want real speed I'll put LiteSpeed in front of it. Frankly I think they are just missing the boat on what people want and guess who is getting it? Sun. They've just released version 2 of GlassFish and it's a bit of a beast memory wise but it has some really nice features and version 3 looks to be really exciting. Sun is really getting it these days. They are making things very powerful, but also simplifying them at the same time. I pay very close attention to Sun these days because other than Apple they seem to be the only big company that is really getting what people want and need.
The end
I could go on and on and on about how what used to be the best tool for the job isn't anymore, but what I want to do most of all with this blog is just get people thinking about the tools they are using and looking around for newer, more capable, tools. You might find that your life can get significantly better.
Tags: opensource
Comments
Be the first to leave a comment.