Where do you host your website to scale ?

I have been talking to some colleagues about how to start a project that you know it will probably need to scale in a couple of months, think of a heavy text content site. [update: like a lyrics site with kind of social features added to it, with urls that makes the search engines happy]

Actually what we have as far as I know are services like google appengine, that provides you with a full api where you can build your web site. You know they give you processor time, storage space in their datastore, kind of non-relational ( but scalable ) database and a lot of network throughput. What I like about this service is that you pay very little money for a lot of resources, at least as far as know.

Then you have virtualization services like linode and amazon ec2 and other services that I like more because it gives you full control of how to program your site without limiting you with a closed api or closed vendeor.

Microsoft also offer public cloud computing services called azure and I think yahoo also.

But here are some things to have in mind. I don't have a good feeling about who's the real owner of your application since you upload your code to google appengine for example. Or then you fear that they'll say you that your application violates some policies you were supposed to follow. Well, I think you understand.

I think comparing services like appengine and the ones that offer virtualization creates you another problem if for any reason you need to move from one to another, because you probably will need to re-enginer the urls if you'll change the way you are programing and you know, there goes all your page ranking and you'll have broken links if you gained some of them before wanting to move your application.

I am sorry if my English is irritating you, but this is as far as I can talk, what I want to know from you is what will be your thoughts on this topic. What will be the service you'll choose and why. Which services are you using and what is your experience in it.

Thanks

9 comments:

Anonymous said...

Hello dude,

Nice article. I do use Linode right now and works fine for my needs, but I am planning some service that requires a lot of background processing (you know, some web crawling, AI to process text) and for that sort of things I am planning to lend computers by hour at Amazon EC2, and create and destroy machines by my needs.

I've also tried with Google AppEngine but it was frustrating to for many reasons:

- The forced me to use python

- When I wrote a cool script with some cpu high requirements, they blocked my app.

BTW, I'm now creating an AppServer in C++ that will be able to execute PHP code, in order to scale with a single (for few) webserver/s and many "workers" in my internal network, I will post about this soon at my blog.

Best regards,

Anonymous said...

You can also take a look at http://en.gandi.net/hosting/?currency=EUR
They offer a flexible hosting, I'm planning to use their service for a personal project.

Unknown said...

Who would ever think what type of nerd will build our next cloud computing system :D
Keep us updated please !

Unknown said...

A co-worker just refered my 2 sites more:
http://www.unixshell.com/
http://www.tektonic.net/

Anonymous said...

I have good things to say about HostMySite managed shared as well as dedicated hosting.

Stefan Fußenegger said...

My company developed am application with similar requirements for a client that wanted the app to be "ready to scale". This application is doing some quite heavy background tasks, updates a fulltext search index frequently and serves (currently) up to 20.000 pages (plus resources, ajax calls and even some cometd) per hour ... still running happily on a single budget dell server with 4 cores, 4G RAM and 2 rather cheap HDDs running in software RAID1 (including MySQL) - and we're not even using proxies, caches, CDNs or whatever voodoo (yet) - okay, we do cache database queries, but no pages.

In our "lab" we even pushed a similar server to 1.000 pages per minute (without resources though), still with reasonable response times. I'm confident, that we could easily double or even triple this amount by moving (espcecially) MySQL, background processes and the search index to 2 or 3 dedicated machines. Then we'd probably be able to serve 180.000 pages per hour ... using 3 or 4 budget servers.

The lesson learned: There are very few applications that really have to scale at all. So first ask yourself how much load you can expect (realistically). Than try to write good and clean code and test it for the load you expect. If you can't handle it it's time to think about ways to scale.

And btw: we're - of course ;) - using Java (Jetty, Wicket, Spring, Hibernate, Lucene, ...) to do this.

Anonymous said...

You should take a look at Slicehost. Complete control over your software stack. It's easy to scale it up too.

Anonymous said...

I've been looking at these guys recently:

http://www.mosso.com/cloudservers_pricing.jsp

Seem to be a pretty cost effective option.

Kieran said...

Take a look at Slicehost or Mosso, these are basically in place for your exact problem, once you have got much past the 2gb slice on Slicehost it is probably time (and hopefully profitable) to move to dedicated hosting and co location