Everything Old is New Again
It's time for my quarterly blogging drive, and to start, here's some information on my ever-increasing need to try out cool web technologies.
Server Migration #
My previous server was a VPS with 1 GB RAM for an obscenely low price from Serve By Design. I'm not linking to them, because I wouldn't recommend them, as you'll see. For the money, I didn't expect them to stay around forever, and I was right. At the end of September, I got an email saying that they had to immediately cease all hosting and that I had 10 days to move my VPS. Not great, but I can deal with that.
I've been doing some work with Rackspace's cloud products recently for work, so I decided to move to a Cloud Server VPS running CentOS. I'm quite impressed with the Rackspace Cloud thus far, they have a robust backup / cloning system, and the plans are plenty cheap so long as your data transfer isn't too high. Since I'm using SimpleCDN to handle all static content for my Drupal 6 sites, there's really nothing to worry about on the data transfer front.
But why stop with a new VPS and a new provider? I decided to switch to some of the alternate technologies that people go to for maximum throughput on a Drupal site. In this case, I'm not yet talking about Varnish and/or Pressflow (although I am a fan and user of both those projects in production on bigger sites.) I decided to use the alternative webserver nginx and to run PHP dameonized through PHP-FPM.
The installation of PHP-FPM and nginx was a snap. I initially read a great tutorial on how to do so on CentOS, but then I found the CentALT repo, which has builds of nginx and PHP-FPM for your yum installing pleasure.
Thus far, nginx and php-fpm have been rock-solid and quite fast (although I'm not going to break any traffic records with my hosted sites.) I also like the ability to reload php configuration changes just by restarting the php-fpm service, and nginx restarts in milliseconds.
Version Control #
I've been flirting with DVCS systems for while now. I've mostly been looking at bzr, because it's cross-platform, easy for people familiar with svn and cvs to grok, and supposedly offers the best Windows support of the lot. It also has a Drupal upstream branch, and Pressflow is now being managed on Launchpad.
There's now a nice Snow Leopard-friendly installer for bzr 2.0, and so I've been using that on my OS X boxes.
One of the neat features about bzr is that it can run off of dumb servers. All you need is an SFTP server and you can host your own bzr branches. Nonetheless, you can save on bandwidth (and score more geek cred) if you run your own smart server, so I set out to set up bzr and some of the cooler tools from the bzr ecosystem on my CentOS box.
Version 1.3 is the latest bzr version in any mainstream CentOS repo, so I built bzr 2.0 on my box. I also got Loggerhead up and running for nice-looking graphical representations of my bzr branches like the one below.
Check back later in the week where I'll post more details about how to set up bzr serve as a CentOS service, and how to get Loggerhead via an nginx proxy to play nicely together.