We're sunsetting PodQuest on 2025-07-28. Thank you for your support!
Export Podcast Subscriptions
cover of episode  Ep 47. 和 Yuchen 聊聊 Cloudflare 的新框架 Pingora

Ep 47. 和 Yuchen 聊聊 Cloudflare 的新框架 Pingora

2024/6/30
logo of podcast  捕蛇者说

捕蛇者说

AI Deep Dive Transcript
People
Y
Yuchen
Topics
Yuchen: 我主导开发了 Cloudflare 的 Pingora 项目。我们选择用 Rust 重写是因为 Nginx 的 Lua 扩展难以维护,性能和扩展性都有问题,而且 Nginx 的 worker 模型也存在一些缺陷,例如负载不均衡和连接复用问题。Pingora 框架的目标是提供一个灵活、中立的平台,让开发者可以自定义服务器逻辑,并解决 Nginx 的诸多问题。我们使用了 Rust 的异步特性和内存安全特性,并参考 OpenResty 的 API 设计,使得开发效率更高,也避免了 Nginx 中常见的内存泄漏和崩溃问题。在迁移过程中,我们通过逐步替换的方式,将 Cloudflare 的流量逐渐迁移到 Pingora 上,并通过监控指标评估迁移效果。Pingora 的开源是预先计划好的,我们希望能够促进社区发展,并更好地支持企业客户。 laixintao: 作为主持人,我对 Pingora 项目的技术细节和开发过程非常感兴趣。Pingora 的设计理念和技术选型,以及在 Cloudflare 内部推广和最终开源的过程,都值得深入探讨。 NadeshikoManju: 我关注 Pingora 项目的性能和稳定性。在迁移过程中,如何保证服务的稳定性和性能,以及如何评估迁移效果,都是非常重要的方面。 laike9m: 我对 Pingora 的开源和社区发展很感兴趣。Pingora 的 API 设计和可扩展性,以及如何吸引开发者参与社区贡献,都是值得关注的问题。

Deep Dive

Shownotes Transcript

本期节目我们请到了继续和 Yuchen 聊聊 Cloudflare,以及他主导并开源网络框架 Pingora)

Pingora 是一个使用 Rust 开发的框架,可以让开发人员在上面实现自定义服务器。Pingora 的开发是基于 Cloudflare 多年的经验和需求,他们发现在代理中需要大量的业务逻辑代码而不是配置,并且用 Lua 或编写配置也不理想。此外,我们讨论了 Pingora 的开发过程中涉及的技术决策和挑战,以及 Cloudflare 的文化和招聘情况。

嘉宾

Yuchen)

主播

时间点

00:03) Cloudflare Pingora 项目开发背后的故事与原因

04:53) 以 Lua 嵌入 Nginx 的 openresty 为基础的强大编程工具

08:47) Lua 的特点和局限性分析

13:03) Nginx 的 C 开发和 Lua 维护的困难性及 ARM 上的问题

16:10) Indrax 架构的问题和需要解决的挑战

22:25) 大家决定用 Rust 语言重新开发的决策过程

24:47) 对于使用 Rust 语言开发的经验和公司中的实践

27:07) Rust 语言的开发和 API 设计

30:32) 流量迁移和切换效果评估

32:53) 开发速度改进和问题处理的讨论

37:15) Pingora 框架的开源故事及其 API 设计和扩展性

40:36) 关于开源的讨论和决策过程,Rust 语言的优势以及担忧的原因

44:22) Nginx 的发展历程以及与 F5 的关系变动

46:06) Pingora 开源项目及其童话般的发展故事

50:18) Cloudflare 文化和招聘情况讨论

53:40) Cloudflare:科技领域无可匹敌的压倒性存在

链接

爱发电上赞助)