There were a few questions on yesterday's post about migrating this site to Mosso's hosting. I thought I'd write up a quick explanation of what led to this migration and how it went as well as my take on Mosso as a service.
For several years now, Wynia.org has been hosted alongside a batch of other sites that I own or was co-owner of on a series of dedicated servers. At first, I took care of the administration myself. Unfortunately, busy life got in the way and an unpatched vulnerability led to one of the servers getting hacked.
When it was done getting completely scrubbed and we went to set back up, we hired a company that provided both the dedicated server and the administrator to keep things patched and do things like compile new PHP modules for us. That combined service was something that we thought well worth the $229 it cost.
Over the last year or so, that arrangement has lost much of its luster. The server's stability has been horrible, with services like email and MySQL going down regularly and requiring restarting and frequent reboots to resolve the collapsing. Beyond that, the customer service and support has crumbled as well.
Then, early this year, my business partner and I split and he took the largest of the sites running on that server and I kept the server contract itself. That shift made me review the whole setup and consider my alternatives.
First was the fact that I still have multiple sites, some with some decent traffic (5000+ page views a day). While some of the cheap managed hosting companies allow multiple sites, most are horribly oversold for things like bandwidth and I've heard way too many stories of people getting shut off for "abusing" the service when they reach only half of the bandwidth advertised in a month.
I also know that I don't want to be the one managing the patches and upgrades. I don't have the time for it and don't particularly enjoy it. However, just getting another dedicated server with someone managing it didn't sound all that appealing either.
That's because, as your sites grow and consume more resources, you outgrow the server you're on. That has happened to me several times. Things start slowing down as you start hitting the ceiling of the server's capacity. All of the dedicated server companies I've dealt with take this opportunity to move you to another server.
Granted, they often will do so without any major cost, but having moved WAY too many sites from one server to another, that's something I don't want to do more often than necessary. I'd rather have a reasonably priced approach that lets the arrangement just grow over time.
That led me to look at the emerging clustered/cloud hosts. There are several of these companies that offer the "equivalent" of a dedicated server (i.e. real storage and bandwidth numbers) and a reasonable path for growth while taking care of the security and management of the servers by putting the whole works into a giant cluster.
I looked at Joyent and MediaTemple first, because of the amount of buzz around them. Neither one was a good fit for what I was looking for. While this site is powered by Wordpress (and thus PHP), I haven't been doing much of my new development in PHP for the last year or 2. I have been doing a lot more of my experimental code in C#.
Since my existing dedicated server was a Linux box (without Mono), I haven't had a good place to deploy much of my new code out on the web. However, I've been wanting to do just that. Unfortunately, neither Joyent nor MediaTemple supports .NET. Joyent specifically says "Ideal for PHP, Rails, Python & Java" and MediaTemple is really heavily targeted at PHP. I think if you're doing either Rails or PHP development, those are really good choices, but not if you're doing predominantly C# and PHP.
However, at the time I started looking, there was a newcomer called Mosso (though a subsidiary of an old timer, Rackspace). What was intriguing about their service was that their cluster was simultaneously a LAMP (Linux, Apache, MySQL, PHP) stack and a Windows .NET on IIS7 environment. A single domain can host both types of code.
Beyond that, the pricing makes a lot of sense. Storage, bandwidth and CPU cycles are what you are charged for, getting reasonable amounts of each for $99/month and one of the most straightforward "overage" pricing schemes I've ever seen. That kind of pricing means I can run all of the stuff on the existing server while lowering my initial costs and still be able to handle the future growth without going over my original budget for quite a while.
So, I set things up with Mosso.
Right about then, life got really hectic and getting the sites migrated kept getting put off. One of the biggest reasons is people's email accounts. It turns out that when you migrate a site from one server to another, the biggest problem isn't the site code or the databases, it's people's email. Moving those accounts over, keeping all of their email, dealing with the DNS propagation and where the emails end up, etc. is a HUGE pain.
Which is why I ended up bringing Google into the mix. With Google Apps for Domain, you point your MX records for your DNS at Google and they handle everything email.
I tested it on a small domain and, when everything worked out swimmingly, I made a decision. All of the sites are to move and if you want to use email on that domain, it gets moved over to Google. I'm not going to even mess with trying to keep email hosting working.
This makes migration far easier. You set up Google mail on the old server's DNS records and the new one, get it all working with the old one and then move the site over.
That said, it's still taken me most of the first half of this year to tackle this site's migration. The email's been moved over for months, but the database and code migration wasn't something I was willing to take on in the midst of the chaos.
I wish it wasn't so, but that delay has both cost me quite a bit of money in doubled-up hosting fees and has stunted my list of improvements and fixes to this site. See, when you have a big task you "should" be doing and you sit down to do a "less important" task in the same area, that work ethic guilt kicks in. However, since you still aren't ready to tackle the bigger task, you instead abandon all of them and go and do something else.
Thus, things like hiding the advertisements if you've posted a comment here have lingered on my TODO list for a long time.
Actually migrating went as smoothly as can be expected. Given that my Wordpress install had 4+ years of incremental upgrades from the original install, I took the opportunity to do a fresh, clean install. The data was a bit trickier because of how Mosso does their MySQL setup. Depending on when you create a database, it might sit on a different server, so every database gets it's own user and needs a different connection string.
At this point, I've been running a couple of smaller sites on Mosso for a few months and this site for a couple of days. Overall, my impressions are quite positive. Nearly everything I have wanted to be able to do I could. For the other stuff (like SVN-driven deployments), it's not like anything other than a completely dedicated server would either.
I haven't seen any MySQL issues, which stands in stark contrast to the number of issues I had with it on my dedicated server. However, I'll still be aggressively using things like the Wordpress plugin WP Super Cache to minimize needless hits against the database. Wordpress without that plugin is really WAY too hard on the database compared with what it needs to be.
The support has been top notch. Some of that is probably due to it being in startup mode, where the first few people who get in get extra attention. I know that when I complained on Twitter about not being able to figure out how to get ASP.NET MVC apps to run, one of the founders replied. That was great, but I would be VERY surprised if that continues over the next couple of years for new customers.
Regardless, the tickets I've had to put in were fairly technical (like setting a particular directory to integrated pipeline mode for IIS7), and were handled professionally and I wasn't treated like somebody fumbling around with their first PHP script.
I have, indeed, been able to run both PHP and C# on the same domain and both worked well. The control panel is a little spartan if you're coming from dedicated hosting with either Ensim or Cpanel, but definitely capable. They're steadily improving it and have told me that things like the integrated pipeline change (which is what you need to do to get ASP.NET MVC apps to do the nice routing without the .mvc extension on paths) are coming.
I keep monitors running against all of my sites and haven't seen any outages. Granted, I'm only checking every half hour or so, so it's possible I just missed one, but that still beats waking up to find out that the server crashed at 12:30 last night.
To sum up (and if ever something needed summing up, this article does), I think Mosso is a great solution to the outgrown-shared-hosting-but-don't-want-the-hassle-of-dedicated problem. With extra bandwidth at $0.25/GB and extra storage at $0.50/GB, expansion is much more straightforward than having to go from the "basic" server to the "deluxe" server and migrate all of your sites.
It's stable in my experience, well-supported and runs the code I want it to. Now I just have to get the rest of the sites moved over.