A CloudFlare elhagyja az Nginx-et a saját fejlesztésű, Rust nyelven írt Pingora-ért

kami911 képe

A CloudFlare sokáig az Nginx-re támaszkodott HTTP proxy stackjének részeként, de most lecserélte azt a saját fejlesztésű, Rust nyelven írt Pingora szoftverre, amely állítólag naponta több mint egy billió kérést szolgál ki, és jobb teljesítményt nyújt, miközben a CPU és a memória erőforrásainak csak egyharmadát használja.

A CloudFlare „kinőtte” az Nginx-et, és végül saját HTTP-proxy stacket hozott létre. A CloudFlare úgy találta, hogy az Nginx worker process architektúrája hátrányos kialakítású, különösen a CPU-erőforrások terén. Az Nginx emellett az új igényeiknek kielégítéséhez nehezen bővíthetőnek bizonyult.

A CloudFlare mérnökei a Pingora-t a nulláról kezdték megírni házon belül fejlesztett megoldásként. A Rust programozási nyelvet a memóriabiztonsága miatt választották, miközben a C-hez hasonló teljesítményt nyújt. A CloudFlare saját HTTP-könyvtárat is implementált a Rust-hoz, hogy megfeleljen a különböző igényeiknek. A Pingora többszálú architektúrát alkalmaz, nem pedig többfolyamatos architektúrát.

Ami a Pingora teljesítményelőnyeit illeti:

Tapasztalatuk szerint a Pingora körülbelül 70%-kal kevesebb CPU-t és 67%-kal kevesebb memóriát fogyaszt, mint a régi szolgáltatásunk azonos forgalmi terhelés mellett.

Az elképesztő teljesítménynyereségen túl a Pingora biztonságosabbnak is tekinthető, ami nagyrészt a Rust használatának köszönhető.

Aki többet szeretne megtudni a CloudFlare Pingora projektjéről, a CloudFlare blogját meglátogatva további részleteket tudhat meg. Az egyetlen hátránya a szoftvernek, hogy a Pingora még nem nyílt forráskódú - a CloudFlare szerint dolgoznak rajta, hogy ez változzon, de jelenleg ez a HTTP-proxy még nem nyilvánosan elérhető.

(forrás)