Jeff Bezos (of Amazon) is one of my favorite gurus. The guy has charisma, vision and is very smart. He was, on many occasions ahead of his time and it proved to be very lucrative on all (as far as I know) of them.

Having said that, I must say I’m an avid hardware and hosting freak. I run more than 200 servers in different locations around the world and a lot of those servers I built with my bare hands (yep, I risk the static electricity stuff; you don’t look quite so cool putting in dimms with a little bracelet on; never went wrong so far. knock-on-wood).

I run mostly Debian on my systems (Etch or Sarge) and it usually runs fine. We don’t have many hardware breakdowns (buy expensive hardware; it really is better) and be nice to your systems; don’t overload them, use monitoring etc. Problem is, small sites sometimes grow big and then the scaling thing starts. Although we don’t sell cheap hosting accounts, we don’t have resources to buy SANs, solid hardware load balancers etc. We do everything with open source software and it works, mostly.

It works until the real scaling starts. Databases grow, diskspace get’s eaten away by media files, iostat tells me 99-100% all the time now on all nodes etc and those kinds of things. This doesn’t happen with ‘normal’ sites, but with some sites I host, this is more rule than exception.

When it comes to big media files, we wrote our own software solution. It works like Amazon S3, kind of and it is quite robust handling the millions of media files across nodes, serving them up fast. However for databases we, like so many, did not find a solution yet. In our brains we have one, but that is not working (yet).

So I decided to check out what the current ‘cloud hosters’ have to offer. What my dream of hosting always has been and still is; get an account for a site, attach some domains (DNS managed by the package you get), click run and that’s it. 100% uptime, whatever size it grows too, how many db connections, how big the db etc will just scale. It’ll scale, you pay. Never any software tweaking/fixing, no more hassle with moving stuff to different servers, no more partitions, no more… dream…

Anyway; I actually like tweaking and optimizing, but a bit less hands on in the server room would be nice and my hosting dream is based on that. Who delivers that? No one indeed.

I started, as I like hardware etc, requesting offers for this ‘kind’ of solution. A few hosters were very accommodating, notably Rackspace; they wrote down a whole plan for arranging this kind of thing. Ofcourse I gave them some input to the scaling parts and they were very helpful in working it out for me. The end result was upwards of $50.000 / month unfortunately. Not that expensive in fact, but too much compared to the income from the services I am delivering.

Dedicated servers, and, in fact, most dedicated server companies didn’t seem to really mesh with the idea of scaling. They just want to move servers and don’t care at all what happens after that.

Because my services deliver more money to me when they are used more, I would like something that scales with my needs, meaning, in my mind, I need ‘cloud hosting’.

The service that looks to be closest to my hosting dream is Mosso or Google AppEngine, after that GoGrid and after Amazon EC2. This solely based on marketing materials. Which are, ofcourse, really not truthful.

As Google doesn’t support enough ‘features’ yet for me to work with (we have our own, enormous, framework and really need to run that; Google cannot do that, yet), I skipped them and went on to Mosso.

Mosso seemed very nice. Install-and-forget. Just get their site package for $100, point your domain to their DNS servers, use their hosting panel to get all up and running and there you go. Great fun. It is. If you don’t need anything else than they installed on your image. As you don’t get root access, what they put on their for you in terms of OS software like Apache, Ruby, Python, Perl, PHP and MySQL is it. You cannot touch any of it. Either your stuff is there or not. The presales guy told me, via the phone and chat (I have records!) that all popular stuff, including what I needed, was on their systems. Unfortunately, after buying, it turned out there was no way to convert videos; no ffmpeg or anything like it. Making it usable only if I use one of my other systems as conversion webservice. Although that is still an option for me, this kind of took the wind out of my sails.

Naive as I am, I always think someone did something magical to MySQL to make it scale without intensively rewriting/fixing my software.  Ofcourse this also turned out not to be the case. Their MySQL severs are tweaked, but they have nothing special; they can (meaning the will) break.

I still like the Mosso idea and philosophy and I would advice people to try it out when looking to run their standard site on a cloud, but for me it was not really happening at the moment.

GoGrid seems to be Amazon, but more userfriendly and with more features. Their pricing model is based on memory use and outbound traffic; diskspace and inbound traffic are ‘free’. Great for backup, right? Not really ofcourse, these guys at ServePath are not insane. Memory usage is linked to the diskspace you get assigned. So when you get a 512mb server, you end up with 25 gb which you cannot (!) enlarge without creating a new server. Nor can you snap one server to another; hell you cannot take snapshots at all. They provide no backup options or space (just start another server for that; meaning, spend a lot of money for a backup). For web traffic load balancing/failover they provide a free load balancer (nice), but for MySQL they couldn’t give me any options except ‘get a custom solution at ServePath’.

All in all; GoGrid is an operation that can turn out nice, but they are miles away from providing anything more than a, very basic, VPS management system. Throwing HyperVM + XEN/OpenVZ on a few machines gives you *a lot* more for a lot less.

I ended up at Amazon. I am a programmer and a Linux admin, but I really don’t like weird proprietary tools to manage systems. Especially when they are written in *cough* *cough* Java. If I do use those kind of tools I want to see a nice shiny interface and do a bit of clicking.

The setup seemed annoying to me at first, but as usual, I put everything down in scripts the first time I do it and, if I am in a good mood, and I was, I put a web interface on top of them. After a few days of fooling around with EC2 (and such) I had a webinterface to:

  • Manage machine instances (create/destroy)
  • Set/Reset root  (and other) passwords
  • Install tools on the instances automatically
  • Create Elastic Block stores on instances and mount them
  • Take/Restore snapshots
  • Create/Destory AMI’s

I know there are open source tools to do this, but they really weren’t that well suited to what I set out to do and I needed to learn everything fast which I did this way.

Things To Do are automated snapshotting for fail over, load balancer/fail over installation, but I’m already quite happy with this.

Personally I am convinced this kind of thing is the future. It is not the cheapest solution, but it is really scalable, easy to use, backed by a big company and created for building large scale applications and infrastructure on. Although they were down a few time (they were/are in beta stage with some of their products) the idea is very solid and tempting to use. I will give it a try with one of my main services and let you know.

Reblog this post [with Zemanta]
    Read More   

Comments

Michael Sheehan on 11 November, 2008 at 11:57 pm #

Hi Tyco,

Sounds like you understand the Cloud space quite a bit. (I did find it funny that you actually created a web GUI for EC2…would love to see that!)

I just wanted to address some of your points about GoGrid. (I’m the Technology Evangelist for them.)

- You are correct, that you can’t currently expand/contract the size of your Cloud server image. Definitely on our roadmap though
- Snapshots/Cloning - obviously this is a feature request in high-demand. It too is at the top of our list. Snapshots (for backups of instances) is a bit different than cloning (spawning new “similar” instances). Both items are important though.
- Backup Space - at the beginning of December, we will be launching GoGrid Cloud Storage, which will be a storage space that “attaches” to every GoGrid server as a mountable drive. The first 10GB are free and then billed similarly to S3. You can then, if you want, use your Cloud Storage to backup code (or whatever).
- mySQL - what options were you looking for? For the most part, we try to provide fairly bare-bones installations. If it is something more complicated (e.g., clustering), it is more involved and we do offer Professional Services to help (should you require it).
- Another new feature we are softly rolling out is what we call “Cloud Connect” which allows you to connect ServePath managed dedicated servers to your GoGrid cloud. You can therefore put a high-end SQL server DB within a managed dedicate environment and then connect it to the elastic cloud computing environment.

We have many more exciting features rolling out. Be sure to check our blog at: blog.gogrid.com?

Thanks,
Michael


tycho on 12 November, 2008 at 12:05 am #

Hi Michael,

Thanks for the comments. I was told about the same thing by the (not very friendly or salesfahig presales) presales on the Servepath online chat. Which gave me the impression GoGrid has been launched too early. You seems to be just an average VPS provider at the moment, I’m sorry to say.

I know Servepath is big and you were actually my greatest hope for this, but from the unfriendly sales person to the slow setup to the lack of features I ended up kind of disappointed.

That certainly doesn’t mean I won’t be using the service now and in the future. I believe, if you implement what you say, this will be a great service.

For MySql I was hoping/thinking someone would just deliver an out-of-the-box-on-click-install MySQL master-master(-master-master-slave-master-whatever)
cluster. Or at least something transparent like that. It seems Mosso delivers that, but a bit *too* transparent for my personal liking.

Good luck and I’ll add your blog to my feeds about the topic.

Also; I’ll send you a link to my EC2 interface after my colleague put some magic pixie dust on it.


Post a Comment

You must be logged in to post a comment.