If a single dedicated server is no longer meeting your needs, or you just expect (or hope ;)) that this will happen in the future, then you might find this information useful. I had so many problems scaling a site to more than one dedicated server, but this was not caused by technical problems to implement load-balancing, failover, or redundant solutions. The main problem that I have faced was caused by various datacenters that are not able to help in such situations.
Looking from outside to a datacenter
I have never worked in a big (or even small datacenter) as most of my working life was dedicated to working in the ISP field. So these are just my assumptions and not real facts… If someone knows better, then… feel free to correct me. Ok, so I assume that the most important assets for a datacenter are:
- staff (technical support, but also sales/accounting)
- server hardware (needs to be very reliable)
- network connections (fully redundant backbone connections)
- backbone routers/switches (will have to detect and block DOS attacks, etc).
- redundant power feeds (backup generators, redundant UPS and A/C, etc.)
Did I miss something? I left out the one thing that you would not believe to be very important and this is SPACE. Yes physical space is a major problem for a datacenter. They will have a limited space where they will try to fit as many servers as they can. For example ThePlanet was not accepting new clients a few months ago because they have filled all their available space. Until they opened a new datacenter they could not accept new clients because of this limitation.
All datacenters will have limited SPACE
Obviously all the datacenters will have a limited space where they will try to fit as many racks that will host the dedicated servers of their clients. Once they fill that space they have to expand somehow (maybe even opening a new datacenter). So we should be aware that they will stack each server in the order they will make a new sale. Most certainly there will be no space near your server just after you have it deployed. Why would you care about this? Well, if you have only one server you will not have to care about this. You got the server installed, who knows where, and that’s it… But if you want to add another server to your setup in the future, the problems start.
Beyond a single server
So you have decided that you need to add another server to your setup. This can be in the form of (not limited to these examples of course):
- add a new database server. Taking away the load of database processing from the single server is one of the most common steps most growing sites will do.
- add a new server to load balance a web server. To provide increase processing power for dynamic web applications and also add a redundancy level to the setup. This move is very common for dynamic applications powered by PHP for example.
- add a new server to serve static content. Another common start is to separate static content from dynamic content. A separate server with a quick stripped web daemon can serve much faster and much more than a server that is handling also dynamic pages, etc.
These are just a few examples on how you can start your multi-server setup. You are able to implement those changes in your application and configure the technical solution… but here the problems start when you order the new server and realize that this is not as simple as it looks.
What problems can you expect?
Adding a new server will not be a problem for the datacenter (and most certainly they will be happy to make another sale without any effort). But because of the space problem outlined above most certainly this new server will not be anywhere near your old one/s. So what problems can you face? - bandwidth: all the traffic between the servers will be counted as regular traffic even if it doesn’t leave their internal network. Anyone that has paid for some reasons bandwidth overages will know that this is a serious problem and can cost you easily much more than what you are paying for the actual server. In some cases you will not care about the bandwidth as there will be no intra-server traffic. But if you have one database server, you will most certainly care about this. - private switch: this is a solution to the above problem. Most datacenters will offer you a way to have the servers either cross-connected or on a private switch. This solution to the bandwidth problem can open other problems: they will want to relocate your old server to a new location and probably to change IPs. Obviously that there will be additional costs that will be involved to have them move the server (why should we pay for this anyway?).
What is the right way to do this?
Well, the first step is to be aware of these problems and then you will need to proper plan for your future growth. Talk from the beginning with the datacenter about what options they offer and how they will treat such situations. It doesn’t cost you anything to ask from the beginning what you will need to do if you will have 2, 10, or even more servers. Here are some considerations from my own experience on dealing with more than one server setup. Feel free to share your own experience with other datacenters I have not worked and don’t know how they deal with such situations.
EV1servers: from what I know this is the only major datacenter that will offer a private rack solution that might be the only solution for big sites. You can choose from 1/4 (up to 5 servers), 1/2 (up to 10 servers), and a full rack (up to 20 servers). You can also connect racks between them… You can add a private switch, a private firewall, load-balancer, etc. I can’t find anything missing to this professional solution. Except of its price of course, that will be the highest one, but if you are looking for a professional solution this is the one you are looking for.
ThePlanet: as long as your servers are in the same datacenters (they have 3 from what I know) they will offer a cross-connect solution at extra cost ($25/mo, with $50 setup). If you are unlucky to have the servers in different places they will offer the solution to move your servers (changing IPs of course) at extra cost and a few hours of downtime. This solution is a compromise that will normally not require you to move or change anything on your existing servers to have them cross-connected. Now since theplanet are in the process of merging with ev1 maybe this might change in the future (in good or bad, who knowsâ€¦).
LayeredTech: they will require you to move your old servers (and change IPs obviously) to have them connected with the new one (no cross-connects as seen above; the servers need to be near each other). You have the chance (if you will ask from the beginning) to pay one monthly fee to have them reserve a place near your server (for a limited time - 2 months from what I know).
I always had problems in such situations, so hopefully this information will be useful to other peoples that will not have to learn the hard way these things. From my experience EV1 provides the best solution in such situations with their private rack solution, but this might not be always an option because of its higher cost. Maybe other datacenters will do a better job than the ones I dealt with, but my advice is to always plan this in advance and be aware of what choices you have before it is too late. Please feel free to share your own experiences in similar situations (good or bad).