So when I started my second agency after I left the first one in year 13 (earlier this year), I swore I'd do a bunch of things differently with the infrastructure. One of those things was to take advantage of the new hosting offerings that have come with cloud-based hosting.
"Cloud" is a way overused word today. What I was looking for was a way to put up and take down carefully crafted servers without:
- paying a fortune to bring up new boxes either in monthly or startup fees;
- spending one iota of time on systems administration, compiling software, or setting up/tearing down boxes; or
- having to worry about loading more than one client on a box to amortize the cost of a VPS.
I ended up with the cloud offerings from Rackspace. I love this product.
You can bring up a server in under a minute, no problem. A relatively low traffic box will cost you maybe $10 / month (you pay metered usage), easy and give you full access to the box. It's not a VPS, you're not on a box with other customers who may take your system down. When you set it up you pick from a variety of images (CentOS, RedHat, Debian, Ubuntu, Fedora, etc.) There's also Windows hosting, but I'm not interested in that.
What's even better is that you can image your own servers really easily. Use your favorite package manager (I like yum) to assemble a set of technologies on the box you want, configure it just so, and then tell Rackspace to make an image. BOOM, perfect server image, ready for instant provisioning. Need a dev server to try out your application on with a new version of PHP or Mysql?
Boom! Provision it, tell yum to do the upgrades you want, and begin testing. When you're done you can take the thing down. You just pay for the metered usage you used, not some crazy per-month fee.
The point of this point was to share what I learned about building out a good PHP webdev box. Rackspace offers a RedHat distribution, but charges a slightly higher fee that averages out to $30 / month or so. I was looking to keep things down to around $10 / month.
I tried CentOS, which is a Rackspace support favorite, but the available PHP package is no higher than 5.1.x. Also, there wasn't a phpMyAdmin yum package. I could find all these if I started hunting for other repositories, but I really didn't want to start researching and picking repositories and hoping everything worked well together. I feel it decentralizes and makes security harder as my web of trust has to grow.
Also, what the hell was I going to do when the guy who packaged the perfect PHP yum package had a kid and stopped bothering to maintain it?
I wanted PHP 5.2 or 5.3, an up to date Mysql server, phpMyAdmin, and a current version of perl. And ideally I didn't want to go hunting around looking to cobble it together from a bunch of different sources. Still wanting to avoid the cost of RedHat, and concluding in my amateur opinion that Ubuntu seemed more suited to desktop use, I tried out Fedora 14.
Perfect. All the packages I needed were available, and when I cranked it up and yum'ed them all, it worked perfectly. Here's the list of packages I was looking for on my server that I've built into my image for instant provisioning:
- httpd 2.2.17
- mysql server 5.1.52
- perl 5.12
- php 5.3.3 (and a bunch of extensions)
- phpMyAdmin 3.3.8
I'm extremely happy with the results. If you are looking for a product in this space, and understand the limitations of VPS technology, give the Rackspace Cloud a try.