have you ever wondered how some of the largest websites handle millions of users simultaneously without crashing or how they transfer your data securely when directing you to the right server in this video we're going to dive into the three critical web components which are proxies reverse proxies and load balancers whether you are an engineer or just curious about how the internet works behind the scenes in this video we will break down these complex Concepts in simple easy to understand terms so let's get started imagine you were planning a dinner at a popular restaurant but you don't want to interact directly with the staff because you're too busy or too lazy or you're shy whatever the reason so instead you have a personal assistant who makes the reservation on your behalf so the restaurant staff never interacts directly with you they only communicate with your assistant in this scenario you are the laptop that you use to browse the internet and your personal assistant is a proxy server and proxy server acts as a middleman between your private Network which your laptop is connected to and the public internet where your requests go out and the proxy is protecting your laptop by filtering traffic and blocking any harmful websites or scripts or code before the response gets forwarded back to you now in a company scenario where this is more important let's say you have many employees and they are browsing the internet and going on who knows what websites so for example if your marketing employee visits some shady website and clicks on a link to download some new presentation tool in maybe a malicious website so they send some virus as a response along with the tool and when a malicious content or script penetrates your company internal Network through one employees computer it may do some real damage to many other things in your company so to protect the internal Network an administrator in the company May configure all internet traffic of all employees machines to be routed through a proxy so proxy will now stand as the guard of your company internal Network you can Blacklist any websites that you don't want any of your people to visit and proxy will block this traffic but for any other requests that actually do go out to the to various websites it will also scan the responses for any viruses and of course block them if they are malicious so it acts as a shield between your private Network and the public internet plus it can also log user activity to show what sites people are visiting and on top of that proxy also has another important feature which is caching responses so for example if one engineer in your company visits this tutorial video about proxies to learn new skills the proxy will fetch that video from YouTube and cach it locally so now when 10 other Engineers see that and decide they also want to watch such informative tutorial to learn new skills proxy will just return the cached copy instead of fetching it again from YouTube and this way it will save bandwidth and reduce any unnecessary traffic to the internet and this kind of proxy is also called a forward proxy now back to our restaurant analogy your assistant made the reservation and you arrive now what you do is instead of wandering around looking for a table yourself you check in at the reception desk right the receptionist tells you follow me and shows you to the right table so here the receptionist is also a proxy but this time on a receiving end of the request it sits in front of the restaurant's internal dining areas which in our case are the servers and manages the incoming requests or the guests and distributes them to the right Tables by checking the capacity and having overview of the entire flow and this proxy sitting on the server side handling those incoming requests from clients is called a reverse proxy and the function of Distributing the guests evenly across dining areas and tables is load balancing which is one of the key functionalities of a reverse proxy but it's not the only functionality reverse proxies actually have most of the features that the forward proxies have like acting as a shield to protect the servers because when you have hundreds of servers and they all have access to sensitive data or code it's really dangerous to expose all hundred servers directly to the internet instead you protect them in an internal Network and you just put one or few proxy servers as an entry point and you configure all the security measures on that handful of proxies so what the reverse proxies will do is they will scan the request they will ensure SSL encryption is enabled so the traffic is encrypted and will check basically for any security threats or any attempts of hecking into your systems it also provides caching to speed up responses to the clients and has a logging functional for doing troubleshooting for example so a lot of the features forward proxy has reverse proxy has as well and one of the most popular reverse proxies is engine X which you may already know as an engineer if not I actually have a separate video on enginex that you can watch here so as you see load balancing is just one of the many functionalities of a reverse proxy so it's a feature that proxy can perform now many of you may ask here but what about the cloud load balancers why do we need reverse proxy if we have cloudload balancers are they a replacement for reverse proxies like ads and other Cloud platforms they all have load balancers so why do I need an engine X reverse proxy to load balance the incoming traffic if I can just use AWS load balancer well in practice you actually want to use both and here is why for example you would have your Cloud load balancer outside of your servers as an entry point into your private Network while reverse proxy will be routing traffic within your server Network so now you are encapsulating the reverse proxy and those backend servers all into a private Network and the load balancer basically just sits there and does a basic load balancing to the reverse proxy and this type of layered approach actually makes your infrastructure much more secure and also much more scalable you may be asking why do I need to load balance twice on multiple levels so why do I need proxy inside if I have the load balancing outside reverse proxy actually has more intelligent fine grained load balancing which will allow you to do much more intelligent routing to the web servers so while Cloud load balcers distribute traffic based on simple algorithms like whoever is the least busy on on reverse proxy you can configure more advanced routing logic based on headers cookies or session data for example you can decide all the requests from the same user they always go to the same web server so it will basically check the associated session data or cookies and it will forward the same client requests to the same server reverse proxy can also handle SSL and TLS termination and you can inspect the encrypted traffic to make more informed load balancing decisions and this is especially important in microservices architecture where you may have plenty of microservices and based on the request path for example or the URL you may want to forward that request to a specific micro service so it's a very logical load balancing that reverse proxy is doing here and in our restaurant scenario this would be equivalent to if our receptionist for example knew some loyal guests and showed them to their favorite table to have dinner or they selected a table with the best view for guests who are celebrating a special occasion or giving a different menu for vegetarian guests and so on so basically more customized request handlink based on a little bit more information about the guests and the setup that I described is actually exactly the one that we would use in a kubernetes cluster with microservices where an Ingress controller which is a basically reverse proxy for kubernetes will handle internal routing and security while the cloudload balancer will act as the first line of defense managing the external traffic and kind of shielding them before they get to the cluster and finally another question you may be asking here especially if you are a software engineer is what about the servers or proxies that start automatically when I run my node.js or Java application what are those are those reverse proxies as well how do they run or how do they start in the background well these are lightweight proxies for example node.js it doesn't have a built-in reverse proxy but you can easily create one using its HTTP module or a framework like expressjs which is actually a framework that most people use with noj so compared to engine X for example which is used in production prj serves different purpose however these two can actually be used in combination so for comparison engine X is a high performance web server and reverse proxy so it's a technology that can be used for web server as well as reverse proxy and it's ideal for serving static content has load balancing functionality it handles security features like SSL termination and so on while expressjs is a minimalist web framework for noj specifically used to build Dynamic web applications and apis and you can actually configure some custom logic and middleware for how the request should be handled for different endpoints plus engine X also has an advantage that it can handle a large number of concurrent connections very efficiently while expressjs is less performant in that area so in proper production setup engine X is often deployed in front of an exper application is a reverse proxy so in this setup engine X will handle static files load balance requests and manage the security while expressjs will process the more Dynamic content so that's basically the breakdown of proxy versus reverse proxy as well as load balancer which is pretty simple if you understand them at this basic level so I hope I was able to help you understand what these concepts are clearly and more importantly how they compare to each other which I think is probably the most challenging part of understanding proxies and load balancing and so on now if you enjoyed this video and you really want to advance your it career then we can absolutely help you with our structured learning programs which are focused on practical demos that mirror real life projects and one of the most important ones that we have is our certified devops practitioner program we have trained thousands of Engineers who have successfully transitioned from other engineering roles like network engineer test engineer software engineer to getting their first devops engineering jobs transitioning successfully into devops and even sometimes moving countries to work at their dream company however there is a prerequisite knowledge required to do this program this means if you have a solid IT background in any other engineering field and you know already that devops engineering is currently one of the most promising and one of the most futureproof IT jobs that you can have our DeVos boot camp will literally guide you step by step through every single cloud and devops technology that you need to learn and how to combine them and use them together to build endtoend devops processes if you're interested you can actually download a free pdf that lists all the real life demo projects that you're going to be building and learning with throughout the dev of boot camp and you will find the link to this PDF in the description along with all the other relevant information for this video and as always thank you for watching and see you in the next video