Working with Media Temple's Developer (ve) Server

Media Temple has listened to the masses and finally made a VPS offering aimed at developers and advanced users. While their (dv) Dedicated-Virtual VPS offerings allowed users to have root access and the ability to modify much of the installed software, it was still a fairly turnkey solution: create a new account, transfer files/databases over and everything is ready to go. It also ran Parallels Plesk control panel which sys admins and developers unanimously seem to despise for a mixture of Plesk being a resource hog as well as only working well for out-of-the-box configurations and becoming a burden with custom setups — say, a Rails app. There is a large market for tech-savvy folks that prefer to handle all aspects of server setup and administration themselves. Enter the (ve) Virtual Environment.

Media Temple (ve) Virtual Environment Server
A new product series has been created, ProDev, which caters to the side of our customer base that wishes to take hosting a step further. These users want more controls and low-level options. Therefore, we’re working on new ProDev products, such as an API, CDN and Advanced DNS, that compliment (ve) Server.
— (mt)

You know who these people are — they typically congregate around Linode, Amazon EC2 and Slicehost services. They know exactly what OS and solution stack they want to use, their favorite kernel version and so on. After having a more than a few issues with their (gs) Grid-Server, Media Temple needs for this latest (ve) offering to catch on. Here's why I think it will.

Full Disclosure: I have been exclusively hosted with Media Temple for almost 5 years now and have a partnership with them. They often hook me up with free food whenever I'm in Culver City or at one of their events at SXSW.

(ve) Basics

(ve) Server is designed for users who have significant experience with Linux, or for those who are interested in learning. Our goal is to give customers complete control of their Virtual Environment, therefore servers are delivered with SSH only. You will control and install all software.

In regards to hardware, the (ve) is far from commodity hardware with SAS disks in RAID 10 but I digress; if you want to read more about specs visit their site. Media Temple lets you install Ubuntu LTS, Ubuntu, Fedora release 12, Debian and CentOS distributions on (ve) servers. After choosing what OS you want installed on the server and waiting about 10 minutes to have it provisioned, you get to SSH into a basic Linux installation. Nothing is pre-installed. This gives you the freedom (or burden, if you are relatively new to Linux and systems administration) to setup everything on your own.

Media Temple (ve) Server

Now you get the point of the (ve) server — you run the show and know your way around Linux for the most part. Media Temple has several guides online that help with basic setup. For those considering such a developer-friendly VPS option, be warned that a solid setup is at least a few hours away of installing packages, configuring files, transferring files, importing databases, configuring more files, securing everything, monitoring for a while and tweaking for optimal performance.

As far as pricing is concerned, the (ve) is priced competitively. Below is simple comparison on the pricing of the closest offering to a 1GB RAM VPS:

VPS pricing comparison: Linode, Slicehost, Media Temple
Linode, Slicehost, Media Temple

Media Temple's logic is that they can afford to price the (ve) as such since advanced users (the target market) are much less likely to require technical support.

My Setup & Experience so far

This blog has been hosted on a (dv) 3.5 with 2GB of RAM (though I think you temporarily get access to 3GB of RAM for under high load) for over 2 years now. That setup started getting finicky and needed daily or sometimes twice daily Apache restarts or it would crash on its own. Needless to say, it was time to start from scratch with a clean setup — much like how I tend to completely reinstall OS X every year or so (or back in my Windows XP days, every 6-9 months).
Media Temple (ve) server in Account Center
(ve) Control Panel in the Media Temple Account Center

I was not much of a CentOS fan on the (dv) server, so I chose to setup my (ve) with Ubuntu. Once the (ve) server was added to my Media Temple account, I enabled root SSH access and SSH'd in, with my first objective being creating a new user, adding that user to the sudoers file and configuring SSH to disallow root SSH login. This will probably sound familiar to you if you have tinkered with a fresh Linux server install before. If not, several of Media Temple's guides will come in handy but for the most part apt-get is your friend.

A while later I had a simple LAMP setup with Webmin (lightweight control panel) configured on my (ve) server. I temporarily changed an Amazon S3 blog backup to public, downloaded it on the (ve), uncompressed the files into the public web folder then imported a recent database dump with Sequel Pro. The last step was logging into the Account Center and changing the zone file to point to the new server. I had set the TTL low so the DNS propagated quickly and the new server was live within minutes.

Media Temple (ve) Server Guide in Account Center
(ve) Server Guide

Then I got in touch with Chris Lea at Media Temple who looked over my setup and offered a few suggestions and made some adjustments. Notably he installed and configured nginx as a reverse proxy to serve static files — images, javascript, CSS, HTML, XML, et cetera — while letting Apache handle the dynamic stuff. I prefer this setup over a wholly nginx configuration so that all my .htaccess rewrite rules would remain in place (and not need to be rewritten for nginx) and so that various WordPress plugins that need their own rewrite rules would not break when they needed to tweak those settings. Also, since I use a caching plugin that creates static HTML cache files, nginx will end up serving most pages, leaving resource-hogging Apache with little to do. The best of both worlds in my opinion.

Chris also installed APC for PHP, set expires headers for all image types to 1 day and enabled compression for text based file types (I wrote about compression for Apache a while ago). And finally, munin was installed for resource monitoring.

All said and done, the server is now using around 400MB of RAM most of the time. Compare that to using at least 2GB of RAM at idle with my last (unstable) server setup and I'm rather delighted. Other performance options I had considered were Squid (but was told nginx is better for a reverse proxy role) and Varnish. Of course, this blog does not receive anywhere near the amount of traffic to need those kinds of advanced setups.

While the (ve) box does not come with a hefty, resource-intense control panel like Plesk included on (dv) servers, it does come with Parallels Power Panel that provides basic monitoring and service controls.

Basic Repair & Diagnostics.


So that's a little background info on my current server setup and working with the relatively new (ve) VPS. No complaints to report of thus far and it was exactly what I was looking for: a no frills, simple server that lets me do everything myself. While I was in the end working with a typical LAMP setup (albeit with some nginx mixed in there), the (ve) and related offerings from competitors are aimed at customization and the ability to adapt the server to fit any need from Python projects with Django all the way to using Yaws to serve up Erlang apps.

Would you be in the market for a developer inspired VPS that requires you to do all the heavy lifting at the benefit of extreme customization? Who is your current webhosting provider and what kind of hosting needs do you have? What framework/software/stack does your server run?

Bonus: (mt) chatted with me on camera during their SXSW BBQ.

Update: There is now an (mt) guide on Using Nginx as a Reverse Web Proxy