Load balancing & high availability

It is important to understand the distinction between load balanced and highly available – the two are not the same and one does not imply the other.

Load balanced

You have multiple app servers that the load is shared across. It does not imply that in the event of failure of 1 server – that the solution will continue to run without error.

Eg. In a solution with 1 load balancer, 2 web servers and 1 database server – if either the database server or load balancer failed. The whole solution would fall down.

Highly available

For every machine you have, there is a backup machine that can take its place in the event of failure.

Eg. In the previous example, to make it highly available, you would add another load balancer and another database server, so that there is 6 servers in total. 2x load balancers, 2x web servers and 2x database servers – you could lose up to 3 machines (one in each layer) before suffering a total outage.

How MageStack combines loadbalancing and high availability

MageStack combines both of these (when used with 2 or more physical servers); it provides real-time disk replication between servers and high availability for all services running on each machine.

Eg. With a 2 server set up.

  • Server 1 would run the load balancer, web server, mail server, access server and monitoring server
  • Server 2 would run the database server and a second web server
  • Data is replicated between both machines in real-time

Should either server fail, all its “servers” would migrate over to the other server – which would resume operation of everything. You would have 50% the capacity at this point, but no loss of availability.

High availability, loadbalanced or both with just 2 servers

If you have a 2 server set up with MageStack – we can either provide

  • A highly available, load balanced environment
  • A highly available environment (the former making more efficient use of your resources if you ever need to “burst” above normal traffic levels)