A question we get on a regular basis is “How can I assure that my site will never go down no matter what?” The answer is always the same “There are a number of options available to you depending on your budget and your application”. I have provided a few options below. As always, there are a number of ways to accomplish a task. The list below is by no means complete but will give you some ideas on what can be done to ensure that your site is less vulnerable to hardware and/or networking issues.
In every case, setting up high availability is going to require duplicating some hardware and may require changing the basic architecture of your site.
1. Round-Robin DNS (RRDNS)
RRNDS is a method where you assign 2 or more IP addresses in DNS to a single domain name. If DNS sees that there is more than 1 IP address associated with the domain, it will divide the traffic between the IP addresses. If there are two IP addresses associated with the domain, as requests come in they will be sent in an alternate fashion. In other words, request number 1 goes to IP number 1. Request number 2 goes to the second IP…request number 3 goes to the first IP – well, you get the picture. To set this up, you would mirror your site on two different servers, using one IP on the first server and the second IP on the second server. You are not limited to just 2 IP addresses per site with this method but each IP must be on a dedicated server. In other words, if you assigned 4 IP addresses to the site, you would have to set up 4 servers with an identical copy of the site on all four servers.
The Advantage: RRDNS is that is a free solution and only requires the additional servers and nothing more – no expensive load balancer or difficult software configurations.
The Disadvantage: is that RRDNS does not know anything regarding the health of the server so if one server goes down, RRDNS will still attempt to send requests to that server, which means that Â½ of the requests are going to a dead server. Some surfers will hit the server that is up and see the site while the other half will hit the dead server and see nothing. Another disadvantage is that it may require some site structure redesign. For instance, if you use a CMS to manage your site, you must ensure that the CMS can handle having the site on more than one server.
2. Load Balancing
Load balancing is a hardware/software solution that works much like RRDNS except that the site only has one IP address associated with it as opposed to the multiple IP addresses used with RRDNS. It still requires 2 or more servers with identical copies of the site residing on each server. The IP address of the site resides on the hardware load balancer. When a request for the site comes in, the request goes directly to the load balancer. The load balancer then forwards the request to the least busy server and the server fulfills the request by sending the site content back to the surfer.
The Advantage: A load balancer knows about the health of the servers. If a server goes down or is not responding to requests, the load balancer immediately and automatically removes it from the pool and discontinues sending requests to it. Once the server comes back up, the load balancer automatically puts it back into the pool and starts sending requests to it.
The Disadvantages: Load balancing is an additional cost (we can reduce these costs by putting you on a shared load balancer). As well, the load balancer now becomes a single point of failure so in order to have true redundancy it requires a secondary load balancer in case the primary fails, thus doubling your cost. Also, like RRDNS, you must ensure that your site and applications are capable of running on more than one server.
3. Disaster Recovery Site (DRS)
DRS is where you mirror your entire infrastructure (servers, network equipment, etc) in a second data center, usually in a data center that is at least 2-300 miles or more from your main location. The reason for the distance is in case the primary center is subject to a natural disaster. For instance, if a hurricane brings down your primary location, you want to ensure that the secondary location is also not affected.
The Advantage: You have full redundancy that would cover almost any event.
The Disadvantages: It requires that you duplicate your entire infrastructure, thus doubling your costs to protect against an event that may never occur. Also, setting up a DRS so that it is fully automated requires a serious commitment to programming and architecture.
These are just a few of the things you can do to bullet-proof your site. We also offer Mysql clustering as well as primary/secondary Mysql solutions that can ensure that there is some redundancy in your databases. As always, should you have any questions about high availability, please contact our sales department.