Learn the fundamentals of the backend, scaling and load balancing with my Introduction to NGINX udemy course nginx.husseinnasser.com
@bahaaeldeen46994 жыл бұрын
this playlist just keep getting better and better honestly it may be the greatest channel in the tech field
@hnasr4 жыл бұрын
Glad you enjoy it! Thanks Bahaa
@anamulkabir10144 жыл бұрын
"More we repeat more we learn!" that's the way to teach - thank you so much Nasser, you are the best!
@juanstakys24 күн бұрын
I have never seen such a good explanation before. 10/10 teacher. I hope to see more long videos like this one. Thanks!
@siddharthshukla98323 жыл бұрын
dude, i simply love the way you articulate. It is like listening to a story. I tried to look up some other videos on this topic. But frankly speaking, the difference between Layer 4 and 7 was never explained so easily. Hats off to you Hussein
@robertluong30243 жыл бұрын
I randomly came here from your NAT video just for fun. I didn't expect to leave with a clear understanding of this. You're awesome.
@amitbist2k25 жыл бұрын
Great, I am a unix sysadmin and you helped me understand some old stuff making it easier. Those good old days!
@arunsatyarth90974 жыл бұрын
29:50 "I dont want the load balancer to look at my data." Sir, the fact that you dont have a million subscribers is a crime on humanity.
@esra_erimez4 жыл бұрын
Agreed
@chiefolk4 жыл бұрын
I think the data here is URL u just entered in the browser which gives IP address so doesn't make sense if you don't want to see them this URL for privacy reasons
@aniekutmfonekere7403 жыл бұрын
the best channel ever with real-world application of tech
@aarthydesikan99394 жыл бұрын
Very well explained, thanks so much! Your way of explaining with an intent to capture audience attention but the same time not compromising the technical details is very nice.
@ujemvi4 жыл бұрын
He killed me with the "pew pew pew" at the round robin demonstration
@SunilRana-tm8lm3 жыл бұрын
Hi Hussein! I recently came across your channel and now I wish I had found this earlier. Thanks for the amazing informatic videos.
@iammjpops3 жыл бұрын
I dont know if I would have understood L4 and L7 R-Proxy better... THANKS A LOT! Bow to you!
@fireystella2 жыл бұрын
Ur content is super great! And ur narration 😂 just when I’m losing my attention you say something funny and then I’m paying attention again 😆😆 many thanks!
@tikz.-37384 жыл бұрын
Was just looking for websockets ended up watching 7hrs in a row ur awesome and ur just the teacher I wanted no 5min videos tho it was quite hard to click on those 40min videos once I did it didn't felt like I was watching something for 40mins well it's just interest and great content quality but dude heads off to u thanks for all this awesome knowledge at once place
@hnasr4 жыл бұрын
❤️❤️ that is awesome 👏 thank you for your kind words and glad you enjoyed the content 🙏🙏
@tikz.-37384 жыл бұрын
@@hnasr still counting, after learning from all the linked and suggested videos I'm finally seeing the first video of websockets for which I initially came 😂 came for websockets became network engineer and more aware back-end engineer ur awesome dude I have no words for the content quality and availability
@icbm73 жыл бұрын
was the page not changing at 21:37 was because of the browser cache?
@xavierk998 ай бұрын
A great explanation with a lot of energy. Love it!
@MI5500 Жыл бұрын
This guy will be a great dad 😂😁
@richardmaduka47474 жыл бұрын
Your content is gold.
@ArdhenduShekhar-sw4uy7 ай бұрын
HE PUT A THAT'S WHAT SHE SAID JOKE IN THERE. ABSOLUTE LEGEND.
@jeetendrashinde28554 жыл бұрын
An excellent demostration of difference between the 2 Load balancers, good job Hussein !!
@hnasr4 жыл бұрын
Thanks Jeetendra!! appreciate it
@davidlira88533 жыл бұрын
this helped me have a better understanding of the difference between a Layer 4 Load Balancer and a Layer 7 Load Balancer. Now I understand that an ingress is a Layer 7 Load Balancer
@eraldkeshi36453 жыл бұрын
HI Hussein ! I'm so happy to have found a channel with such a great content. I have noticed that besides the videos, your slides are also very clear and concise. It would be really helpful if you could also share a link to them ! Keep up the good work
@hnasr3 жыл бұрын
Glad you like them! thanks Erlad!
@sebschrader3 жыл бұрын
Most load balancers (and especially HAProxy and nginx!) still use two different TCP connections in L4 mode with potentially different timeouts, window sizes etc. There are load balancers that simply forward packets (e.g. Linux ipvs) and only have a single end-to-end TCP connection between the client and the backend, but these are more uncommon.
@JuanManuelMunozBetancur Жыл бұрын
Hi, could you please share any documentation to verify this information
@wathekbeji85693 ай бұрын
Absolutey true. I just captured packets on the interfaced where HAProxy runs and it turns out it uses different TCP connections for the backend servers.
@SinghGaurav95 жыл бұрын
Hey man, thanks for the video, it was informative. Your funny style made it even more interesting.
@rishabhjain54593 жыл бұрын
Thanks for making our life easy and also for making your videos a lot more entertaining. :D
@Iliasbhal4 жыл бұрын
BTW, you are clearly the best teacher on youtube. I think you can teach anything actually ;). You are making learning so much joyful.
@hnasr4 жыл бұрын
Iliasbhal aww 😊 thank you so much I am glad you enjoy the content
@r3jk83 жыл бұрын
Thumbs up for the clear explanation of this topic and also for the super funny comment “that’s what she said.” 14:11
@DevOpsEnver3 жыл бұрын
MashAllah you are so good and professional in your area.
@smartstack2 жыл бұрын
very crisp & informative
@TechverseByAjay2 жыл бұрын
Good to see configuration in the video
@subhamprasad13733 жыл бұрын
thank you, for your hard work. you are such an amazing person, sharing all this wonderful knowledge.
@iQatif4 жыл бұрын
شكرا ابو علي
@hnasr4 жыл бұрын
العفو
@wangsonny86943 жыл бұрын
thanks for this great video, helps a lot for preparing system design interviews!
@animatrix18514 жыл бұрын
I have a small question, also thank you for answering my question on your other video!!! So essentially, my thinking is that you'd need to balance your load if one server is .. well being overloaded. So in this instance, if i do setup a load balancer that doesn't redirect me but actually funnels the data through itself. Then, what's preventing the load balancer from being overloaded itself ? It's handling all the tcp connections of both the servers in your example right ? Sure, it's not doing cpu work but there's some I/O throttling that'll happen eventually right ? I'm just confused here because if that's the case would you put a load balancer to that load balancer, there's still going to be a single point of failure if the balancer dies/overloads. Correct me if i'm assuming that I/O load could be high, maybe funneling bytes isn't that tiring and the load balancer could do it no problem. (or) maybe the tcp connection splits away after the initial hit and the data doesn't go through the balancer anymore ? I'd love for you to answer this since i've not been able to wrap my head around this part.
@chandanapericharla4 жыл бұрын
Your concerns are totally valid. If there are too many concurrent connections, it can throttle the load balancer itself bringing down the overall availability of the system. Hence, heavy traffic applications like Google and Facebook opt for distributed load balancing where the load balancer is not a single server. Google offers one such service called GCLB-Google cloud load balancer. You can find some info on it here:landing.google.com/sre/workbook/chapters/managing-load/
@vjmathew69623 жыл бұрын
may be you would have found your answer, if not, see keepalived video of Hussein. You will get an idea Edit : keywords VIP ( virtual ip ), VRRP
@pajeetsingh3 жыл бұрын
How does actual forwarding works? Create new socket between RP and Server? There has to be at least two open socket invoked in client to backend, is not it? It is just the RP makes it look like one TCP connection.
@DYamanoha3 жыл бұрын
Yeah I was a bit confused about the '1 tcp connection' pro that was called out for Layer 4 LBs. The only way this could work is if you had 2 sockets for each logical connection. One for the client connection, and one for the back-end server connection. As soon as the proxy accepts a client connection it must store that socket along with a new socket connection to which ever back-end server was chosen. Bytes just get copied between the receive and send buffers of the socket pairs. All this ip swapping is automatically done through the socket API abstraction. The same would have to happen for layer 7 LBs. Afaik, the only difference is that Layer7 LBs deserialize the http protocol. One huge benefit is per. http request routing, which can help even out load across your backends.
@Textras4 жыл бұрын
Have you done a video on H2C smuggling?
@hnasr4 жыл бұрын
Textras I have not! Didn’t know about it thanks for sharing.. I only discussed HTTP 1.1 smuggling. I wouldn’t worry about h2 clear text though since most h2 setups are secure
@Textras4 жыл бұрын
@@hnasr saw it here twitter.com/theBumbleSec/status/1303305853525725184?s=19
@hnasr4 жыл бұрын
It is actually a serious one if you backend supports h2c, I need to discuss this thanks for sharing!
@ezekielchoke25804 жыл бұрын
What you're describing around the 30 minute mark - sharing the pool of connections - is exactly what nginx does. It's sometimes called multiplexing. In our case, this causes an issue, since the application behind the LB needs to recognize the client and attempts to set a very long cookie, which the client truncates.
@briansaunders47453 жыл бұрын
Can you create a video about the Denial of Service features of a load balancer, and talk about how an ADC is the same or like a load balancer? Very cool delivery and the humor is appreciated and very good!
@hnasr3 жыл бұрын
Thanks Brian, I talked about DOS here kzbin.info/www/bejne/anqapYONbdSZaMk
@pkcc93815 жыл бұрын
U are AWESOME. U made this video even though this is not most voted topic in ur last survey.
@hnasr5 жыл бұрын
PK CC you guys are awesome! Of course I will make videos on topic you guys interested in. Ill just adjust priorities. Hope you enjoy it and thanks for commenting ! Stay awesome 😎
@Obsi9954 жыл бұрын
guys not only is he extremely helpful but he also loves The Office :'( amazing
@hnasr4 жыл бұрын
If you are an office fan You will like this http/2 video kzbin.info/www/bejne/nIeugaV6p6qqiqs
@GlenMillard4 жыл бұрын
"..that's what she said!!!..." Ha - someone is a Micheal Scott fan!!
@hnasr4 жыл бұрын
You think? kzbin.info/www/bejne/nIeugaV6p6qqiqs
@pajeetsingh3 жыл бұрын
TLDR?
@davidlira88533 жыл бұрын
that cracked me up lol
@BoyzaLetlojane4 жыл бұрын
Enjoyed this video. Learning made fun!! :)
@hnasr4 жыл бұрын
Thanks George! Glad it was
@joesephbattle78343 жыл бұрын
Kristen n charles
@brurytangkere48743 жыл бұрын
Hi, is there example if the HAProxy Loadbalancer using redis db as a session
@mamyname4 жыл бұрын
Keep up the good Tutorials.. thanks for sharing :)
@hnasr4 жыл бұрын
Glad you like them!
@recepinanc33514 жыл бұрын
Thank you for the great post!
@Mayank03915 жыл бұрын
Again a very nice video. A detailed tutorial video of haproxy would be great.
@hnasr5 жыл бұрын
Thanks 😊 haproxy tutorial is requested a lot! Ill need to make it soon. Have so much other videos on my backlog
@CODINC4 жыл бұрын
Hussein what is the use of load balancer if i can use reverse proxy because reverse proxy is a load balancer? Is it any efficient?
@abdelrhmanahmed13782 жыл бұрын
in layer 4 ,we have one connection between the client and the load balancer and the server ? how is that happening , what about the acks > and what happen if the packet is lost between one node and the other ?
@pipi_delina4 жыл бұрын
Hello Hussein do you have a video ebay's neutrino loadbalancer... kind regards
@hnasr4 жыл бұрын
Ismail Yushaw hi , unfortunately I don’t didnt discuss that.. however all load balancers are similar. Some picks different design choices Check out this playlist Load Balancing kzbin.info/aero/PLQnljOFTspQWdgYcGXCTkjda8vd2jWJYt
@pipi_delina4 жыл бұрын
@@hnasr I hope you can do something similar to that of traefik
@AhmedMohamed-xs5ij5 жыл бұрын
This tutorial is great
@jianxiongng19794 жыл бұрын
I had a Nginx behind the HAProxy, how can I pass the authentication of Nginx back to Nginx server through the HAProxy?
@Midhunchowdary3 жыл бұрын
Wondering if microservices can run behind Layer 4 LB by running the services on different ports?
@dr99tm233 жыл бұрын
thank you a lot.
@blablabla0504844 жыл бұрын
Great explaination, and Very Cool Cursor movements. what kind is it ?
@hnasr4 жыл бұрын
Rico Agung Firmansyah Thanks 🙏 I use google slides
@AtulPoddar-x1d Жыл бұрын
How does the layer 7 LB know which client to respond to, when it receives the response from server? In layer 4, it is done by maintaining a NAT, and it is the same TCP connection.
@RNCode12349 ай бұрын
@hnasr If Layer 4 load balancer heavily relies on IP Address which is Layer 3. Why do we still call it Layer 4 load balancer? We could call it Layer 3 load balancer. Isn't it?
@deeptshukla51414 жыл бұрын
Great placement of that's what she said! Great tutorial @Hussein
@girishnl4 жыл бұрын
Great video. great content, very well explained. thank you for your effort :-)
@casual-corner-k8s4 жыл бұрын
great explanation
@hnasr4 жыл бұрын
Glad you liked it
@mohammadturabali38704 жыл бұрын
why are two tcp connections needed in load balancer 7 and only one in load balancer 4????
@hnasr4 жыл бұрын
I go in details about this here kzbin.info/www/bejne/r53OcpZvrNJ-nsU kzbin.info/www/bejne/fWmZkqt9m9OKl8k
@mohammadturabali38704 жыл бұрын
@@hnasr thank you
@abdelrahmanabdelfattah10923 жыл бұрын
Thanks for this great video, I have a question, what is the difference between using an SSL certificate on layer 4 load balancer vs using it on layer 7 load balancer?
@hnasr3 жыл бұрын
Fantastic question. Layer 7 load balancer must terminate TLS while Layer 4 load balancer doesn’t have to. L4 LB can terminate TLS means serve the certificate from the LB, which means it can decrypt and look at the content. It can also decides to Passthrough the TLS. Hello all the way to the backend which means it is end to end encryption and cert is served from Backend
@hingusanjay4 жыл бұрын
Great tutorial. One question, if load balancer algo it round robin, then it was sticking to 4444 or 5555 only without you killing one of the server?
@la412311 ай бұрын
I'm wondering abaut that either. It's so weird.
@pengdu77514 жыл бұрын
great video and explanation. the flying red dot is a bit distracting
@hnasr4 жыл бұрын
thanks and apologies for the red dot, I try to get better as I make more videos
@pengdu77514 жыл бұрын
@@hnasr but overall great work. keep'em coming. it's been so fun and informational watching your videos. right to the point with demos. I teach in college part time and I wish I could be as a good speaker as you.
@hnasr4 жыл бұрын
Thank you Peng for your kind words. I find making videos help improve my skills. I still need lots of work, particularly getting to the point quicker
@AMANSINGH-gg8xz3 жыл бұрын
Hii, I just watched your video today, I have one doubt that if layer 4 load balancer uses one TCP connection how can we give a grantee to the client that the packet has been sent?
@tusharh47233 жыл бұрын
Hi Hussein, great content. Thanks!! One question is in your example of layer 7 load balancing with Haproxy I did not see ssl certificate mentioned in configuration,then how Haproxy was able to work on layer7????
@antoniorap8825 Жыл бұрын
Hey, thank for this helpfull and amazing tutorial and explaination. sorry for my bad english. I have a question, the backend IP can be found / detected by anyone ?? its there a possibility to hide a tcp connection using netcat to the load balancer proxy, and connecting to the backend, with sniffing maybe no? thank for people who respond and help !
@sarwowibowo93182 жыл бұрын
What if the load balancer is died? How to guarantee fault tolerant?
@navindudissanayake16693 жыл бұрын
Why does a level 7 load balancer need 2 TCP connections compared to 1 on level 4?
@nityadeepika19673 жыл бұрын
hi Hussein, TLS termination happens even at layer 4 load balancer isn't it? I remember using an SSL certificate at the network load balancer (NLB in AWS). then, in my opinion, layer 4 does know the data. that makes it less secure. This kind of contradicts what you said at @10:26. could you pls shed some light?
@hnasr3 жыл бұрын
That is 100% true thanks for mentioning this, TLS termination can happen in layer 4 (tls handshake will happen between client and proxy) this is as oppose to TLS pass through which the proxy merely forwards the TLS hello all the way to the backend
@edenr19884 жыл бұрын
Awesome tutorials, I've learned a lot from them about networking thanks !! :) you seems to know a lot about networking so I have one question (maybe not 100% related to this video, it's also related to previous videos that you released) - I have the following use case, I want to redirect traffic to my local private network from a public cloud provider VM and I was thinking whether I should use iptables tcp forwarding (after seeing your other tutorial) or for example nginx / haproxy ws tunnel. Do you happen to know what's the pros and cons of these approaches ? what would be most reliable in terms of latency and security ? should I be just fine with iptables TCP forwarding ? or should I go with ws tunnel (The next step would be to build client / server app to automate the update of my private NAT IP address on that server so I can keep getting traffic from that "cloud static ip", I would also make it open source with MIT once I get into implemention) I've tested the iptables tcp proxy from your other tutorial and it did in fact worked, I could recieve traffic and respond from a cloud instance that was transfering the tcp packet to my local network. I've never tried ws tunnel thought and would like to know your opinion. To be more specific I have a Kubernetes Ingress on my local network (Layer 7 Loadbalancer) that the traffic would be transfered to it using portforwarding on my router. So from the cloud instance all I need is the static ip address basically (and the point of it is that I would be able to use more resources by only creating one single instance for probably $5 a month), I just want to transfer the client to my private cluster on my private network, the rest would be handled on my local private network.
@fyrweorm2 жыл бұрын
I don't get it. What's the difference between an api gateway and a layer 7 load balancer?
@rhul00173 жыл бұрын
OK Hussein i have a doubt, since the segments are part of layer 4, then those units will definitely have IP included in that, Then we can use it to make the units sticky by forwarding the same segments with same IP to a server right,How is that a con, layer 4 can do that right, correct me if am wrong, i am just getting started, thanks
@nafasm4 жыл бұрын
Great video.Thank You
@hnasr4 жыл бұрын
Thanks Nafas!
@brianpayne34683 жыл бұрын
Can you do a log-format in using logging (rsyslog) in HAProxy. I like to troubleshoot an HAProxy issue where it is dropping connections in rare occasions. Something to do with a sticky-bit in HAProxy timing out. The HAProxy is used as a Load Balancer ( reversed proxy) and runs as a container. Only connect using HTTPS in the Load Balancer using ports 80, 443, and 7999. From the logs, I like to see why and where it is dropping the connection. I would like to see the log info on the time duration of the connection. I am currently using 3.2.14 version of HAProxy. Thanks!
@adilamanat81174 жыл бұрын
Great content! I have a question if in 7 layer architecture load balancer use 2nd tcp connection how does it response back to client does it make connection keep alive during that process or what?
@hnasr4 жыл бұрын
Good question! LB starts and establishes a connection B1 to backend1 and B2 to backend2 Client establishes connection C1 with LB. Client sends a request on C1, LB receive it, looks at the content, perhaps changes it and then send the request on B1. LB wait for B1 to respond, once it gets back the result, it sends back the result to client. all this the client is synchronously waiting.. Client sends another request on C1, LB receive it, looks at the content, perhaps changes it and then send the request on B2 (because of round robin algorithm) .. same thing hope this helps
@sneharajit413 жыл бұрын
I understand the concept of two flavors of load balancer but my question is since a load balancer is basically a software and processes the incoming request why both are not working in a single layer(layer 7)?
@sairam-lj6zu4 жыл бұрын
Great video Hussein. I have a doubt, how layer 4 proxy will forward the packet to the server, without replacing the Destination server ip address in the ip packet ?
@hnasr4 жыл бұрын
Good question! One implementation is to keep a table of what sourceIP goes to what Destination IP so it can map it. This is called NAT (network address translation) check out the NAT video I did How Network Address Translation is used on Layer 4 Load Balancing and Port forwarding
@coolzsatyen12 жыл бұрын
Great Explanation, however you said you love to repeat, then you do not follow DRY principles :)... Keep posting such great videos. Appreciate !!
@jayak37684 жыл бұрын
Quick question: Does a layer 4 load balancer have the capability to always direct a client to the same server. So that if there is http session information maintained on the server for the client, it continues throughout the duration of the client's interaction with the same server.
@hnasr4 жыл бұрын
That is correct. Layer 4 Proxying maps client requests on the same TCP connection to always go to the same host on the backend. That being said the browser (with HTTP/1.1 specifically ) opens multiple TCP connections to a single host. So if you make a request to the site it can go to a TCP connection which will go to Host A but then you can make another request to the same site but browser will use another TCP connection which will land on another Host B.. I explain this in details here kzbin.info/www/bejne/r53OcpZvrNJ-nsU
@jayak37684 жыл бұрын
@@hnasr So a client can establish 2 tcp connections with the same layer 4 load balancer. Even though for both of the tcp connections, the IP address of the client and the IP address : port of the server(layer 4 load balancer) are the same. How would the layer4 load balancer distinguish between the two tcp connections to always route the first tcp connection request and subsequent communication to host A and the second tcp connection request and subsequent communication to host B respectively. What parameter, tag, or any other information is different between the two tcp connections for the layer 4 load balancer to make this decision.
@manasdalai39344 жыл бұрын
Loved it. Great content.
@hnasr4 жыл бұрын
Glad you enjoyed it!
@parasarora58694 жыл бұрын
yeeahhh...!! This was fun .. :) .. great video sir !
@netman874 жыл бұрын
Is there way to make haproxy keep connection alive? i mean with internal http2 we should be able to have multible streams in single connection and in this example it looks like it gets new connection everytime? atleast from haproxy to nodes
@hnasr4 жыл бұрын
You can set the timeouts as needed check out the video here kzbin.info/www/bejne/p4rRcmV6e6p4gtk
@sanilkhurana39914 жыл бұрын
Maybe a stupid question but talking about NAT and how it changes the IP address, is a normal router that we have in homes similar to a layer 4 load balancer?
@hnasr4 жыл бұрын
Sanil Khurana Correct a gateway act like a layer 4 NAT proxy. I wouldn’t use the word load balancer for a router because it doesn’t perform that task..
@sanilkhurana39914 жыл бұрын
@@hnasr Thanks for the reply! Definitely, an interesting topic and I would look a lot more into it(probably starting with your NAT videos and layer 4, layer 7 load balancing videos) and I love the fact that you take the time to reply to comments.
@hnasr4 жыл бұрын
All of these are interesting questions! Plus it helps other people reading the comments! (Like if you are reading this and getting value)
@martazagrajek60085 жыл бұрын
Great video. Have you already done the one about haproxy?
@hnasr5 жыл бұрын
Marta Zagrajek thanks! Not yet, didnt make a dedicated haproxy video, its on the list of videos to make I made one about nginx though. Next up is websockets 🕸
@martazagrajek60085 жыл бұрын
@@hnasr I will keep waiting ;)
@msk94142 жыл бұрын
Hello Nasser, I have question regarding the function of layer 3 when layer 4 load balancing is used.I know layer 3 is responsible for establishing session when using layer 7 LB , but as per the video If I am using layer 4 LB then layer 4 is establishing the session which takes over layer 3 responsibility.Are layer 7,6,5 skipped when using layer 4 LB ?
@narularitesh3 жыл бұрын
Hi Hussein, your method of explanation is amazing, simple and logical. You are right bang on it. Amazing. I am really impressed, because I have always been confused with LBs. I have a few doubts (and probably some ideas for content enhancement based on my doubts), is there a way I can connect with you. Any support is helpful. Thanks.
@RahulChauhanart3 жыл бұрын
is NGINX layer 7 load balancer?
@hnasr3 жыл бұрын
Both l4 and l7
@Hellmiauz4 жыл бұрын
so in terms of uplink and bandwidth usage. If backend 1 and 2 have a 1Gbps port, Haproxy server needs a 2Gbps port to be able to transfer at full capacity? And bandwidth, if server 1 and 2 consumed say 1TB each in a day, Haproxy will consume 2TB on same period?
@hnasr4 жыл бұрын
A very interesting insights lets unpack it the backend network interface of HAProxy must live in the same network as backend servers. Probably I am imagining a network switch between them. One port going from HAP to the switch, and from the switch to each backend server. So now the numbers. If we assumed defaults 1 Gbps for all ports. Than haproxy can upload and download 1 Gb per second (~128 MB each second). so if two clients concurrently requested to fetch a resource that is 128MB In size, from HAP, the first request goes to backend 1 the second goes to backend 2. But it will take HAProxies two full seconds to download this resource from each server (assuming no caching) So yes! a 2Gbps uplink:dnlink HAProxy will download the two resources concurrently in 1 second (50%) faster. And to answer your final question, yes if server 1 and 2 uploaded 1 TB each, then HAProxy will have “downloaded” 2TB. Thanks! Let me know if I missed something
@Tigerhawk13374 жыл бұрын
I'm a bit confused about the "sticky segment" discussion at kzbin.info/www/bejne/l3ywfZp8i92Nj80. For Layer 4 load balancing, if there's a single tcp connection between the client and the reverse proxied server, like the diagram suggests, wouldn't that mean all segments go to the same reverse-proxied server? In other words, the concern you raised about MTU > 1500 shouldn't be an issue for layer 4 (yet you had it as a "con"). If fragments don't go to the same reverse-proxied server, then the blue line in the diagram that shows a single tcp connection between the client and the reverse-proxied server is a bit confusing.
@hnasr4 жыл бұрын
You are 100% correct. In a Layer 4 proxying once the TCP connection is established, all packets sent to the reverse proxy on that connection are streamed to the same backend causing a “sticky” session. That is a disadvantage that prevents proper distributions of load. Apologies if my rephrasing in the video was confusing. And thanks for clarifying this 🙏
@filippomachi23145 жыл бұрын
Thanks Hussein, I really enjoyed this video and I was able to understand a lot of things. But I have a question, I am exploring the possibility to use Server Sent Events, in this case I can only use layer 7 load balancer, am I wrong? Thanks again!
@hnasr5 жыл бұрын
Filippo Machi Thanks Filippo! Man i just love these questions because they make me think 💭 Ok so short answer is you can use a layer 4 load balancer with SSE and websockets much easier and reliable than a layer 7 load balancer. Not saying you cannot do it with L7LB But you need to find a load balancer that actually supports that. Here is why: layer 4 load balancer will NAT the tcp connection to final destination server and exchange packets in a single connection. So the server can send information to the load balancer and load balancer will simply NAT things to the client. So if i make an HTTP GET request to a L4 LB, first i try to establish a tcp connection with LB, LB will actually build a table and change the packet ip address destination to one of the backend servers, and forward the packet, and then simply acts like a gateway(kinda like how your router works) and now one your tcp connection is established you are tethered to one server .. so any http request on the same tcp will ALWAYS go to the same backend server.. unless you establish a new session. That is why SSE and websockets work normally since they are stateful like that.. However with layer 7 LB as we explained in the video, the client connects to the load balancer first so thats one tcp connection and the load balancer will establish another tcp connection to the backend server. So if I make a simple HTTP request to the layer 7 load balancer, my final destination as a client is the load balancer, The load balancer will then block my request (synchronously) and make the request to one of the backend servers, get the result, unblock me and return the result. So in this case most load balancers are really waiting for a request from clients ... but what happen if all of a sudden the server started to send something to the load balancer? (Server side events) what does that mean? How does the layer 7 load balancer know what client to forward the request to ? Smart load balancers might actually build a table and start mapping ip addresses to client ports. Other load balancers might make the backend server respond to the client directly So you see how complex it is to do layer 7, you can use layer 4 LB, The only thing is you will get a sticky load balancer to a single server per client session. i need to do more research and videos on this topic very interesting.. Hope that helps!
@filippomachi23145 жыл бұрын
@@hnasr thanks a lot for answering my question, let me know if you perform further research or video regarding this topic :)
@jexxiewoo83905 жыл бұрын
Thanks for the content! Just sometimes the screen got chopped off 35:58
@hnasr5 жыл бұрын
Jexxie Woo thanks 🙏 I did notice that after i posted the video. Thankfully nothing in the chopped screen is important. Appreciate your comment ! And ill make sure to avoid that in the future.
@krozaine4 жыл бұрын
Layer 4 Load Balancer Demo : How did HAProxy know 4444 is down? Was it the first failed request that told it or was it some heartbeat type of mechanism between HAProxy and the backend services? Also, I am curious about the "check" keyword mentioned in the cfg file.
@hnasr4 жыл бұрын
Haproxy periodically does a health check against the backends and see if they are alive. And if they are not they remove it from the backend pool
@douglasmakey4 жыл бұрын
Hi Husein thanks so much for your videos, I am not sure If I understand completely why LBL4 has just one tcp connection. In LBL4 there is just one connection between client-lb, because the LB takes the packages and uses NAT to change the destination of that packages and it returns them to the network to be route to the right server? is that true?
@hnasr4 жыл бұрын
Douglas Mendez Correct, think about your WIFI router , if you connect to google from your mobile phone (on wifi) it is a single TCP connection between you and Google .( not a tcp connection between you and router and between the router and google) despite the router actually making the connection on your behalf because it has the public ip address. Your router uses NAT. A layer 4 load balancer that uses NAT function the same way.
@krishnakrmahto973 жыл бұрын
@@hnasr Just curious, i might not be making any sense also. So, Routers do not work at layer 4 so they actually don't concern with TCP. But does a client communicate with Layer 4 LB (HAProxy) without a layer 4 protocol? If it uses TCP, then there should be a TCP connection between the client and the LB? Apologies if i am completely going off.
@mohamedjasim39163 жыл бұрын
Just amazing ....
@fujinclado49185 жыл бұрын
Good explanation, one question not regarding video how you making these wonderful thumbnails? What the tool?
@hnasr5 жыл бұрын
Thanks Fujin for your message! I use canva because I suck at photoshop haha hope that helps
@fujinclado49185 жыл бұрын
Thanks man.
@shazadrojan23874 жыл бұрын
quick question about Layer 4 using https - port 443 and SSL termination. If I am only using https-port 443 it is necessary to terminate SSL on the LB or can i just do this in IIS bindings?
@hnasr4 жыл бұрын
It depends on your backend if the backend supports TLS then IIS should really do a TLS Passthrough not termination (since you said its layer 4 LB) the certificate being served will be the backend not the LB If the backend doesn’t support TLS then it the LB will do a TLS termination and serves its certificate instead. The traffic on the backend will be unencrypted might not be desirable
@goatslayer59579 ай бұрын
The man the legend!
@twitchizle3 жыл бұрын
Im here cuz of ur poll
@drew49805 жыл бұрын
Looks like your first video on the playlist "Software engineering by example" is private. Just thought you'd want to know :)
@hnasr5 жыл бұрын
Andrew Pelletier thanks for noticing! Thats my bad thats next week’s video and since its scheduled its set as private for some reason. Weird that youtube actually show it on the list. Let me remove it.