Cloudflare chanje soti nan NGINX nan pwòp proxy Pingora li yo, ki ekri nan Rust

Cloudflare te anonse tranzisyon rezo livrezon kontni li yo pou itilize proxy Pingora, ekri nan lang Rust. Nouvo proxy a ranplase konfigirasyon ki baze sou sèvè NGINX ak scripts Lua, epi li trete plis pase yon billions demann pa jou. Li te note ke tranzisyon an nan yon prokurasyon espesyalize pèmèt pa sèlman aplike nouvo karakteristik ak ogmante sekirite akòz operasyon an sekirite nan memwa, men tou, te mennen nan yon ogmantasyon siyifikatif nan pèfòmans ak ekonomi resous - solisyon an ki baze sou Pingora pa mande pou itilizasyon an. nan Lua, ak Se poutèt sa konsome 70% mwens resous CPU ak 67% mwens memwa pandan y ap trete menm kantite lajan an nan trafik.

Pou yon tan long, yon sistèm pou trafik proxy ant itilizatè yo ak fen sèvè ki baze sou NGINX ak script Lua satisfè bezwen Cloudflare, men kòm rezo a te grandi ak konpleksite li yo te ogmante, yon solisyon inivèsèl te tounen ensifizan, tou de an tèm de pèfòmans ak akòz limit nan ekstansibilite ak aplikasyon nan nouvo opòtinite pou kliyan yo. An patikilye, te gen defi nan ajoute fonksyonalite pi lwen pase yon pòtay senp ak balanse chaj. Pou egzanp, li te vin nesesè, si sèvè a echwe nan trete yon demann, re-voye demann lan nan yon lòt sèvè, bay li ak yon seri diferan nan tèt HTTP.

Olye de yon achitekti ki separe demann nan pwosesis travayè separe, Pingora sèvi ak yon modèl milti-threaded, ki nan ka itilize Cloudflare (gwo konsantrasyon nan trafik ki soti nan diferan sit ak yon gwo chanjman estatistik) te montre yon distribisyon pi efikas nan resous ant nwayo CPU. An patikilye, obligatwa nginx nan demann dezekilib nan pwosesis yo te lakòz chaj dezekilib sou nwayo CPU yo, sa ki lakòz demann resous entansif ak bloke I/O ralanti pwosesis la nan lòt demann. Anplis de sa, mare koneksyon pisin lan ak pwosesis moun k ap okipe yo pa t pèmèt reitilizasyon koneksyon ki deja etabli soti nan lòt pwosesis moun k ap okipe yo, sa ki diminye efikasite lè gen yon gwo kantite pwosesis moun k ap okipe yo.

NGINX:

Cloudflare chanje soti nan NGINX nan pwòp proxy Pingora li yo, ki ekri nan Rust

Pingora:

Cloudflare chanje soti nan NGINX nan pwòp proxy Pingora li yo, ki ekri nan Rust

Aplikasyon an nan Pingora te fè li posib pou redwi kantite enstalasyon nouvo koneksyon pa 160 fwa epi ogmante pati nan demann reitilize soti nan 87.1% a 99.92%. Anplis de sa nan diminye rekoneksyon ak itilizasyon pi efikas nan nwayo CPU, amelyorasyon pèfòmans nouvo proxy a te sitou akòz retire moun kap okipe Lua ralanti yo itilize ak nginx.

Yo te chwazi lang Rust pou reyalize pèfòmans segondè ansanm ak disponiblite zouti pou asire operasyon an sekirite ak memwa. Li mansyone ke malgre enjenyè yo ki trè kalifye nan Cloudflare ak revize kòd la ekri nan lang C a, li pa t 'posib pou evite erè ki mennen nan pwoblèm memwa (pa egzanp, yon vilnerabilite nan analizeur HTML). Kòm pou nouvo kòd la, li pale sou ka analize echèk nan Pingora, ki te tounen soti yo dwe ki te koze pa pwoblèm nan aplikasyon an, men pa yon erè nan nwayo a Linux ak echèk pyès ki nan konpitè.

Anplis de sa, nou ka sonje kòmantè Linus Torvalds, vwa nan konferans Open-Source Europe ki ap fèt jou sa yo, konsènan enklizyon sipò pou lang Rust nan nwayo Linux la. Patch pou devlope chofè aparèy nan lang Rust pa te enkli nan nwayo a 6.0, men dapre Linus, yo pral gen plis chans aksepte nan nwayo a 6.1; li pa pral retade entegrasyon an. Kòm yon motivasyon pou ajoute sipò pou Rust, anplis enpak pozitif sou sekirite, Linus site tou opòtinite pou ogmante enterè nan travay sou nwayo a nan nouvo patisipan yo, ki enpòtan nan yon kontèks aje fin vye granmoun-timers.

Sous: opennet.ru

Add nouvo kòmantè