Cloudflare ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΠΎΡ‚ NGINX към свой собствСн прокси Pingora, написан Π½Π° Rust

Cloudflare обяви, Ρ‡Π΅ ΠΌΠΈΠ³Ρ€ΠΈΡ€Π° своята ΠΌΡ€Π΅ΠΆΠ° Π·Π° доставка Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Π·Π° Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° проксито Pingora, написано Π½Π° Rust. Новият прокси Π΅ Π·Π°ΠΌΠ΅Π½ΠΈΠ» Π±Π°Π·ΠΈΡ€Π°Π½Π°Ρ‚Π° Π½Π° NGINX ΡΡŠΡ€Π²ΡŠΡ€ конфигурация с Lua скриптовС ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Π½Π°Π΄ Ρ‚Ρ€ΠΈΠ»ΠΈΠΎΠ½ заявки Π½Π° Π΄Π΅Π½. ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ ΠΏΡ€Π΅Ρ…ΠΎΠ΄ΡŠΡ‚ към спСциализиран прокси ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π½Π΅ само Π΄Π° сС внСдрят Π½ΠΎΠ²ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π΄Π° сС повиши сигурността ΠΏΠΎΡ€Π°Π΄ΠΈ бСзопасна Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността ΠΈ спСстяванС Π½Π° рСсурси - Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° Pingora, Π½Π΅ изисква ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Lua, слСдоватСлно консумира 70% ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ рСсурси CPU ΠΈ 67% ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΡΡŠΡ‰ΠΎΡ‚ΠΎ количСство Ρ‚Ρ€Π°Ρ„ΠΈΠΊ.

Π”ΡŠΠ»Π³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ систСма Π·Π° прокси Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΊΡ€Π°ΠΉΠ½ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° NGINX ΠΈ Lua скриптовС, задоволявашС Π½ΡƒΠΆΠ΄ΠΈΡ‚Π΅ Π½Π° Cloudflare, Π½ΠΎ с разрастванСто Π½Π° ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π° ΠΈ нарастванСто Π½Π° Π½Π΅ΠΉΠ½Π°Ρ‚Π° слоТност унивСрсалното Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ бСшС Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΏΠΎ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Π½Π° производитСлността, Ρ‚Π°ΠΊΠ° ΠΈ ΠΈ ΠΏΠΎΡ€Π°Π΄ΠΈ ограничСния Π² Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚Ρ‚Π° ΠΈ внСдряванСто Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅. По-спСциално, имашС трудности ΠΏΡ€ΠΈ добавянСто Π½Π° функционалност извън обикновСния шлюз ΠΈ балансиращото Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅. НапримСр, Π² случай Ρ‡Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ Π½Π΅ успСС Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈ заявка, стана Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ заявката Π΄Π° сС прСнасочи към Π΄Ρ€ΡƒΠ³ ΡΡŠΡ€Π²ΡŠΡ€, ΠΊΠ°Ρ‚ΠΎ ΠΌΡƒ сС прСдостави Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ HTTP Π·Π°Π³Π»Π°Π²ΠΊΠΈ.

ВмСсто Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° с раздСлянС Π½Π° заявкитС Π² ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈ процСси (Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΡ†ΠΈ), Pingora ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° многонишков ΠΌΠΎΠ΄Π΅Π», ΠΊΠΎΠΉΡ‚ΠΎ Π² сцСнарии Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Cloudflare (висока концСнтрация Π½Π° Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ сайтовС с голяма статистичСска промяна) ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° рСсурситС ΠΌΠ΅ΠΆΠ΄Ρƒ процСсорни ядра. По-спСциално, ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° нСбалансирани заявки към процСси Π² nginx Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ нСбалансирано Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° ядрата Π½Π° процСсора, Π² Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ заявкитС с ΠΈΠ½Ρ‚Π΅Π½Π·ΠΈΠ²Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° рСсурси ΠΈ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅ Π½Π° I / O забавят ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ заявки. Π’ допълнСниС, ΠΎΠ±Π²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡƒΠ»Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈΡ‚Π΅ към процСситС Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π΅ позволява ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²Π΅Ρ‡Π΅ установСни Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈ процСси Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ, ΠΊΠΎΠ΅Ρ‚ΠΎ намалява СфСктивността, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ° голям Π±Ρ€ΠΎΠΉ процСси Π½Π° ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ.

nginx:

Cloudflare ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΠΎΡ‚ NGINX към свой собствСн прокси Pingora, написан Π½Π° Rust

ΠŸΠΈΠ½Π³ΠΎΡ€Π°:

Cloudflare ΠΏΡ€Π΅ΠΌΠΈΠ½Π° ΠΎΡ‚ NGINX към свой собствСн прокси Pingora, написан Π½Π° Rust

Π’ΡŠΠ²Π΅ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° Pingora ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈ Π΄Π° сС Π½Π°ΠΌΠ°Π»ΠΈ броят Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° установяванС Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ° със 160 ΠΏΡŠΡ‚ΠΈ ΠΈ Π΄Π° сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ Π΄Π΅Π»ΡŠΡ‚ Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡ‚Π΅ заявки ΠΎΡ‚ 87.1% Π½Π° 99.92%. Π’ допълнСниС към намаляванСто Π½Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ ΠΈ ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ядрата Π½Π° процСсора, производитСлността Π½Π° новия прокси сС дълТи Π³Π»Π°Π²Π½ΠΎ Π½Π° ΠΏΡ€Π΅ΠΌΠ°Ρ…Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π±Π°Π²Π½ΠΈΡ‚Π΅ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° Lua, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ с nginx.

Π•Π·ΠΈΠΊΡŠΡ‚ Rust бСшС ΠΈΠ·Π±Ρ€Π°Π½ ΠΊΠ°Ρ‚ΠΎ позволяващ висока производитСлност, ΡΡŠΡ‡Π΅Ρ‚Π°Π½Π° с Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° бСзопасни Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° инструмСнти. Π‘ΠΏΠΎΠΌΠ΅Π½Π°Π²Π° сС, Ρ‡Π΅ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ високата квалификация Π½Π° ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ‚Π΅ Π½Π° Cloudflare ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ΠΈΡ‚Π΅ Π½Π° ΠΊΠΎΠ΄Π°, написани Π½Π° Π΅Π·ΠΈΠΊΠ° C, Π½Π΅ бСшС възмоТно Π΄Π° сС ΠΈΠ·Π±Π΅Π³Π½Π°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ водят Π΄ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ уязвимост Π² HTML Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€Π°). Π©ΠΎ сС отнася Π΄ΠΎ новия ΠΊΠΎΠ΄, Π³ΠΎΠ²ΠΎΡ€ΠΈΡ…ΠΌΠ΅ Π·Π° случаи Π½Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° сривовС Π² Pingora, ΠΊΠΎΠΈΡ‚ΠΎ сС ΠΎΠΊΠ°Π·Π°Ρ…Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ Π½Π΅ ΠΎΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Π° ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ° Π² ядрото Π½Π° Linux ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ.

ОсвСн Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ, Ρ‡Π΅ Линус Ворвалдс ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΅Π·ΠΈΠΊΠ° Rust Π² ядрото Π½Π° Linux, ΠΈΠ·Ρ€Π°Π·Π΅Π½ΠΎ Π½Π° конфСрСнцията Open-Source Summit Europe, която сС ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π° Ρ‚Π΅Π·ΠΈ Π΄Π½ΠΈ. Π―Π΄Ρ€ΠΎΡ‚ΠΎ 6.0 Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΠΏΠ°Ρ‡ΠΎΠ²Π΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π½Π° устройства Π½Π° Π΅Π·ΠΈΠΊΠ° Rust, Π½ΠΎ спорСд Линус Ρ‚Π΅ вСроятно Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ΅Ρ‚ΠΈ Π² ядрото 6.1, Ρ‚ΠΎΠΉ няма Π΄Π° сС Π·Π°Π΄ΡŠΡ€ΠΆΠΈ с интСграцията. ΠšΠ°Ρ‚ΠΎ ΠΌΠΎΡ‚ΠΈΠ² Π·Π° добавянС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Rust, Π² допълнСниС към ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π½ΠΎΡ‚ΠΎ Π²ΡŠΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ Π²ΡŠΡ€Ρ…Ρƒ сигурността, Линус Π½Π°Ρ€ΠΈΡ‡Π° ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° интСрСса към Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π²ΡŠΡ€Ρ…Ρƒ ядрото Π½Π° Π½ΠΎΠ²ΠΈΡ‚Π΅ участници, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ Π²Π°ΠΆΠ½ΠΎ Π² контСкста Π½Π° застаряващитС стари Ρ…ΠΎΡ€Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€