The Need for Load Balancing
- A load balancer is a dedicated appliance, sometimes a piece of software, that is running as a virtual machine and that its gonna sit in front of other servers
- The goal of a load balancer is to provide the following features:
- Scalability
- A single host can only handily so many connections
- A finite limit of TCP and UDP port numbers
- A finite limit to our RAM
- A finite limit on the amount of input-output operations
- We can strengthen the backend with a large number of servers
- Watching for the health of this servers.
- Resiliency
- As individual servers failed between the load balancer, the website or the application is gonna stay online.
- Performance
- Gives us the ability to perform at a higher level to all of our users
- Security
- We can provide security features on the load balancer and we can thwart attacks before they come in and they actually reach out servers.
Local vs. Global
- Local advantages
- Scalability, Resiliency, Performance, Security.
- Global advantages
- Performance capabilities really increase
- We could have people from all over the world trying to reach some servers.
- If there's intercontinental traffic issues what we could then do is we can have different Content Delivery Networks (CDN) located around the world. For example in a DNS query, if someone asks where a server is, we would say "who is asking?" and then based on the geographic location of the source we can give a better answer.
- DNS Integration
- From the initial request for access we can distribute that to the appropriate data center based on number of different things.
- Dynamic Power Management
- At day and Night we may have different costs of power, this may vary based on the day of the week/month/year.
- We can also do this based on load
- Monitor Utilization levels, as there are more transaction, load increase and as a product of that, the load on the physical server is also going to increase. We can dynamically turn on additional physical servers, power the server on dynamically with either wake on LAN or managing the server through something like Intelligent Power. We can log into servers remotely and turn them on or off. The system joins the Cluster and is now available to have resources push onto it.
- Workload mobility
- We can have a lot of applications or VMs inside of a data center, and for example determine if that data center zone is in danger of a hurricane. It would be best if we started migrating our workload off of that data center and move it to a data center in another location.
- Can be physical or virtual (software).