Live data from Hacker News

Pingora, the proxy that connects Cloudflare to the Internet

blog.cloudflare.com

41–50 of 127 posts

Re: Pingora, the proxy that connects Cloudflare to the Internet

#42

> When crashes do occur an engineer needs to spend time to diagnose how it happened and what caused it. Since Pingora's inception we’ve served a few hundred trillion requests and have yet to crash due to our service code. > In fact, Pingora crashes are so rare we usually find unrelated issues when we do encounter one. Recently we discovered a kernel bug soon after our service started crashing. We've also discovered h…

Which aspect(s) of Rust do you think are most responsible for this? (e.g. borrow checker, memory safety, culture that attracts devs who care about reliability, etc)

Re: Pingora, the proxy that connects Cloudflare to the Internet

#43

Does anyone know why nginx used separate processes for workers, instead of threads? This post makes it sound like threads are the way to go, but presumably nginx had a reason for using processes back in the day.

Share-nothing architecture were deemed more scalable as you don't need synchronization. But then, you can't share stuff, like a connection pool. Also, the architecture was simpler this way. Nginx is also an application server and it was "easy" to develop applications on top of it because of this architecture.

Re: Pingora, the proxy that connects Cloudflare to the Internet

#44
I'm mildly blown away to read, 'And the NGINX community is not very active, and development tends to be “behind closed doors”.' Is this a reflection of the company, nginx (now owned by F5) going the way of an Oracle-style takeover of WebLogic from another era?

Re: Pingora, the proxy that connects Cloudflare to the Internet

#45
post #44

I'm mildly blown away to read, 'And the NGINX community is not very active, and development tends to be “behind closed doors”.' Is this a reflection of the company, nginx (now owned by F5) going the way of an Oracle-style takeover of WebLogic from another era?

Dropbox wrote about their migration from NGINX to Envoy in July 2020 and highlighted a lot of the same concerns [0]. As per this thread [1], NGINX have posted very similar blog posts for the last two years saying they are 'returning to our open source roots', but without much tangible change. And the Cloudflare CEO forecasted this move away from NGINX back in 2018 [2]

0. https://dropbox.tech/infrastructure/how-we-migrated-dropbox-...

1. https://news.ycombinator.com/item?id=32572153

2. https://twitter.com/eastdakota/status/1024515150546493440

Re: Pingora, the proxy that connects Cloudflare to the Internet

#46
post #41

Was Go considered as the language to write Pingora in? If so, why was Rust chosen?

Not from Cloudflare, but at a guess:

* They already have some pretty deep Rust experience on staff

* They were already dissatisfied with the performance penalty from Lua's GC, so Go's GC was presumably unattractive as well

* Rust is worth more internet points than Go (just kidding, mostly)

Re: Pingora, the proxy that connects Cloudflare to the Internet

#47
post #38

> When crashes do occur an engineer needs to spend time to diagnose how it happened and what caused it. Since Pingora's inception we’ve served a few hundred trillion requests and have yet to crash due to our service code. > In fact, Pingora crashes are so rare we usually find unrelated issues when we do encounter one. Recently we discovered a kernel bug soon after our service started crashing. We've also discovered h…

I had a very similar experience. Much smaller scale, but the service was keeping internal state and clients were connecting with a WebSocket. It could handle up to a million clients on one server and it practically never crashed. While I was writing it I had only hobby-level experience with Rust and I was also mentoring a colleague, so he wrote a big chunk of code as a total Rust noob.

Curses! now I need to learn yet another language!

Re: Pingora, the proxy that connects Cloudflare to the Internet

#48

Any one else immediately do "open source" ctrl-f? That's all I wanted to read but I bookmarked the article and put it on my list of things to peruse later

> That's all I wanted to read

While I agree that in selecting a proxy to use whether it is open source is one of the most important considerations, if that's all you look for in this article, you may be missing something.

I thought the article did a good job of describing how they went about making the choice of whether to continue contributing to an existing (nominally open source) system or to build a new one. And of course, it did a good job of showcasing the strengths of Rust (reliability guarantees strong enough that they could identify when problems were due to hardware.)

Re: Pingora, the proxy that connects Cloudflare to the Internet

#49
post #23

Earlier quoted context omitted.

We had the same experience at work deploying rust services that serve many billions of requests a day as well.

does your company have any public information about this? Blogs, job descriptions with numbers, twitter threads?

Not GP but I believe this is it: https://discord.com/category/engineering

Re: Pingora, the proxy that connects Cloudflare to the Internet

#50
post #14

Is it open source?

It will be. There will be a follow up blog post about the open sourcing with all the gory details of how it was built and how it works.

It might be a couple of months. The open sourcing of Cloudflare workers was announced in May and still has not been released. [1]

[1] https://blog.cloudflare.com/workers-open-source-announcement...

Post reply on HN