One suggestion Hussein, Start a dev podcast series now. It would have been great if cloudflare senior dev talked about this in great details like what problem did they face etc etc. Would really love that series.
Cloudflare is writing a custom reverse proxy, Nginx is more than that. I use Nginx to serve static web pages and files, web application firewall and dos protection besides caching and reverse proxy. So I will keep on using it.
For now, pingora is going to be specifically for their internal use, They will release a community version in future, but at present, it is specifically designed for their specific work requirment. Nginx will always remain something worth learning.
I wonder how Cloudflare is not losing its engineers to FAANG and the likes. If their engineers can build stuff like that, why wouldn't they go to FAAANG and the likes and get the best pay?
You think Cloudflare doesn't have competitive salary, especially for their top talent? I'm quite sure they are paid very well. Cloudflare isn't really a small company.
@@rand0mtv660 it’s a newer company that grew FAST, size != money on hand for hiring at that scale and speed. I suspect from their blogs that their engineering quality is very high so it makes more sense to scale infra and retain engineers. You’re right though they probably can (and will) start offering really competitive salaries.
Hello! Good video! Igor Sisoyev is the author of NGINX. He had gone from the G5 before a war in Ukraine. After this, he founded his own firm in Russia. Igor wrote antivirus software in the past, so he is a specialist in network protocols and system programming. I have a question - is NGINX safe for a user? Is there any hole for russian FSB?
I totally agree that the language doesn't matter too much, everyone is so onboard on the rust hype train people forget it's just another language and not always the best choice. I love rust but I don't see it fit for every use case.
Well explained, thanks. We still use Ngnix, but have constantly problems with upstreams re-connections and as soon as we have time, we gonna move to another reverse proxy.
I've heard "connection pooling" terminology many times but I don't really get it to be honest. Not sure if I already use it without noticing. Could you make a video about connection pooling in general and demo how project like PgBouncer can help when it comes to database scaling problem? Thank you.
19:32 I dont understand how multithreading eases sharing over multiprocessing ? Both cases be need some sort of shared memory. Both cases require sychronisation primitves for preventing data races. However Multiprocessing provides them better security and memory isolation over multithreading, so in that sense multiprocessing is 100% an advantage over multithreading. So why still are they choosing multithreading over multiprocessing ?
@@pierce8308 Imo I think it's because you have better performance multi-threading in a single core and sharing resources between cores as opposed to managing individual processes in a single core or more, creating Shared memory pools, serialize data between processes and a lot whole more of chances of memory leaks, they rather implement a full process as a thread.
My dear, love your content, but your white screen is like radioactive lava or something. Care to use some dark-mode on your browser ? xD Otherwise, good as always!
All of this is just a fancy way of beating the kernel to death, I wonder if this actually fixes the IRQ Storm problem? Think it’s time for a new architecture in silicon and in writing OS’s, micro kernels are the future.
work stealing basically allows a worker to actually look into the other workers input queues when their own queue is empty, and pop a task from that queue
I’m a kernel engineer btw, threads and processes are unique in Linux. They aren’t a silver bullet, but threads are easier than processes. Less swapping in the page table, and faster
One of my funnest work projects was implementing work stealing to speed up a long running process. That alone took it from 3 days to 3 hours or so. We had to double check it actually did all of the work 😂.
Nginx has been "implementing" HTTP3 for like 2 years, slow as hell. We've started and finished the implementation in Go months ago lmao. C is just too slow of dev time and takes too much work. A.I. maybe one day will fix that and write it all for us but until then, dev hours matter too much.
Yes, one and the same… Nginx despite being pretty notoriously tightarsed and slow have a good track record for well crafted solutions. I highly doubt your Go solution would measure up in any benchmark but time to market maybe that’s just the cynic in me!
@@liamkearn nginx isn't slow, wtf lol.. The Go solution it's what traefik, docker, caddy, etc all use. The http stack is less than 5% of the performance gains when dealing with traffic so it's pretty irrelevant. Cloudflare literally left nginx behind because of what I said which is the only thing that matters.
It's funny that people who never used Rust, don't consider language choice that important. But once you've used it you will become convinced that they would have never risked developing something like this in any other language
I want to become like you Hussein, would you like to be my guide pleeeease ? I am a DevOps Engineer and I deal with everything, including reverse proxies, deploying applications in aws lambda with api gate way, S3 and in kubernetes.
Learn more about the fundamentals of network engineering, grab my udemy course $9.99 discount coupon until oct 9th network.husseinnasser.com
One suggestion Hussein, Start a dev podcast series now. It would have been great if cloudflare senior dev talked about this in great details like what problem did they face etc etc. Would really love that series.
Absolutely down for podcasts with Hussein
Please, it’s so hard to find good podcasts for software engineering.
Maybe you're being sarcastic, but he already have one
@@yehudamakarov Are you from Cloudflare?
I’m from the cloud
Cloudflare is writing a custom reverse proxy, Nginx is more than that. I use Nginx to serve static web pages and files, web application firewall and dos protection besides caching and reverse proxy. So I will keep on using it.
yup but you're not serving trillion request a day, you get the point now ???
I feel we will begin to see more powerful stuff being written in Rust. Time to learn the language.
I was just learning nginx lol
For now, pingora is going to be specifically for their internal use, They will release a community version in future, but at present, it is specifically designed for their specific work requirment. Nginx will always remain something worth learning.
@@AbhinavKulshreshtha thanks for the advice
man you will not regret from learning nginx
There will be a lot of systems using nginx. Like I'm learning Java now lol
Somebody's still using Apache Server.
ملك.
Work stealing is seen a lot in recent systems research. Especially when you have a network bypass (DPDK for instance)
Keep up the good work man
Eversince I read the blogpost, I was waiting for a video from you. Amazing content as always.
I wonder how Cloudflare is not losing its engineers to FAANG and the likes. If their engineers can build stuff like that, why wouldn't they go to FAAANG and the likes and get the best pay?
because not everyone is after money, and FAANG are not the only companies in the world solving interesting problems
you're missing microsoft.
The correct acronym is FAGMAN.
Cloudflare can afford to offer FAANG salary. It’s only going to grow bigger.
You think Cloudflare doesn't have competitive salary, especially for their top talent? I'm quite sure they are paid very well. Cloudflare isn't really a small company.
@@rand0mtv660 it’s a newer company that grew FAST, size != money on hand for hiring at that scale and speed. I suspect from their blogs that their engineering quality is very high so it makes more sense to scale infra and retain engineers. You’re right though they probably can (and will) start offering really competitive salaries.
Golang's runtime scheduler also uses work stealing to maintain goroutines. So, if you want to know more about have look into golang runtime
Hello! Good video! Igor Sisoyev is the author of NGINX. He had gone from the G5 before a war in Ukraine. After this, he founded his own firm in Russia. Igor wrote antivirus software in the past, so he is a specialist in network protocols and system programming. I have a question - is NGINX safe for a user? Is there any hole for russian FSB?
what'a wrong with your brain😅
It's open source. Go ahead and research.
But I doubt you even care.
I totally agree that the language doesn't matter too much, everyone is so onboard on the rust hype train people forget it's just another language and not always the best choice. I love rust but I don't see it fit for every use case.
Just found your channel. Great info and entertaining. Great job
Well explained, thanks.
We still use Ngnix, but have constantly problems with upstreams re-connections and as soon as we have time, we gonna move to another reverse proxy.
Try Caddy2, I hear good things about it. I wanted to try it on some personal project but never got time to move it to production.
@@AbhinavKulshreshtha thanks for the suggestion
what ''we'' in this context ?
Nginx is a web server first and a proxy second.
Take aways: write real code for performance gains, don't write glue code, stick with C and forget about yet another Rusty language!
After F5 acquired NGINX, it has started to suck
You sir, have a voice like Morgan Freeman meets Hussein. 🥳.
Thanks for the video.
Work stealing is a fucking amazing concept. Just read about it. I'll try and implement it to see how it works in action, for sure.
I've heard "connection pooling" terminology many times but I don't really get it to be honest. Not sure if I already use it without noticing. Could you make a video about connection pooling in general and demo how project like PgBouncer can help when it comes to database scaling problem? Thank you.
Damn, I just bought your Nginx course in Udemy. Should I ask for a refund? :)
Haha enjoy the course! NGINX is still awesome.
it's a crashing drive, that we known it!
8:35 it's because of their security firewall system/rules which needs to check lots of stuff, including the body of the HTML, etc.
I'm certain the service workers are handled by separate servers, not their proxy servers.
11:11 maybe, some what, but more importantly: for HTTP/2 and HTTP/3 you want to reuse as best as possible
Nice timing! I was just looking into reverse proxies and was curious if there was something written in Rust
Hopefully the don't touch Rust.
Yeah, didn't show the video when I replied. FML...
first video, subscribed cuz im a tech nerd (cybersec)
Glad I started learning Rust about a year ago. I saw the potential back then, now I see the confidence.
Very cool video as always. Perfect length as well.
Hi. Can we have this as audiobook on spotify or something?
19:32 I dont understand how multithreading eases sharing over multiprocessing ? Both cases be need some sort of shared memory. Both cases require sychronisation primitves for preventing data races.
However Multiprocessing provides them better security and memory isolation over multithreading, so in that sense multiprocessing is 100% an advantage over multithreading. So why still are they choosing multithreading over multiprocessing ?
Unless ofcourse they intend to have several threads/green-threads multiplexed over a smaller number cores. But the article doesnt seem to mention that
@@pierce8308 Imo I think it's because you have better performance multi-threading in a single core and sharing resources between cores as opposed to managing individual processes in a single core or more, creating Shared memory pools, serialize data between processes and a lot whole more of chances of memory leaks, they rather implement a full process as a thread.
@@valikmora fair enough.
1. Are they replacing NGINX web server?
This was so helpful!! Thank you
I wonder if Pingora can handle MSRPC
2. Is Pingora also a web server?
or can it be used as a web server?
Surprised haproxy wasn’t mentioned as a consideration. It is indeed very efficient.
yeah was surprised too, I really like HAProxy specially its simplicity.
How have you never heard of work stealing? It's such an incredibly basic and fundamental concept.
7:10 even if a worker gets burned without jumping to next worker , that's still a win win scenario
Get to the point!
Good, I was never a fan of NGINS.
Was a fresh information.Will be nice , if you can improve your presentation skills , the way you talk . Please stick to the content
would love to watch you talking about kubernetes in-depth like you talk about proxies and stuff coz k8s is so popular now and it is really exciting
HOLYY SHIITTT I LOVE YOU ❤❤❤ I'VE BEEN SEARCHING AROUND THE INTERNET FOR 5 HOURS AND THEN NOW IT'S OVER FINALLY I LOVE YOU MAAN
man having to implement all of the status codes would be a project on itself!!!
Thank you for explaining this thoroughly!
My dear, love your content, but your white screen is like radioactive lava or something. Care to use some dark-mode on your browser ? xD
Otherwise, good as always!
How to make own cloudflare like system?
All of this is just a fancy way of beating the kernel to death, I wonder if this actually fixes the IRQ Storm problem? Think it’s time for a new architecture in silicon and in writing OS’s, micro kernels are the future.
thats crazy my dudes
work stealing basically allows a worker to actually look into the other workers input queues when their own queue is empty, and pop a task from that queue
Love the details as always
Thank you Hussein, for always providing great content.
YO THANK YOU SO MUCH
I heard that CF will make Pingora opensource - so waiting for a docker xd
took me a while due to mistake, but it works thanks
Golang scheduler does do work stealing.
In short, they simply need and want tokio. Zero-cost async runtime is the perfect fit for performance-critical network jobs.
i first thought he is CarryMinati!😄
8:18 sneaky guy
I’m a kernel engineer btw, threads and processes are unique in Linux. They aren’t a silver bullet, but threads are easier than processes. Less swapping in the page table, and faster
Awesome program
its works, thank you
Nah not open source.
thanks so much man
Nice topic 👍
didn't understand shit, but enjoyed the video nonetheless!
I like your style, keep it up!
One of my funnest work projects was implementing work stealing to speed up a long running process. That alone took it from 3 days to 3 hours or so. We had to double check it actually did all of the work 😂.
Very interesting!
I'm shocked!
I can understand why. Cloudflare is a proxy-behemoth
They talk about my one tapz
Nginx has been "implementing" HTTP3 for like 2 years, slow as hell. We've started and finished the implementation in Go months ago lmao. C is just too slow of dev time and takes too much work. A.I. maybe one day will fix that and write it all for us but until then, dev hours matter too much.
Yes, one and the same… Nginx despite being pretty notoriously tightarsed and slow have a good track record for well crafted solutions. I highly doubt your Go solution would measure up in any benchmark but time to market maybe that’s just the cynic in me!
@@liamkearn nginx isn't slow, wtf lol.. The Go solution it's what traefik, docker, caddy, etc all use. The http stack is less than 5% of the performance gains when dealing with traffic so it's pretty irrelevant. Cloudflare literally left nginx behind because of what I said which is the only thing that matters.
@@gg-gn3re sorry didn’t clarify I didn’t mean slow in terms of speed. I meant in terms of development
@@liamkearn oh well, looking at performance nginx is only ~10% better so it's worse than I thought.
@@gg-gn3re yes 10% better with no citations, specifics or baselines, sounds conclusive I’ll trust you analysed every stack frame.
🇧🇭==♥️😍
It worked perfectly!!! Thank you so much
Thank you for explaining this thoroughly!
It's funny that people who never used Rust, don't consider language choice that important. But once you've used it you will become convinced that they would have never risked developing something like this in any other language
I would love to see backend engineering session on Spring Framework
I want to become like you Hussein, would you like to be my guide pleeeease ?
I am a DevOps Engineer and I deal with everything, including reverse proxies, deploying applications in aws lambda with api gate way, S3 and in kubernetes.
E
You need some guests to come on here and discuss these topics..... Invite cloudflare on, I bet they would send someone....
dirka dirka dirka dirka