Cloudflare yipada lati NGINX si Pingora aṣoju tirẹ, ti a kọ sinu Rust

Cloudflare kede iyipada ti nẹtiwọọki ifijiṣẹ akoonu rẹ lati lo aṣoju Pingora, ti a kọ ni ede Rust. Aṣoju tuntun rọpo iṣeto orisun olupin NGINX pẹlu awọn iwe afọwọkọ Lua, ati awọn ilana diẹ sii ju awọn ibeere miliọnu kan lọ fun ọjọ kan. O ṣe akiyesi pe iyipada si aṣoju pataki ti a gba laaye kii ṣe lati ṣe awọn ẹya tuntun nikan ati mu aabo pọ si nitori iṣẹ ailewu ti iranti, ṣugbọn tun yori si ilosoke pataki ninu iṣẹ ati awọn ifowopamọ awọn orisun - ojutu orisun Pingora ko nilo lilo. ti Lua, ati nitorina nlo 70% kere awọn orisun Sipiyu ati 67% kere si iranti lakoko ṣiṣe iye kanna ti ijabọ.

Fun igba pipẹ, eto kan fun ijabọ aṣoju laarin awọn olumulo ati awọn olupin ipari ti o da lori awọn iwe afọwọkọ NGINX ati Lua ni itẹlọrun awọn iwulo ti Cloudflare, ṣugbọn bi nẹtiwọọki naa ti dagba ati pe o pọ si i, ojutu gbogbo agbaye ti jade lati ko to, mejeeji ni awọn ofin ti išẹ ati nitori awọn idiwọn ni extensibility ati imuse ti awọn anfani titun fun awọn onibara. Ni pataki, awọn italaya wa ni fifi iṣẹ ṣiṣe kun kọja ẹnu-ọna ti o rọrun ati iwọntunwọnsi fifuye. Fun apẹẹrẹ, o di dandan, ti olupin ba kuna lati ṣe ilana ibeere kan, lati tun fi ibeere ranṣẹ si olupin miiran, pese pẹlu eto oriṣiriṣi ti awọn akọle HTTP.

Dipo faaji ti o ya awọn ibeere sinu awọn ilana oṣiṣẹ lọtọ, Pingora nlo awoṣe ti o ni ọpọlọpọ-asapo, eyiti o wa ninu awọn ọran lilo Cloudflare (ifọkansi giga ti ijabọ lati awọn aaye oriṣiriṣi pẹlu iyipada iṣiro nla) fihan pinpin daradara diẹ sii ti awọn orisun laarin awọn ohun kohun Sipiyu. Ni pataki, isọdọkan nginx ti awọn ibeere ti ko ni iwọntunwọnsi si awọn ilana yorisi fifuye aibojumu lori awọn ohun kohun Sipiyu, ti o yọrisi awọn ibeere aladanla orisun ati didi I/O fa fifalẹ sisẹ awọn ibeere miiran. Ni afikun, abuda adagun asopọ si awọn ilana imudani ko gba laaye atunlo awọn asopọ ti iṣeto tẹlẹ lati awọn ilana imudani miiran, eyiti o dinku ṣiṣe nigbati nọmba nla ti awọn ilana imudani wa.

NGINX:

Cloudflare yipada lati NGINX si Pingora aṣoju tirẹ, ti a kọ sinu Rust

Pingora:

Cloudflare yipada lati NGINX si Pingora aṣoju tirẹ, ti a kọ sinu Rust

Imuse ti Pingora jẹ ki o ṣee ṣe lati dinku nọmba awọn fifi sori ẹrọ ti awọn asopọ tuntun nipasẹ awọn akoko 160 ati mu ipin ti awọn ibeere ti a tun lo lati 87.1% si 99.92%. Ni afikun si idinku awọn isọdọtun ati lilo daradara diẹ sii ti awọn ohun kohun Sipiyu, ilọsiwaju iṣẹ aṣoju tuntun jẹ pataki nitori yiyọkuro ti awọn olutọju Lua lọra ti a lo pẹlu nginx.

A yan ede Rust lati ṣaṣeyọri iṣẹ ṣiṣe giga ni idapo pẹlu wiwa awọn irinṣẹ lati rii daju iṣẹ ailewu pẹlu iranti. O mẹnuba pe laibikita awọn onimọ-ẹrọ ti o ni oye giga ti Cloudflare ati atunyẹwo koodu ti a kọ sinu ede C, ko ṣee ṣe lati yago fun awọn aṣiṣe ti o yori si awọn iṣoro iranti (fun apẹẹrẹ, ailagbara ninu parser HTML). Bi fun koodu tuntun, o sọrọ nipa awọn ọran ti itupalẹ awọn ikuna ni Pingora, eyiti kii ṣe nipasẹ awọn iṣoro ninu ohun elo, ṣugbọn nipasẹ aṣiṣe ninu ekuro Linux ati awọn ikuna ohun elo.

Ni afikun, a le ṣe akiyesi asọye ti Linus Torvalds, ti a sọ ni apejọ Open-Source Summit Europe ti o waye ni awọn ọjọ wọnyi, nipa ifisi atilẹyin fun ede Rust ni ekuro Linux. Awọn abulẹ fun idagbasoke awọn awakọ ẹrọ ni ede Rust ko si ninu ekuro 6.0, ṣugbọn ni ibamu si Linus, o ṣee ṣe julọ gba wọn sinu ekuro 6.1; kii yoo ṣe idaduro isọpọ. Gẹgẹbi iwuri fun fifi atilẹyin fun Rust, ni afikun si ipa ti o dara lori aabo, Linus tun sọ ni anfani lati mu anfani pọ si ni sisẹ lori ipilẹ ti awọn alabaṣepọ titun, eyiti o ṣe pataki ni ipo ti awọn agbalagba ti ogbologbo.

orisun: opennet.ru

Fi ọrọìwòye kun