Yandex သည် high-load applications များဖန်တီးရန်အတွက် userver framework အတွက် code ကိုဖွင့်ထားသည်။

Yandex သည် asynchronous mode တွင်အလုပ်လုပ်သော C++ တွင် high-load applications များကိုဖန်တီးနိုင်စေသည့် Userver framework ၏အရင်းအမြစ်ကုဒ်ကိုထုတ်ဝေခဲ့သည်။ မူဘောင်ကို Yandex-level loads အောက်တွင် စမ်းသပ်ထားပြီး Yandex Go၊ Lavka၊ Delivery၊ Market နှင့် fintech ပရောဂျက်များကဲ့သို့သော ဝန်ဆောင်မှုများတွင် အသုံးပြုပါသည်။ အသုံးပြုသူ၏ကုဒ်ကို C++ ဖြင့် ရေးသားထားပြီး Apache 2.0 လိုင်စင်အောက်တွင် အရင်းအမြစ်ဖွင့်ထားသည်။

အသုံးပြုသူသည် မိုက်ခရိုဆားဗစ်ဗိသုကာဖြင့် အပလီကေးရှင်းများ ဖန်တီးရန်အတွက် အသင့်တော်ဆုံးဖြစ်သည်။ ကနဦးတွင်၊ အဖွဲ့သည် ၎င်း၏အကူအညီဖြင့် Yandex Taxi အတွက် မူဘောင်ကို ဖန်တီးခဲ့ပြီး၊ အဖွဲ့သည် သီးခြားလွတ်လပ်သော အစိတ်အပိုင်းများ (microservices) များကို တီထွင်ဖန်တီးနိုင်ပြီး မတူညီသော အပလီကေးရှင်းများတွင် အသုံးပြုရန် ခွင့်ပြုသည့် monolithic အပလီကေးရှင်းမှ ဗိသုကာတစ်ခုသို့ ပြောင်းလဲခဲ့သည်။ Microservices များသည် autonomous ဖြစ်သောကြောင့် အလားတူဗိသုကာတစ်ခုအပေါ်အခြေခံထားသော application သည် အပ်ဒိတ်လုပ်ရန် လွယ်ကူပြီး ၎င်းတွင် အင်္ဂါရပ်အသစ်များထည့်နိုင်သည်။ ထို့ကြောင့် တက္ကစီအမှာစာများအတွက် ယာဉ်မောင်းတစ်ဦးရှာဖွေရန် microservice ကို အလားတူအလုပ်အတွက်အသုံးပြုနိုင်သည် - ဥပမာ၊ Yandex Delivery အမှာစာများကိုဖြည့်ဆည်းရန် ကယ်ရီယာကိုရှာဖွေခြင်း။ ယာဉ်မောင်း သို့မဟုတ် ကယ်ရီယာ၏ ဆိုက်ရောက်ချိန်ကို တွက်ချက်ခြင်းနှင့် အခြားအလုပ်များစွာကိုလည်း အလားတူလုပ်ဆောင်နိုင်သည်။

ယုံကြည်စိတ်ချရမှုနှင့် အဆင်ပြေမှုအပေါ် အလေးပေးထားသည့် မူဘောင်ကို ကနဦးတွင် ဖန်တီးထားပြီး ၎င်းအတွင်းတွင် ဖွံ့ဖြိုးတိုးတက်မှု၊ ရောဂါရှာဖွေမှု၊ စောင့်ကြည့်မှု၊ အမှားပြင်ဆင်ခြင်းနှင့် စမ်းသပ်မှုများအတွက် လိုအပ်သည့်အရာအားလုံးကို ပံ့ပိုးပေးထားသည်။ ဥပမာအားဖြင့်၊ အသုံးပြုသူသည် စုစည်းမှုအဆင့်တွင် အမှားများကို မည်ကဲ့သို့ ပြင်ဆင်ရမည်ကို အကြံပြုသည်၊ မတူညီသော ဒေတာဘေ့စ်များနှင့် အလုပ်လုပ်နိုင်သည်၊ ဘောင်များကို အချိန်နှင့်တပြေးညီ ပြောင်းလဲနိုင်သည်၊ အစရှိသည်တို့ကို အကြံပြုပါသည်။ Ubuntu၊ Debian၊ Fedora၊ Arch၊ Gentoo၊ macOS စနစ်များ၊ x86၊ x86_64၊ AArch64၊ Arm Architectures၊ GCC 8+ နှင့် Clang 9+ စုစည်းမှုများ၊ C++ 17၊ C++ 20၊ C++ 23 စံနှုန်းများအတွက် ပံ့ပိုးမှုကို ကြေညာထားသည်။

ပေါင်းစပ်ဖွဲ့စည်းမှုတွင် DBMS (MongoDB၊ PostgreSQL၊ Redis၊ ClickHouse၊ MySQL)၊ အမျိုးမျိုးသော ပရိုတိုကောများ (HTTP၊ HTTPS၊ GRPC၊ TCP၊ UDP၊ TLS) အတွက် တပြိုင်တည်းလုပ်ဆောင်နေသော client များနှင့် ဆာဗာများ ပါဝင်သော ဒရိုက်ဘာများ ပါဝင်သည် JSON/YAML/BSON ဖော်မတ်များဖြင့် လုပ်ဆောင်ရန်အတွက် လည်ပတ်မှုစနစ်၏ စွမ်းဆောင်ရည်များအပြင် ကက်ရှ်၊ လုပ်ဆောင်စရာများ၊ ဖြန့်ဝေထားသောသော့ခလောက်များ၊ ခြေရာခံခြင်း၊ မက်ထရစ်များ၊ စာရင်းဇယားများနှင့် ဒေတာများကို ဝင်ရောက်ကြည့်ရှုခြင်း။ ၎င်းသည် ရပ်တန့်ခြင်းမရှိဘဲ ပျံသန်းနေစဉ် ဝန်ဆောင်မှုပုံစံကို ပြောင်းလဲခြင်းကို ပံ့ပိုးပေးသည်။

ယခင်က၊ Yandex သည် ၎င်း၏အခြားသော့ချက်နည်းပညာများကို အဖွင့်ပရောဂျက်ပုံစံသို့ လွှဲပြောင်းခဲ့သည် - ဥပမာ၊ ဖြန့်ဝေထားသော ဒေတာဘေ့စ်စီမံခန့်ခွဲမှုစနစ် YDB၊၊ တစ်စက္ကန့်လျှင် တောင်းဆိုချက်သန်းပေါင်းများစွာကို လုပ်ဆောင်နိုင်သည့် CatBoost စက်သင်ယူမှုစာကြည့်တိုက်၊ Yandex နှင့် အခြားရှာဖွေမှုတွင် အသုံးပြုသည့် ဝန်ဆောင်မှုများ။

source: opennet.ru

မှတ်ချက် Add