Cloudflare သည် NGINX မှ Rust ဖြင့်ရေးသားထားသော ၎င်း၏ကိုယ်ပိုင် Pingora proxy သို့ပြောင်းခဲ့သည်။

Cloudflare သည် Rust ဘာသာစကားဖြင့် ရေးသားထားသော Pingora proxy ကို အသုံးပြုရန်အတွက် ၎င်း၏ အကြောင်းအရာပေးပို့ခြင်းကွန်ရက်၏ အသွင်ကူးပြောင်းမှုကို ကြေညာခဲ့သည်။ proxy အသစ်သည် NGINX server-based configuration ကို Lua scripts များဖြင့် အစားထိုးပြီး တစ်နေ့လျှင် တောင်းဆိုချက်ပေါင်း ထရီလီယံကျော်ကို လုပ်ဆောင်ပါသည်။ အထူးပြုပရောက်စီသို့ ကူးပြောင်းခြင်းသည် အင်္ဂါရပ်အသစ်များကို အကောင်အထည်ဖော်ရန်နှင့် လုံခြုံစိတ်ချရသော မှတ်ဉာဏ်လည်ပတ်မှုကြောင့် လုံခြုံရေးကို တိုးမြှင့်စေရုံသာမက စွမ်းဆောင်ရည်နှင့် ရင်းမြစ်ချွေတာမှုတွင် သိသာထင်ရှားစွာ တိုးလာကြောင်း မှတ်သားထားပါသည် - Pingora-based ဖြေရှင်းချက်သည် အသုံးပြုရန်မလိုအပ်ပါ။ Lua ၏ ထို့ကြောင့် အရင်းအမြစ် ၇၀% လျော့နည်းသော CPU နှင့် တူညီသော traffic ပမာဏကို လုပ်ဆောင်နေစဉ်တွင် memory 70% လျော့နည်းသည်။

ကြာမြင့်စွာကတည်းက၊ အသုံးပြုသူများနှင့် နောက်ဆုံးအသုံးပြုသူများအကြား အသွားအလာကို ကိုယ်စားပြုသည့်စနစ်တစ်ခု ဆာဗာများ NGINX နှင့် Lua scripts များကို အခြေခံ၍ Cloudflare ၏ လက်ရှိဖြေရှင်းချက်သည် ၎င်း၏လိုအပ်ချက်များကို ဖြည့်ဆည်းပေးခဲ့သော်လည်း ကွန်ရက်ကြီးထွားလာပြီး ၎င်း၏ရှုပ်ထွေးမှုများ တိုးလာသည်နှင့်အမျှ all-in-one ဖြေရှင်းချက်သည် စွမ်းဆောင်ရည်အရရော၊ scalability နှင့် client features အသစ်များ အကောင်အထည်ဖော်မှုတွင် ကန့်သတ်ချက်များကြောင့်ပါ မလုံလောက်ကြောင်း သက်သေပြခဲ့သည်။ အထူးသဖြင့် ရိုးရှင်းသော gateway နှင့် load balancer ထက်ကျော်လွန်၍ လုပ်ဆောင်ချက်များထည့်သွင်းခြင်းသည် စိန်ခေါ်မှုတစ်ရပ် ဖြစ်လာခဲ့သည်။ ဥပမာအားဖြင့်၊ failover response အတွက် လိုအပ်ချက်တစ်ခု ပေါ်ပေါက်လာခဲ့သည်။ ဆာဗာ တောင်းဆိုမှုကို အခြားဆာဗာတစ်ခုသို့ ပြန်ပို့ပါ၊ ၎င်းတွင် မတူညီသော HTTP header အစုံတစ်ခု ပေးပါ။

သီးခြားအလုပ်သမားလုပ်ငန်းစဉ်များတွင် တောင်းဆိုမှုများကို ခွဲခြားပေးသည့် ဗိသုကာတစ်ခုအစား၊ Pingora သည် Cloudflare အသုံးပြုမှုကိစ္စများတွင် (ကိန်းဂဏန်းပမာဏများပြားသော ဆိုက်များစွာမှ ဒေတာပမာဏများပြားသော ပမာဏများပြားသော) CPU cores များအကြား အရင်းအမြစ်များကို ပိုမိုထိရောက်စွာ ခွဲဝေပေးကြောင်း ပြသသည့် multi-threaded မော်ဒယ်ကို အသုံးပြုပါသည်။ အထူးသဖြင့်၊ nginx ၏ လုပ်ငန်းစဉ်များတွင် ဟန်ချက်မညီသော တောင်းဆိုမှုများကို ပေါင်းစပ်ခြင်းသည် CPU cores တွင် ဟန်ချက်မညီသော ဝန်ကို ဖြစ်ပေါ်စေပြီး အရင်းအမြစ်-အလေးပေးသော တောင်းဆိုမှုများကို ဖြစ်ပေါ်စေပြီး အခြားတောင်းဆိုမှုများ၏ လုပ်ဆောင်မှုကို နှေးကွေးစေသည်။ ထို့အပြင်၊ ကိုင်တွယ်သူ လုပ်ငန်းစဉ်များနှင့် ချိတ်ဆက်မှုပူးတွဲအား ချိတ်ဆက်မှုသည် အခြားကိုင်တွယ်သူ လုပ်ငန်းစဉ်များမှ ပြီးသားချိတ်ဆက်မှုများကို ပြန်လည်အသုံးပြုခြင်းကို ခွင့်မပြုဘဲ၊ ကိုင်တွယ်သူ လုပ်ငန်းစဉ်အများအပြားရှိသည့်အခါ ထိရောက်မှုကို လျော့နည်းစေပါသည်။

NGINX-

Cloudflare သည် NGINX မှ Rust ဖြင့်ရေးသားထားသော ၎င်း၏ကိုယ်ပိုင် Pingora proxy သို့ပြောင်းခဲ့သည်။

Pingora-

Cloudflare သည် NGINX မှ Rust ဖြင့်ရေးသားထားသော ၎င်း၏ကိုယ်ပိုင် Pingora proxy သို့ပြောင်းခဲ့သည်။

Pingora ၏ အကောင်အထည်ဖော်မှုသည် ချိတ်ဆက်မှုအသစ်များ၏ တပ်ဆင်မှုအရေအတွက်ကို အကြိမ် 160 လျှော့ချနိုင်ပြီး ပြန်လည်အသုံးပြုထားသော တောင်းဆိုမှုများ၏ဝေစုကို 87.1% မှ 99.92% အထိ တိုးမြှင့်နိုင်စေခဲ့သည်။ ပြန်လည်ချိတ်ဆက်မှုများကို လျှော့ချခြင်းနှင့် CPU cores များကို ပိုမိုထိရောက်စွာအသုံးပြုခြင်းအပြင်၊ proxy အသစ်၏စွမ်းဆောင်ရည်တိုးတက်မှုသည် အဓိကအားဖြင့် nginx ဖြင့်အသုံးပြုထားသော နှေးကွေးသော Lua handlers များကိုဖယ်ရှားခြင်းကြောင့်ဖြစ်သည်။

Rust ကို မှတ်ဉာဏ်ဘေးကင်းရေးအင်္ဂါရပ်များပါ ပံ့ပိုးပေးခြင်းနှင့်အတူ မြင့်မားသောစွမ်းဆောင်ရည်ကို ရရှိနိုင်သည့်စွမ်းရည်ကြောင့် ရွေးချယ်ခဲ့ခြင်းဖြစ်သည်။ Cloudflare ၏ အင်ဂျင်နီယာများ၏ မြင့်မားသောအရည်အချင်းများနှင့် ကျယ်ပြန့်သော ကုဒ်ပြန်လည်သုံးသပ်ခြင်းလုပ်ငန်းစဉ်ရှိသော်လည်း၊ C ကုဒ်တွင် မှတ်ဉာဏ်ပြဿနာများ (ဥပမာ HTML parser ရှိ အားနည်းချက်ကဲ့သို့သော) ကို ဖြစ်ပေါ်စေသည့် အမှားများကို ရှောင်ရှား၍မရကြောင်း သတိပြုမိပါသည်။ ကုဒ်အသစ်နှင့်ပတ်သက်၍ Pingora ရှိ crash များကို ခွဲခြမ်းစိတ်ဖြာခဲ့ပြီး၊ ၎င်းသည် application ပြဿနာများကြောင့်မဟုတ်ဘဲ kernel bug ကြောင့်ဖြစ်ကြောင်း တွေ့ရှိခဲ့သည်။ Linux နှင့် ဟာ့ဒ်ဝဲ ချို့ယွင်းမှုများ။

ထို့အပြင်၊ လက်ရှိကျင်းပနေသော Open-Source Summit Europe ညီလာခံတွင် Linus Torvalds မှ kernel တွင် Rust ဘာသာစကားပံ့ပိုးမှုထည့်သွင်းခြင်းနှင့် ပတ်သက်၍ မှတ်ချက်ပေးခဲ့ကြောင်း မှတ်သားထားသင့်သည်။ LinuxRust မှာ device drivers တွေ တီထွင်ဖို့အတွက် patch တွေကို kernel 6.0 မှာ မထည့်သွင်းထားပေမယ့် Linus ရဲ့ အဆိုအရ kernel 6.1 မှာ ပါဝင်ဖွယ်ရှိပြီး integration ကို နှောင့်နှေးဖို့ အစီအစဉ်မရှိပါဘူး။ လုံခြုံရေးအကျိုးကျေးဇူးတွေအပြင် Linus က kernel development မှာ contributor အသစ်တွေ စိတ်ဝင်စားမှု မြင့်တက်လာနိုင်တဲ့ အခွင့်အရေးကိုလည်း ကိုးကားပြီး core team ဟောင်းနွမ်းလာတာကြောင့် ဒါက အရေးကြီးပါတယ်။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster