幾天前 Cloudflare 亮相,透過部落格文章, 決定發布“Pingora”框架的源代碼, 專為 開發安全、高效能的網路服務, 以及 Rust 語言的可程式網路系統。
這個框架 提供開箱即用的 Rust 套件,可以輕鬆建立 HTTP 代理, 使用網路協定、解析 HTTP 標頭、流量統計和限制、負載平衡、管理 Ketama 分散式雜湊表、維護 RAM 中的快取以及非同步處理逾時。除了支援 HTTP 之外,Pingora 還允許使用自己的協定或 UDP/TCP 建立服務。
什麼是平戈拉?
Pingora 是異步多執行緒 Rust 框架,旨在安全且有效率地建構 HTTP 代理服務。。自發布以來,Pingora 已在高負載系統上進行了廣泛的測試和使用,作為 Cloudflare 內容交付網路上使用的代理,在一年多的時間裡每秒處理超過 40 萬個請求。
Cloudflare 提到,安全性是該專案的首要任務,這就是選擇 Rust 語言來減少記憶體相關錯誤可能性的原因。此外,還關注效率、效能和可擴展性,允許整合過濾器和回調處理程序來控制請求處理的各個階段,以及修改、重定向、阻止和記錄請求和回應。
Pingora 是一個函式庫和工具集,而不是可執行的二進位。換句話說,Pingora 是為汽車提供動力的發動機,而不是汽車本身。儘管 Pingora 已準備好用於工業用途,但我們了解許多人想要一種交鑰匙網路服務,包括電池以及無代碼或低代碼配置選項。在 Pingora 之上建立該應用程式將是我們與 ISRG 合作的重點,以擴大 Pingora 的影響力。請繼續關注該項目的未來公告。
之間 Pinora 的主要優勢,以下幾點引人注目:
- 記憶體安全:與用 C/C++ 編寫的服務相比,Pingora 提供了更記憶體安全的替代方案。這會降低可能危及系統安全的編碼錯誤的可能性。
- 優化性能:由於其多執行緒架構,Pingora 快速且高效,節省 CPU 和記憶體資源。這對於效能和成本敏感的工作負載尤其有利。
- 高級定制:Pingora 提供的 API 具有高度可編程性,允許進行廣泛的自訂以建立自訂和進階網關或負載平衡器。
平戈拉 提供了幾個關鍵功能,例如非同步模式下的多執行緒請求處理、支援HTTP/1 和HTTP/2(計畫支援HTTP/3)、gRPC 和WebSocket 代理、可插拔負載平衡器、無需重新啟動即可更改配置、無需中斷連線即可更新程式碼、發生故障時的負載切換策略(故障轉移)、與監控和日誌記錄系統(例如 Syslog、Prometheus、Sentry、OpenTelemetry)集成,並透過 OpenSSL 和 BoringSSL C 庫支援 TLS 加密。
Pingora 突出特點
- 支援 HTTP/1 和 HTTP/2 代理、gRPC 和 websocket。
- 可自訂的負載平衡和故障轉移策略。
- 與 OpenSSL 和 BoringSSL 庫整合以實現合規性和安全性。
- 用於自訂和請求處理的過濾器和回調。
- 優雅地重新啟動,無需停機即可實現無縫更新。
- 與 Syslog、Prometheus、Sentry、OpenTelemetry 等可觀測工具整合。
最後,Cloudflare 提到,它正在與網路安全研究小組 (ISRG) Prossimo 計畫合作,推動 Pingora 在關鍵網路基礎設施中的採用,從而為每個人提供更安全、更可靠的網路。
如果你是 有興趣了解更多,你應該知道程式碼是用 Rust 寫的並且 發表 在 Apache 2.0 許可下,您也可以查閱 Cloudflare 出版物 在下面的鏈接中。