So our first appliance that we're gonna talk about is gonna be our load balancers. Now, what is load balancing when we're talking about load balancing? We're talking about distributing a workload across several different devices. So essentially we're taking certain devices, which we are getting a lot of traffic on. We're having a lot of people trying to access these devices.
And instead of just sending the workload toe one single device
we distributed across several different devices several different servers, If you think of when you navigate to Facebook's website, Facebook doesn't just have one server sitting in a room somewhere that everybody in the world acts who accesses. It connects to that one single server. They have tohave a lot more servers than just one single server,
but they need it to be transparent. Tow us. They need it to be
done in a way that we don't have to try to connect to facebook dot com, and we can't get there because it's too busy. So then we're gonna try to connect to Facebook to dot com and this too busy we're gonna try to connect to Facebook three dot com. It's too busy
we don't wanna have our users doing that. We wanna have devices available that take those requests and then autumn, even if they're directed at one location, even if they're directed toward one i p address, they can take those requests and they could distribute them across. Different across different devices that can distribute that workload, make it more manageable.
And when we're distributing workload across different devices there several different types of reasons why we do it, why we would do load balancing. I just wrote two examples up here. We have something called D N s Round Robin and we can have http response round Robin,
where if we set up different D. N s servers and we're servicing a large enterprise environment, we may need more than just one D. N s server. So what we do is we set up multiple Deanna servers and have them set up to round robin requests back. So if our computers and our environment we have one computer that requests
request information from a D. N s server
and it gets sends the response to this server, and then the next request goes to the next server. When we're talking about right round robin essentially
say we're extending out requests. The first request is going to go to server number one second server number 2/3 requests server number three and then our fourth requests goes back to server number one or however many servers we have. It just puts him in a list, goes down through the list and then re starts at the top
and the same thing with http requests. Web servers will do this and they'll distribute their workload across several different Web servers. We will have our load balance of received a request, and then it will send it to the first in the list. And then and then the second request. It receives it since two, the second on the list
and keeps going down the list until it sends it back to the 1st 1
load balancers. We want them to be transparent to our end users. We want our load balancers to be as transparent as possible to the people that are using them. We want it to seem like to the people who are connecting or sending a request that we only have one device that's being serviced.
We really we want to reduce the amount of time that it takes for our load balancers to make a decision as to where they distribute this request to.
And we want to make sure that a user doesn't say, Oh, well, sometimes I send a I'm loading your website and it comes up really fast and then sometimes I loaded up and it's about medium speed, and then sometimes I loaded up and it's really, really slow. Well, that would mean that there's differences in between our three different servers as far as how they're servicing those requests.
So we want to make sure that when we're doing when we want to make this,
when we're setting up our load balancing, we want to do it in such a way that it's as transparent as possible to the end user. It looks to them like we just have one single server,
so our load balancers have different algorithms that they use in order to equally distribute the weight amongst the servers. We talked about round robin. When we have the load balance or send our request to each server and then once it hits the end of the list, it starts over again
But sometimes that's not the best way to do things. We have servers, some service that maybe
that may have more computing power. They may have more. Resource is than enough. Another server. We may have one server that's getting a lot of high volume requests, having requests that are trying to pull a lot of data.
So other than just round robin, we also have least response time.
So our load balancer essentially sends a request to each of the servers in our list. Each of the devices in our list and says, Hey, which of you are available? And then the first response he gets back saying, I'm available. It's gonna send the request to that server. That way it is. It's pretty much just saying, OK, well, whoever gets back to me first,
that apparent, that must be the person who has the least amount of stuff going on
because it took them the least amount of time to confer, formulate a response and send it to me. So I'm gonna send them the request.
We can also have waited round robin where we give different servers, different weights. Essentially, we say, OK, this server is about twice as powerful. Is this server here? So let's say I have I have two servers in my round robin list for my load balancer. But this server is twice as powerful as this server.
So I'm going to send this server two requests in a row before I send my second server. One request.
So powerful server gets a request. Powerful get server gets another request and then week server gets a request, and then powerful server gets two more requests, so that would be weighted round robin. It's a more hands on approach to round robin where we actually
take and look at our servers, look at their capabilities and decide who gets more weight.
Who should be trying tow. Handle more traffic
load balancers may also do more than just balancing work. Workloads load balancers may also give us D. O s protection denial of service protection. DDOS attacks are essentially a high volume traffic requests to a certain device to a certain to a certain service provider.
I say we have a someone who's trying to bring down our website
rather than trying to hack into our website or rather than trying to find a vulnerability in our Web server. They may just try and send our website millions of requests at once. And then our website is so busy trying to catch up to those millions of requests that nobody else can catch up are no one else can connect in.
So that would be our denial of service. They're essentially denying service
to anyone else who's trying to connect to our Web server because they're sending so many requests. Well, our load balancers may notice that increase
that that influx of traffic and make Seo these air just all ping requests where these are just random nonsense requests or all of these requests. All of these millions of requests are coming from the exact same the exact same destinations, the exact same I P addresses.
So I'm gonna take all of these requests and I'm just going to drop them,
and I'm not gonna pass them onto the server to try to handle Well, that could give us a little bit of denial of service protection because our load balancers are actually going to drop those requests and they're not gonna afford them on. They're not gonna be something that our server has to deal with
load balancers could also can also do some really balances may also be able to do cashing. Now cashing essentially means that our load balancers are going to take a service that is commonly commonly requested. Take a Web page that's commonly requested,
say, our home page, and they're gonna take that page and they're going to keep it in their local memory.
So it's being requested a lot. We don't need to pass on the request to our servers are load balancers get the request and they say, Oh, I have a copy of the answer to the this request. So rather than passing along and giving extra workload to the servers, I'm just gonna respond to this myself because I have a I have a recent copy of this
so they could provide cashing
so doing more than just distributing the workload. They're actually easing some of the workload by responding to some of the requests requests for us.
So here we have, ah, very basic example of what a what a load balanced environment may look like.
So, up here we have our Internet, and this is gonna be our public network that's connecting into our into our private network.
And we have our router here, and we have our load balancer, and we have our three Web servers now are three Web servers are
are pushing back are giving back
requests to clients. They're streaming videos. They're letting clients download files. So we have a lot of we have a lot of very in user heavy functionality is going on here video streaming file downloads, things like that. So we have three Web servers rather than just one.
So right here are green Device
is going to be our load balancer. And when our load balancer as it gets requests from the Internet
is going to take them and distribute them to each of our different devices.
So let's say rather than just doing waited rather than just doing regular round Robin, we're gonna tell our load balancer that we want to do waited round Robin. And we say that we have server our first server here,
which we give it a weight. We say that it has a computing power of 10.
Serving number two has a computer power computing power of 20
and 37. Number three has a computer power computing power power of 30. Don't don't stress over these numbers too much. We're essentially just saying that Computer One is only 1/3. It's powerful. It's computer as our third computer. That can do safe that can respond to 30 requests at a time.
So our load balancer we're gonna enter that information in, we're gonna enter our different weighted round robin information in and then around our load balancers gonna receive the first request
and send it to our 30 server.
Receive a second request is going to send it here third requests and it's the same place. And then it's gonna start sending to our 2nd 1
and understand one sent to,
And then it will send to the 3rd 1 and just send one request and then it will look back and start sending to our most powerful server again
so we can see how our load balancing helps us to distribute out. That workload helps us to take those if we connect. If we're providing Internet Internet facing functionalities, take potentially hundreds of thousands, if not millions of requests and distribute those across several different devices
now load balancers, maybe just a single
a single hardware device that we buy as a load balancing a load balancer device,
a load balancer, maybe a server that we've configured with specific load balancing functionalities that has that is able to perform load balancing and able to pass on request other devices. So, just depending on our depending on our environment, depending what type of hardware we have, what type of what type of
but we have if we want to go out and buy a device that just functions is a load balancer
or by a server that functions is load balancer as well as perhaps a gateway device. Then we can. But just remember that when we see load balancer and we're and we're trying to know what load balancing is and what it does, just remember that load balancing is distributing our workload across several devices
and that when we load balance, we want to make it as transparent as possible to the end users