Cloudflare huet vun NGINX op säin eegene Pingora Proxy gewiesselt, a Rust geschriwwen

Cloudflare huet den Iwwergank vu sengem Inhalt Liwwerungsnetz ugekënnegt fir de Pingora Proxy ze benotzen, geschriwwe an der Rust Sprooch. Den neie Proxy ersetzt d'NGINX Server-baséiert Konfiguratioun mat Lua Scripten, a veraarbecht méi wéi eng Billioun Ufroe pro Dag. Et gëtt bemierkt datt den Iwwergank zu engem spezialiséierte Proxy erlaabt net nëmmen nei Fonctiounen ëmzesetzen an d'Sécherheet ze erhéijen wéinst der sécherer Operatioun vun der Erënnerung, awer och zu enger wesentlecher Erhéijung vun der Leeschtung a Ressource spueren - d'Pingora-baséiert Léisung erfuerdert net de Gebrauch vun Lua, an dofir verbraucht 70% manner Ressourcen CPU an 67% manner Erënnerung iwwerdeems déi selwecht Quantitéit vun Verkéier Veraarbechtung.

Fir eng laang Zäit huet e System fir Proxying Traffic tëscht Benotzer an Endserver baséiert op NGINX a Lua Scripten d'Bedierfnesser vu Cloudflare zefridden, awer wéi d'Netzwierk gewuess ass a seng Komplexitéit eropgeet, huet eng universell Léisung sech net genuch gewisen, souwuel wat d'Reseau ugeet. Leeschtung a wéinst Aschränkungen an extensibility an Ëmsetzung vun neie Méiglechkeete fir Clienten. Besonnesch goufen et Erausfuerderunge fir Funktionalitéit iwwer eng einfach Paart a Lastbalancer ze addéieren. Zum Beispill gouf et néideg, wann de Server net fäerdeg ass eng Ufro ze veraarbecht, d'Ufro un en anere Server nei ze schécken, et mat engem anere Set vun HTTP Header ze bidden.

Amplaz vun enger Architektur, déi Ufroen an getrennten Aarbechterprozesser trennt, benotzt Pingora e Multi-threaded Modell, deen an Cloudflare Benotzungsfäll (héich Konzentratioun vu Verkéier vu verschiddene Site mat enger grousser statistescher Verréckelung) eng méi effizient Verdeelung vu Ressourcen tëscht CPU-Cores gewisen huet. Besonnesch d'nginx Bindung vun onbalancéierten Ufroe fir Prozesser huet zu enger onbalancéierter Belaaschtung op d'CPU Cores gefouert, wat zu Ressourceintensiv Ufroe resultéiert an I/O blockéiert d'Veraarbechtung vun aneren Ufroe verlangsamt. Zousätzlech, verbindlech der Verbindung Pool zu Handler Prozesser net weiderbenotzen vun schonn etabléiert Verbindungen aus anere Handler Prozesser erlaabt, déi Effizienz reduzéiert wann et eng grouss Zuel vun Handler Prozesser sinn.

NGINX:

Cloudflare huet vun NGINX op säin eegene Pingora Proxy gewiesselt, a Rust geschriwwen

Pingora:

Cloudflare huet vun NGINX op säin eegene Pingora Proxy gewiesselt, a Rust geschriwwen

D'Ëmsetzung vu Pingora huet et méiglech gemaach d'Zuel vun den Installatiounen vun neie Verbindungen ëm 160 Mol ze reduzéieren an den Undeel vu weiderbenotzten Ufroen vun 87.1% op 99.92% ze erhéijen. Zousätzlech fir d'Reconnectioun ze reduzéieren a méi effizient Notzung vun CPU Cores, war d'Performanceverbesserung vum neie Proxy haaptsächlech wéinst der Entfernung vu luesen Lua Handler, déi mat nginx benotzt ginn.

D'Rust Sprooch gouf gewielt fir héich Leeschtung ze erreechen kombinéiert mat der Disponibilitéit vun Tools fir sécher Operatioun mat Erënnerung ze garantéieren. Et gëtt erwähnt datt trotz den héichqualifizéierten Ingenieuren vu Cloudflare an d'Iwwerpréiwung vum Code an der C Sprooch geschriwwe gouf, et net méiglech war Feeler ze vermeiden déi zu Erënnerungsproblemer féieren (zum Beispill eng Schwachstelle am HTML Parser). Wat den neie Code ugeet, schwätzt et iwwer Fäll vun Analysefehler am Pingora, déi sech net duerch Probleemer an der Applikatioun verursaacht hunn, mee duerch e Feeler am Linux Kernel an Hardwarefehler.

Zousätzlech kënne mir de Kommentar vum Linus Torvalds notéieren, op der Open-Source Sommet Europe Konferenz déi dës Deeg stattfënnt, betreffend d'Inklusioun vun der Ënnerstëtzung fir d'Rust Sprooch am Linux Kernel. Patches fir Apparat Chauffeuren an der Rust Sprooch z'entwéckelen waren net am 6.0 Kernel abegraff, awer laut Linus wäerte se héchstwahrscheinlech an den 6.1 Kernel akzeptéiert ginn; hien wäert d'Integratioun net verzögeren. Als Motivatioun fir d'Ënnerstëtzung fir Rust ze addéieren, nieft dem positiven Impakt op d'Sécherheet, zitéiert de Linus och d'Méiglechkeet fir d'Interesse ze erhéijen fir um Kär vun neie Participanten ze schaffen, wat wichteg ass am Kontext vun alternd Oldtimer.

Source: opennet.ru

Setzt e Commentaire