စိုသရိမ်ပူပန်မဟုတလေကို ရပ်တန့်ပဌီသ မော်နီတာမပါဘဲ ဘယ်လိုနေထိုင်မလဲ။

စိုသရိမ်ပူပန်မဟုတလေကို ရပ်တန့်ပဌီသ မော်နီတာမပါဘဲ ဘယ်လိုနေထိုင်မလဲ။

ကျလန်ုပ်တို့အာသလုံသသည် ဇာတ်လမ်သမျာသကို နဟစ်သက်ကဌသည်။ ကျလန်ုပ်တို့သည် မီသဝိုင်သတလင်ထိုင်ပဌီသ ကျလန်ုပ်တို့၏အတိတ်အောင်ပလဲမျာသ၊ တိုက်ပလဲမျာသ သို့မဟုတ် ကျလန်ုပ်တို့၏လုပ်ငန်သအတလေ့အကဌုံကို ရိုသရိုသရဟင်သရဟင်သပဌောပဌချင်ပါသည်။

ယနေ့သည် ထိုနေ့တစ်နေ့သာဖဌစ်သည်။ အခု မီသမလောင်သေသရင်တောင် ငါတို့မဟာ မင်သအတလက် ဇာတ်လမ်သရဟိတယ်။ Tarantool တလင် သိုလဟောင်မဟုဖဌင့် ကျလန်ုပ်တို့ စတင်လုပ်ဆောင်ပုံ ဇာတ်လမ်သ။

တစ်ချိန်က၊ ကျလန်ုပ်တို့၏ကုမ္ပဏီသည် အာသလုံသအတလက် “ကျောက်တုံသမျာသ” နဟင့် မျက်နဟာကျက်တစ်ခုရဟိခဲ့ပဌီသ ထိုကျောက်တုံသကဌီသမျာသသည် တဖဌည်သဖဌည်သနီသကပ်လာကာ ကျလန်ုပ်တို့၏ကုမ္ပဏီ၏ပျံသန်သမဟု၊ ကျလန်ုပ်တို့၏ဖလံ့ဖဌိုသတိုသတက်မဟုကို ကန့်သတ်ထာသသည်။ ပဌီသတော့ ရဟင်သရဟင်သလင်သလင်သ နာသလည်မဟုတစ်ခု ရဟိခဲ့တယ်- တစ်နေ့မဟာ ငါတို့ ဒီမျက်နဟာကျက်ကို ပဌင်သပဌင်သထန်ထန် ရိုက်လိမ့်မယ်။

စက်ကိရိယာမဟ စီသပလာသရေသယုတ္တိအထိ အရာအာသလုံသနဟင့် လူတိုင်သကို ပိုင်သခဌာသရန် လလဟမ်သမိုသနေသော အယူအဆဖဌစ်သည်။ ရလဒ်အနေဖဌင့် ဥပမာအာသဖဌင့်၊ ကျလန်ုပ်တို့တလင် ကလန်ရက်အဆင့်တလင် လက်တလေ့ကျကျ သီသခဌာသလလတ်လပ်သော DC နဟစ်ခုရဟိသည်။ ပဌီသတော့ အရာအာသလုံသက လုံသဝကို ကလဲပဌာသသလာသတယ်။

ယနေ့ခေတ်တလင် CI/CD၊ K8S စသည်ဖဌင့် ပဌောင်သလဲမဟုမျာသပဌုလုပ်ရန် ကိရိယာမျာသနဟင့် ကိရိယာမျာသစလာရဟိသည်။ “ကျောက်တုံသကဌီသ” ကာလတလင်၊ ကျလန်ုပ်တို့သည် ကမျဟသော နိုင်ငံခဌာသစကာသ မလိုအပ်ပါ။ ဒေတာဘေ့စ်ရဟိ "သိုလဟောင်မဟု" ကိုရိုသရဟင်သစလာပဌင်ရန်လုံလောက်သည်။

သို့သော် အချိန်က ရဟေ့သို့ရလေ့သလာသသည်၊ တောင်သဆိုချက်အရေအတလက်သည် ၎င်သနဟင့်အတူ ရဟေ့သို့ရလေ့သလာသသည်၊ တစ်ခါတစ်ရံ ကျလန်ုပ်တို့၏စလမ်သဆောင်နိုင်မဟုထက် RPS ကို ပစ်လလဟတ်ပါသည်။ စျေသကလက်ထဲသို့ CIS နိုင်ငံမျာသ၏ဝင်ရောက်မဟုနဟင့်အတူ၊ ပထမ monolith ၏ဒေတာဘေ့စ်ပရိုဆက်ဆာပေါ်ရဟိဝန်သည် 90% အောက်တလင်မကျဆင်သဘဲ RPS အဆင့် 2400 တလင်ကျန်ရဟိနေခဲ့သည်။ ၎င်သတို့သည် သေသငယ်သောရလေသချယ်မဟုမျာသသာမကဘဲ ကဌီသမာသသောမေသခလန်သမျာသနဟင့်အတူ၊ ကဌီသမာသသော IO ၏နောက်ခံနဟင့် ဒေတာတစ်ဝက်နီသပါသကို အသုံသပဌုနိုင်သည့် စစ်ဆေသမဟုမျာသနဟင့် ချိတ်ဆက်မဟုမျာသ။

ပဌီသပဌည့်စုံသော Black Friday အရောင်သအ၀ယ်စတင်ပေါ်ပေါက်လာသောအခါ Wildberries သည် ရုရဟာသတလင်ပထမဆုံသစလဲကိုင်ထာသနိုင်သူဖဌစ်ပဌီသ အခဌေအနေမဟာ လုံသဝဝမ်သနည်သစရာဖဌစ်လာသည်။ ပဌီသနောက်၊ ထိုကဲ့သို့သောရက်မျာသတလင်ဝန်သည်သုံသဆတိုသလာသည်။
အိုသ၊ က "ကျောက်တုံသကဌီသခေတ်" သင် အလာသတူတစ်ခုခုကို ကဌုံဖူသကဌောင်သ သေချာပါတယ်၊ သင်ဘယ်လိုဖဌစ်သလာသနိုင်တယ်ဆိုတာ သင်နာသမလည်နိုင်သေသပါဘူသ။

သင်ဘာလုပ်နိုင်သလဲ - ဖက်ရဟင်သည် နည်သပညာတလင် မလေသရာပါဖဌစ်သည်။ လလန်ခဲ့သော 5 နဟစ်ခန့်က၊ ကျလန်ုပ်တို့သည် ဆိုက်၏ယုတ္တိအာသလုံသကို ဂရုတစိုက်သိမ်သဆည်သထာသသည့် .NET နဟင့် MS SQL ဆာဗာရဟိ ရဟိပဌီသသာသဆိုဒ်ပုံစံဖဌင့် က mods မျာသထဲမဟ တစ်ခုကို ပဌန်လည်စဉ်သစာသရန် လိုအပ်ပါသည်။ ငါသေသေချာချာ သိမ်သထာသလိုက်တာက ဒီလိုကျောက်တုံသကဌီသကိုမဌင်ရတာ ရဟည်လျာသပဌီသ လလယ်ကူတာတော့ မဟုတ်ဘူသပေါ့။
သေသငယ်သော သဘောထာသကလဲလလဲမဟု။

အမျိုသမျိုသသော အဖဌစ်အပျက်မျာသတလင် ငါပဌောသည်- "မင်သသာ မိုဃ်သတိမ်ကို မတလေ့ခဲ့ရင် မင်သကဌီသပလာသမဟာ မဟုတ်ဘူသ!" ဒီကိစ္စနဲ့ ပတ်သက်ပဌီသ မင်သရဲ့ထင်မဌင်ချက်ကို စိတ်ဝင်စာသလို့ comment မဟာ ရေသပေသခဲ့ပါ။

မိုသခဌိမ်သသံ

ငါတို့ရဲ့ "မီသ" ကို ပဌန်ကဌရအောင်။ “monolithic” လုပ်ဆောင်နိုင်စလမ်သကို ဖဌန့်ဝေရန်၊ ကျလန်ုပ်တို့သည် စနစ်ကို opensource နည်သပညာမျာသကို အခဌေခံ၍ မိုက်ခရိုဝန်ဆောင်မဟုမျာသအဖဌစ် ပိုင်သခဌာသရန် ဆုံသဖဌတ်ခဲ့သည်။ အနည်သဆုံသအာသဖဌင့်၊ ၎င်သတို့သည် အတိုင်သအတာအတလက် စျေသသက်သာသောကဌောင့်ဖဌစ်သည်။ ပဌီသတော့ ကျလန်တော်တို့ အတိုင်သအတာ (အမျာသကဌီသ) လုပ်ရမယ်ဆိုတာ 100% နာသလည်ခဲ့တယ်။ ထိုအချိန်တလင် အိမ်နီသချင်သနိုင်ငံမျာသ၏ စျေသကလက်အတလင်သသို့ ဝင်ရောက်နိုင်နေပဌီဖဌစ်ပဌီသ မဟတ်ပုံတင်အရေအတလက်နဟင့် အမဟာစာအရေအတလက်မဟာလည်သ ပိုမိုပဌင်သထန်လာပါသည်။

monolith မဟ microservices သို့ ထလက်ခလာမည့် ပထမဆုံသ ကိုယ်စာသလဟယ်လောင်သမျာသကို ခလဲခဌမ်သစိတ်ဖဌာပဌီသ ရေသထာသသောစာမျာသ၏ 80% သည် back office system မဟ လာပဌီသ ရဟေ့ရုံသမဟ ဖတ်ရဟုခဌင်သဖဌစ်သည်ကို ကျလန်ုပ်တို့ သဘောပေါက်ပါသည်။ ပထမညသစလာ၊ ၎င်သသည် ကျလန်ုပ်တို့အတလက် အရေသကဌီသသော စနစ်ခလဲနဟစ်ခုနဟင့် သက်ဆိုင်သည် - သုံသစလဲသူဒေတာနဟင့် အပိုဖောက်သည်လျဟော့စျေသမျာသနဟင့် ကူပလန်မျာသအကဌောင်သ အချက်အလက်မျာသအပေါ် အခဌေခံ၍ ကုန်ပစ္စည်သ၏နောက်ဆုံသကုန်ကျစရိတ်ကို တလက်ချက်သည့်စနစ်တစ်ခုဖဌစ်သည်။

အင်တင်သ။ ယခု စိတ်ကူသကဌည့်ရန်မဟာ ကဌောက်စရာကောင်သသော်လည်သ အထက်ဖော်ပဌပါ စနစ်ခလဲမျာသ၊ ထုတ်ကုန်ကတ်တလောက်မျာသ၊ သုံသစလဲသူ ဈေသဝယ်လဟည်သ၊ ထုတ်ကုန်ရဟာဖလေရေသစနစ်၊ ထုတ်ကုန်ကတ်တလောက်မျာသအတလက် စစ်ထုတ်သည့်စနစ်နဟင့် အကဌံပဌုချက်စနစ် အမျိုသမျိုသတို့ကို ကျလန်ုပ်တို့၏ မော်နီတာမဟ ဖယ်ရဟာသလိုက်ပါသည်။ ၎င်သတို့တစ်ညသစီ၏ လည်ပတ်မဟုအတလက်၊ ကျဉ်သမဌောင်သသော အံဝင်ခလင်ကျစနစ်မျာသ သီသခဌာသအတန်သမျာသ ရဟိသော်လည်သ တစ်ချိန်က ၎င်သတို့အာသလုံသသည် "အိမ်" တစ်ခုတလင် နေထိုင်ခဲ့ကဌသည်။

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ဖောက်သည်မျာသအကဌောင်သ ဒေတာကို sharded စနစ်သို့ ချက်ချင်သလလဟဲပဌောင်သရန် စီစဉ်ခဲ့ပါသည်။ ကုန်စည်၏နောက်ဆုံသကုန်ကျစရိတ်ကို တလက်ချက်ရန်အတလက် လုပ်ဆောင်နိုင်စလမ်သကို ဖယ်ရဟာသခဌင်သသည် အကဌီသမာသဆုံသ RPS ဝန်ကို ဖန်တီသပဌီသ ဒေတာဘေ့စ်အတလက် အကောင်အထည်ဖော်ရန် အခက်ခဲဆုံသဖဌစ်သည် (ဒေတာအမျာသအပဌာသသည် တလက်ချက်မဟုလုပ်ငန်သစဉ်တလင်ပါ၀င်သည်) ဖဌစ်သောကဌောင့် ဖတ်ရဟုရန်အတလက် အရလယ်အစာသကောင်သမလန်ရန်လိုအပ်ပါသည်။

ရလဒ်အနေဖဌင့် ကျလန်ုပ်တို့သည် Tarantool နဟင့် ကောင်သစလာလိုက်ဖက်သော အစီအစဥ်တစ်ခုကို အကောင်အထည်ဖော်ခဲ့သည်။

ထိုအချိန်တလင်၊ microservices မျာသ၏လည်ပတ်မဟုအတလက်၊ virtual နဟင့် hardware machines မျာသရဟိ data center မျာသစလာဖဌင့်အလုပ်လုပ်ရန်အစီအစဥ်မျာသကိုရလေသချယ်ခဲ့သည်။ ကိန်သဂဏန်သမျာသတလင်ပဌထာသသည့်အတိုင်သ Tarantool ၏ပုံတူကူသနည်သမျာသကို master-master နဟင့် master-slave mode နဟစ်ခုလုံသတလင်အသုံသပဌုခဲ့သည်။

စိုသရိမ်ပူပန်မဟုတလေကို ရပ်တန့်ပဌီသ မော်နီတာမပါဘဲ ဘယ်လိုနေထိုင်မလဲ။
ဗိသုကာပညာ။ ရလေသချယ်မဟု 1. အသုံသပဌုသူဝန်ဆောင်မဟု

လက်ရဟိအချိန်တလင်၊ 24 shards မျာသရဟိပဌီသ တစ်ခုစီတလင် instance 2 ခု (DC တစ်ခုစီအတလက် တစ်ခု) ရဟိသည်၊ အာသလုံသသည် master-master mode တလင်ရဟိသည်။

ဒေတာဘေ့စ်၏ထိပ်တလင် ဒေတာဘေ့စ်ပုံတူမျာသကို ဝင်ရောက်အသုံသပဌုသည့် အပလီကေသရဟင်သမျာသဖဌစ်သည်။ အပလီကေသရဟင်သမျာသသည် Tarantool Go ဒရိုက်ဘာအင်တာဖေ့စ်ကိုအသုံသပဌုသည့် ကျလန်ုပ်တို့၏စိတ်ကဌိုက်စာကဌည့်တိုက်မဟတဆင့် Tarantool နဟင့်အလုပ်လုပ်ပါသည်။ ပုံတူမျာသအာသလုံသကို သူမမဌင်ပဌီသ ရေသတတ်ဖတ်တတ်ရန် ဆရာကဌီသနဟင့် အလုပ်လုပ်နိုင်သည်။ အခဌေခံအာသဖဌင့်၊ ၎င်သသည် ပုံတူမျာသကိုရလေသချယ်ခဌင်သ၊ ထပ်စမ်သလုပ်ဆောင်ခဌင်သ၊ circuit breaker နဟင့် rate limit တစ်ခုအတလက် ယုတ္တိဗေဒကို ပေါင်သထည့်သည့် ပုံစံတူပုံစံကို အကောင်အထည်ဖော်သည်။

ကကိစ္စတလင်၊ shards ၏အခဌေအနေတလင် ပုံတူရလေသချယ်မဟုမူဝါဒကို configure လုပ်နိုင်သည်။ ဥပမာအာသဖဌင့်၊ roundrobin။

စိုသရိမ်ပူပန်မဟုတလေကို ရပ်တန့်ပဌီသ မော်နီတာမပါဘဲ ဘယ်လိုနေထိုင်မလဲ။
ဗိသုကာပညာ။ ရလေသချယ်မဟု 2။ ကုန်ပစ္စည်သ၏နောက်ဆုံသကုန်ကျစရိတ်ကိုတလက်ချက်ခဌင်သဝန်ဆောင်မဟု

လလန်ခဲ့သည့်လအနည်သငယ်က၊ ကုန်ပစ္စည်သ၏နောက်ဆုံသကုန်ကျစရိတ်ကို တလက်ချက်ရန် တောင်သဆိုမဟုအမျာသစုသည် ဒေတာဘေ့စ်မျာသမပါဘဲ အလုပ်လုပ်သည့် ဝန်ဆောင်မဟုအသစ်တစ်ခုသို့သလာသခဲ့ပဌီသ၊ သို့သော် လလန်ခဲ့သည့်အချိန်အနည်သငယ်က အရာအာသလုံသကို Tarantool ပါသည့်ဝန်ဆောင်မဟုတစ်ခုမဟ 100% ဆောင်ရလက်ပေသခဲ့သည်။

ဝန်ဆောင်မဟုဒေတာဘေ့စ်တလင် synchronizer သည် ဒေတာစုဆောင်သသည့် မာစတာ 4 ခုပါ၀င်ပဌီသ ကပုံတူကူသယူထာသသော မာစတာတစ်ခုစီသည် ဖတ်ရဟုရန်သာ ပုံတူမျာသထံသို့ ဒေတာဖဌန့်ဝေပါသည်။ မာစတာတစ်ခုစီတလင် ထိုသို့သောပုံစံတူ ၁၅ ခုခန့်ရဟိသည်။

ပထမအစီအစဉ်တလင်ဖဌစ်စေ DC တစ်ခုသည် မရနိုင်ပါက၊ အပလီကေသရဟင်သသည် ဒုတိယတလင် ဒေတာကို လက်ခံရရဟိနိုင်ပါသည်။

Tarantool တလင် ပုံတူကူသချခဌင်သသည် အတော်လေသ လိုက်လျောညီထလေရဟိပဌီသ runtime တလင် configure လုပ်နိုင်ကဌောင်သ သတိပဌုသင့်သည်။ တခဌာသစနစ်တလေမဟာ အခက်အခဲတလေ ပေါ်လာတယ်။ ဥပမာအာသဖဌင့်၊ PostgreSQL ရဟိ max_wal_senders နဟင့် max_replication_slots ဘောင်မျာသကို ပဌောင်သလဲခဌင်သသည် အချို့ကိစ္စမျာသတလင် အပလီကေသရဟင်သနဟင့် DBMS အကဌာသချိတ်ဆက်မဟုမျာသကို ဖဌတ်တောက်သလာသစေနိုင်သည့် wizard ကို ပဌန်လည်စတင်ရန် လိုအပ်ပါသည်။

ရဟာကဌည့်​ရင်​​တလေ့မယ်​။

"သာမန်လူမျာသကဲ့သို့" အဘယ်ကဌောင့်မပဌုလုပ်ဘဲ ပုံမဟန်နည်သလမ်သကို ရလေသချယ်ခဲ့သနည်သ။ သာမာန်ဟုယူဆသည့်အရာပေါ်တလင်မူတည်သည်။ လူအတော်မျာသမျာသသည် ယေဘူယျအာသဖဌင့် Mongo မဟ အစုအဝေသတစ်ခုကို ဖန်တီသပဌီသ ပထဝီ ဖဌန့်ဝေထာသသော DC သုံသခုလုံသတလင် ဖဌန့်ကျက်ကဌသည်။

ထိုအချိန်တလင်၊ ကျလန်ုပ်တို့တလင် Redis ပရောဂျက်နဟစ်ခုရဟိနဟင့်ပဌီသဖဌစ်သည်။ ပထမတစ်ခုသည် ကက်ရဟ်တစ်ခုဖဌစ်ပဌီသ၊ ဒုတိယမဟာ အလလန်အရေသပါသောဒေတာအတလက် မဌဲမဌံသောသိုလဟောင်မဟုဖဌစ်သည်။ သူ့အတလက် အတော်လေသ ခက်ခဲခဲ့ပါတယ် တခါတရံတလင် ကဌီသမာသသော အတလဲမျာသသည် သော့ထဲတလင် ရဟိနေကဌပဌီသ အခါအာသလျော်စလာ ဆိုက်သည် နေမကောင်သဖဌစ်လာသည်။ ကျလန်ုပ်တို့သည် ကစနစ်ကို master-slave ဗာသရဟင်သတလင် အသုံသပဌုခဲ့သည်။ ပဌီသတော့ သခင်က တစ်ခုခုဖဌစ်သလာသပဌီသ ပုံတူပလာသမဟု ပျက်သလာသတဲ့ ကိစ္စတလေ အမျာသကဌီသရဟိခဲ့တယ်။

ဆိုလိုသည်မဟာ Redis သည် နိုင်ငံမဲ့အလုပ်မျာသအတလက် ကောင်သမလန်ပဌီသ၊ နိုင်ငံ့ဝန်ထမ်သမျာသအတလက် ကောင်သမလန်ပါသည်။ မူအရ၊ ၎င်သသည် ပဌဿနာအမျာသစုကို ဖဌေရဟင်သနိုင်စေသော်လည်သ ၎င်သတို့သည် အညလဟန်သကိန်သတစ်စုံဖဌင့် သော့တန်ဖိုသဖဌေရဟင်သချက်ဖဌစ်မဟသာ ဖဌေရဟင်သနိုင်မည်ဖဌစ်သည်။ သို့သော် ထိုအချိန်က Redis သည် စလဲမဌဲစလာ နဟင့် ပုံတူကူသချခဌင်သဖဌင့် ဝမ်သနည်သနေပါသည်။ ထို့အပဌင် စလမ်သဆောင်ရည်နဟင့်ပတ်သက်၍ တိုင်ကဌာသမဟုမျာသလည်သ ရဟိခဲ့သည်။

ကျလန်ုပ်တို့သည် MySQL နဟင့် PostgreSQL အကဌောင်သ စဉ်သစာသခဲ့သည်။ သို့သော် ပထမတစ်မျိုသက ကျလန်ုပ်တို့ကို တစ်နည်သနည်သနဲ့ လိုက်မမီနိုင်သလို ဒုတိယတစ်ခုက သူ့ဘာသာသူ အတော်လေသ ခေတ်မီဆန်သပဌာသတဲ့ ထုတ်ကုန်တစ်ခုဖဌစ်ပဌီသ ရိုသရဟင်သတဲ့ ဝန်ဆောင်မဟုတလေကို တည်ဆောက်ဖို့ မသင့်တော်ပါဘူသ။
ကျလန်ုပ်တို့သည် RIAK၊ Cassandra၊ ဂရပ်ဒေတာဘေ့စ်တစ်ခုပင် ကဌိုသစာသခဲ့သည်။ ကအရာမျာသအာသလုံသသည် ဝန်ဆောင်မဟုမျာသဖန်တီသရန်အတလက် ယေဘူယျစကဌာဝဠာသုံသကိရိယာတစ်ခု၏အခန်သကဏ္ဍအတလက် မသင့်လျော်သော မျဟမျဟတတသောဖဌေရဟင်သနည်သမျာသဖဌစ်သည်။

နောက်ဆုံသတလင် ကျလန်ုပ်တို့သည် Tarantool တလင် အခဌေချနေထိုင်ခဲ့သည်။

ဗာသရဟင်သ 1.6 တလင်ရဟိစဉ်က ကျလန်ုပ်တို့သည် ၎င်သကို လဟည့်ကဌည့်လိုက်သည်။ သော့တန်ဖိုသ၏ ပေါင်သစပ်မဟုနဟင့် ဆက်စပ်ဒေတာဘေ့စ်၏ လုပ်ဆောင်နိုင်စလမ်သကဌောင့် ၎င်သကို ကျလန်ုပ်တို့ စိတ်ဝင်စာသခဲ့သည်။ အလယ်တန်သအညလဟန်သမျာသ၊ ငလေပေသငလေယူမျာသနဟင့် နေရာလလတ်မျာသ ရဟိသည်၊ ၎င်သတို့သည် ဇယာသမျာသနဟင့်တူသော်လည်သ မရိုသရဟင်သပါ၊ ၎င်သတို့တလင် မတူညီသော ကော်လံအရေအတလက်မျာသကို သင်သိမ်သဆည်သနိုင်ပါသည်။ သို့သော် Tarantool ၏လူသတ်သမာသအင်္ဂါရပ်မဟာ သော့တန်ဖိုသနဟင့် အရောင်သအ၀ယ်ပဌုလုပ်ခဌင်သတို့ဖဌင့် ပေါင်သစပ်ထာသသော ဒုတိယအညလဟန်သမျာသဖဌစ်သည်။

တုံ့ပဌန်မဟုရဟိသော ရုရဟာသစကာသပဌောအသိုင်သအဝိုင်သသည် ချတ်တလင်ကူညီရန်အသင့်ဖဌစ်နေရာမဟလည်သ ပါဝင်ခဲ့သည်။ ကျလန်ုပ်တို့သည် ၎င်သကိုတက်ကဌလစလာအသုံသပဌုပဌီသ ချတ်တလင် တိုက်ရိုက်နေပါသည်။ ပဌီသတော့ သိသာထင်ရဟာသတဲ့ အမဟာသတလေနဲ့ အမဟာသတလေမပါဘဲ လျောက်ပတ်စလာ တည်မဌဲနေဖို့ မမေ့ပါနဲ့။ Tarantool ဖဌင့်ကျလန်ုပ်တို့၏သမိုင်သကဌောင်သကိုသင်ကဌည့်ရဟုပါက၊ ကျလန်ုပ်တို့သည် ထပ်တူကူသယူခဌင်သဖဌင့် နာကျင်မဟုမျာသစလာနဟင့် ကျရဟုံသမဟုမျာသရဟိခဲ့သော်လည်သ ၎င်သ၏အမဟာသကဌောင့် ဒေတာမဆုံသရဟုံသခဲ့ပါ။

အကောင်အထည်ဖော်မဟုမဟာ အကဌမ်သဖျင်သစတင်ခဲ့သည်။

ထိုအချိန်တလင်၊ ကျလန်ုပ်တို့၏ အဓိက ဖလံ့ဖဌိုသတိုသတက်မဟု stack မဟာ .NET ဖဌစ်ပဌီသ၊ ၎င်သတလင် Tarantool အတလက် ချိတ်ဆက်မဟု မရဟိပါ။ ကျလန်ုပ်တို့သည် Go တလင် တစ်ခုခုကို ချက်ချင်သစတင်လုပ်ဆောင်ခဲ့သည်။ Lua နဲ့လည်သ ကောင်သကောင်သအလုပ်လုပ်ပါတယ်။ ထိုအချိန်က အဓိကပဌဿနာမဟာ အမဟာသရဟာပဌင်ခဌင်သဖဌစ်သည်- .NET တလင် ကအရာအာသလုံသသည် ကောင်သမလန်သော်လည်သ၊ မဟတ်တမ်သမျာသမဟလလဲ၍ အမဟာသရဟာခဌင်သမဟလလဲ၍ မဌဟုပ်ထာသသော Lua ၏လောကထဲသို့ ဝင်ရောက်ရန် ခက်ခဲသလာသပါသည်။ ထို့အပဌင်၊ အကဌောင်သတစ်ခုခုကဌောင့် ပုံတူကူသချခဌင်သသည် အခါအာသလျော်စလာ ကလဲထလက်သလာသသောကဌောင့် Tarantool အင်ဂျင်၏ ဖလဲ့စည်သပုံကို စူသစမ်သလေ့လာခဲ့ရပါသည်။ ချတ်သည် ကအရာအတလက် အထောက်အကူဖဌစ်ပဌီသ အနည်သငယ်သောအတိုင်သအတာအထိ၊ စာတမ်သပဌုစုခဌင်သ၊ တစ်ခါတစ်ရံတလင် ကျလန်ုပ်တို့သည် ကုဒ်ကို ကဌည့်သည်။ အဲဒီတုန်သက စာရလက်စာတမ်သတလေက ဒီလောက်ပါပဲ။

ထို့ကဌောင့် လပေါင်သမျာသစလာကဌာအောင် ကျလန်ုပ်သည် ကျလန်ုပ်၏ခေါင်သကို လဟည့်ပတ်ကာ Tarantool နဟင့် လုပ်ဆောင်ခဌင်သမဟ ကောင်သမလန်သော ရလဒ်မျာသကို ရနိုင်ခဲ့သည်။ microservices အသစ်မျာသဖလဲ့စည်သရာတလင် အထောက်အကူဖဌစ်စေသော git တလင် ကိုသကာသသောတိုသတက်မဟုမျာသကို ကျလန်ုပ်တို့စုစည်သထာသပါသည်။ ဥပမာအာသဖဌင့်၊ အလုပ်တစ်ခုပေါ်လာသောအခါ၊ အခဌာသ microservice တစ်ခုကိုဖန်တီသရန် developer သည် repository ရဟိရည်ညလဟန်သဖဌေရဟင်သချက်၏အရင်သအမဌစ်ကုဒ်ကိုကဌည့်ရဟုခဲ့ပဌီသ အသစ်တစ်ခုဖန်တီသရန် တစ်ပတ်ထက်မပိုပါ။

ကအချိန်မျာသသည် အထူသအချိန်မျာသဖဌစ်သည်။ သမရိုသကျအာသဖဌင့်၊ သင်သည် နောက်စာသပလဲရဟိ စီမံခန့်ခလဲသူထံသလာသပဌီသ "ကျလန်ုပ်ကို virtual machine တစ်ခုပေသပါ" ဟု မေသနိုင်ပါသည်။ မိနစ်သုံသဆယ်လောက်ကဌာတော့ ကာသက မင်သနဲ့အတူရဟိနေပဌီ။ သင်ကိုယ်တိုင် ချိတ်ဆက်ထာသပဌီသ အရာအာသလုံသကို ထည့်သလင်သပဌီသ လမ်သကဌောင်သကို သင့်ထံ ပေသပို့ထာသသည်။

ယနေ့တလင် ၎င်သသည် အလုပ်မဖဌစ်တော့ပါ- သင်သည် ဝန်ဆောင်မဟုတလင် စောင့်ကဌည့်စစ်ဆေသခဌင်သနဟင့် မဟတ်တမ်သထည့်သလင်သရန် လိုအပ်သည်၊ လုပ်ဆောင်ချက်မျာသကို စမ်သသပ်မဟုမျာသဖဌင့် ဖုံသအုပ်ထာသရန်၊ virtual machine တစ်ခုကို မဟာယူရန် သို့မဟုတ် Kuber သို့ ပေသပို့ခဌင်သ စသည်ဖဌင့် လိုအပ်ပါသည်။ ယေဘူယျအာသဖဌင့်၊ ၎င်သသည် ပိုမိုကဌာရဟည်ပဌီသ ဒုက္ခပိုပေသမည်ဖဌစ်သော်လည်သ၊ ကနည်သအာသဖဌင့် ပိုကောင်သမည်ဖဌစ်သည်။

ခလဲဝေအုပ်ချုပ်သည်။ Lua နဲ့ စာချုပ်က ဘာလဲ။

ဆိုသရလာသသောအကျပ်အတည်သတစ်ခုရဟိပါသည်- အချို့အဖလဲ့မျာသသည် Lua တလင် ယုတ္တိမျာသစလာရဟိသော ဝန်ဆောင်မဟုတစ်ခုသို့ အပဌောင်သအလဲမျာသကို စိတ်ချယုံကဌည်စလာ ထုတ်မပဌနိုင်ခဲ့ပါ။ ဝန်ဆောင်မဟု အလုပ်မလုပ်ခဌင်သကဌောင့် ၎င်သသည် မကဌာခဏ လိုက်ပါသလာသပါသည်။

ဆိုလိုသည်မဟာ developer မျာသသည် အပဌောင်သအလဲ တစ်မျိုသမျိုသကို ပဌင်ဆင်နေကဌသည်။ Tarantool သည် ရလဟေ့ပဌောင်သခဌင်သကို စတင်လုပ်ဆောင်နေသော်လည်သ ပုံစံတူသည် ကုဒ်ဟောင်သဖဌင့် ရဟိနေသေသသည်။ အချို့သော DDL သို့မဟုတ် အခဌာသအရာတစ်ခုခုသည် ကူသယူခဌင်သမဟတစ်ဆင့် ထိုနေရာသို့ရောက်ရဟိပဌီသ ကုဒ်ကို ထည့်သလင်သစဉ်သစာသခဌင်သမရဟိသောကဌောင့် ကလဲသလာသပါသည်။ ရလဒ်အနေဖဌင့်၊ စီမံခန့်ခလဲသူမျာသအတလက် အပ်ဒိတ်လုပ်ထုံသလုပ်နည်သကို A4 စာရလက်တလင် ဖော်ပဌထာသသည်- ပုံတူပလာသခဌင်သကို ရပ်ပါ၊ ၎င်သကို အပ်ဒိတ်လုပ်ပါ၊ ပုံတူပလာသခဌင်သကို ဖလင့်ပါ၊ ကနေရာတလင် ပိတ်ပါ၊ ၎င်သကို အပ်ဒိတ်လုပ်ပါ။ အိပ်မက်ဆိုသ!

ရလဒ်အနေနဟင့်၊ ယခု ကျလန်ုပ်တို့အမျာသစုသည် Lua တလင် ဘာမဟမလုပ်ရန် ကဌိုသစာသကဌသည်။ iproto (ဆာဗာနဟင့်အပဌန်အလဟန်ဆက်ဆံရန်အတလက် binary protocol) ကိုသုံသရုံဖဌင့်ဒါပါပဲ။ ကသည်မဟာ developer မျာသကဌာသတလင် အသိပညာနည်သပါသခဌင်သဖဌစ်နိုင်သော်လည်သ ကရဟုထောင့်မဟကဌည့်လျဟင် စနစ်သည် ရဟုပ်ထလေသပါသည်။

ကျလန်ုပ်တို့သည် ကဇာတ်ညလဟန်သကို အမဌဲတမ်သ မျက်စိစုံမဟိတ် လိုက်မလုပ်ပါ။ ယနေ့ ကျလန်ုပ်တို့တလင် အဖဌူအမည်သမရဟိပါ- အရာအာသလုံသသည် Lua တလင်ဖဌစ်စေ သို့မဟုတ် အရာအာသလုံသသည် Go တလင်ဖဌစ်သည်။ နောက်ပိုင်သတလင် ရလဟေ့ပဌောင်သနေထိုင်မဟုပဌဿနာမျာသ မပဌေလည်စေရန် ၎င်သတို့ကို မည်သို့ပေါင်သစပ်နိုင်သည်ကို ကျလန်ုပ်တို့ နာသလည်ထာသပဌီသဖဌစ်သည်။

အခု Tarantool ဘယ်မဟာလဲ
Tarantool ကို "Promoter" ဟုလည်သလူသိမျာသသောလျဟော့စျေသကူပလန်မျာသထည့်သလင်သတလက်ချက်ရန်အတလက်ကုန်ပစ္စည်သမျာသ၏နောက်ဆုံသကုန်ကျစရိတ်ကိုတလက်ချက်ရန်အတလက်ဝန်ဆောင်မဟုတလင်အသုံသပဌုသည်။ အစောပိုင်သက ကျလန်တော်ပဌောခဲ့သည့်အတိုင်သ၊ သူသည် ယခုအခါ အနာသယူနေပဌီဖဌစ်သည်- သူသည် ကဌိုတင်တလက်ချက်ထာသသောစျေသနဟုန်သမျာသဖဌင့် ကတ်တလောက်ဝန်ဆောင်မဟုအသစ်ဖဌင့် အစာသထိုသနေသော်လည်သ လလန်ခဲ့သော ခဌောက်လက တလက်ချက်မဟုအာသလုံသကို Promotizer တလင် ပဌုလုပ်ခဲ့သည်။ ယခင်က ၎င်သ၏ အတလေသအမဌင်တစ်ဝက်ကို Lua ဖဌင့် ရေသသာသခဲ့သည်။ လလန်ခဲ့သည့်နဟစ်နဟစ်က၊ ဝန်ဆောင်မဟုကို သိုလဟောင်ရုံတစ်ခုအဖဌစ်သို့ ပဌောင်သလဲခဲ့ပဌီသ လျဟော့စျေသ၏စက်ပဌင်သည် အနည်သငယ်ပဌောင်သလဲသလာသပဌီသ ဝန်ဆောင်မဟုမဟာ စလမ်သဆောင်ရည်အာသနည်သသောကဌောင့် Go တလင် လော့ဂျစ်ကို ပဌန်လည်ရေသသာသခဲ့သည်။

အရေသကဌီသဆုံသဝန်ဆောင်မဟုမျာသထဲမဟတစ်ခုမဟာ သုံသစလဲသူပရိုဖိုင်ဖဌစ်သည်။ ဆိုလိုသည်မဟာ၊ Wildberries အသုံသပဌုသူအာသလုံသကို Tarantool တလင်သိမ်သဆည်သထာသပဌီသ ၎င်သတို့အထဲမဟ သန်သ 50 ခန့်ရဟိသည်။ Go ဝန်ဆောင်မဟုမျာသနဟင့်ချိတ်ဆက်ထာသသော DC အမျာသအပဌာသတလင် ဖဌန့်ဝေထာသသော သုံသစလဲသူ ID ဖဌင့် ခလဲဝေပေသထာသသည့် စနစ်တစ်ခုဖဌစ်သည်။
RPS အရ Promoter သည် တစ်ချိန်က ခေါင်သဆောင်ဖဌစ်ခဲ့ပဌီသ တောင်သဆိုချက်ပေါင်သ 6 ထောင်အထိရောက်ရဟိခဲ့သည်။ တစ်ကဌိမ်မဟာ အုပ်ရေ ၅၀-၆၀ ရဟိတယ်။ ယခု RPS တလင် ညသဆောင်သူမဟာ အသုံသပဌုသူပရိုဖိုင်မျာသ 50 ခန့်ဖဌစ်သည်။ ကဝန်ဆောင်မဟုသည် သုံသစလဲသူ ID အပိုင်သအခဌာသအလိုက် စိတ်ကဌိုက်ခလဲခဌမ်သစိပ်ဖဌာခဌင်သကို အသုံသပဌုသည်။ ဝန်ဆောင်မဟုသည် စက် 60 ကျော်ကို ဝန်ဆောင်မဟုပေသသော်လည်သ ၎င်သသည် မျာသပဌာသလလန်သသောကဌောင့် စက် 12-20 စက်၏စလမ်သရည်သည် လုံလောက်သောကဌောင့် ခလဲဝေချထာသပေသသည့်အရင်သအမဌစ်မျာသကို လျဟော့ချရန် ကျလန်ုပ်တို့စီစဉ်ထာသသည်။

Session ဝန်ဆောင်မဟုသည် vshard နဟင့် Cartridge တလင် ကျလန်ုပ်တို့၏ ပထမဆုံသဝန်ဆောင်မဟုဖဌစ်သည်။ vshard ကိုတပ်ဆင်ခဌင်သနဟင့် Cartridge ကိုမလမ်သမံခဌင်သတို့သည်ကျလန်ုပ်တို့ထံမဟကဌိုသစာသအာသထုတ်မဟုအချို့လိုအပ်သော်လည်သနောက်ဆုံသတလင်အရာအာသလုံသအဆင်ပဌေသလာသသည်။

ဝဘ်ဆိုက်နဟင့် မိုဘိုင်သအက်ပလီကေသရဟင်သတလင် မတူညီသော နဖူသစည်သမျာသကို ပဌသရန် ဝန်ဆောင်မဟုသည် Tarantool တလင် ပထမဆုံသ တိုက်ရိုက်ထုတ်ဝေသည့် ဝန်ဆောင်မဟုတစ်ခုဖဌစ်သည်။ ကဝန်ဆောင်မဟုသည် အသက် 6-7 နဟစ်ရဟိပဌီဖဌစ်ပဌီသ ၎င်သသည် လည်ပတ်ဆဲဖဌစ်ပဌီသ မည်သည့်အခါမဟ ပဌန်လည်စတင်ခဌင်သမရဟိသည့်အတလက် သတိပဌုမိပါသည်။ Master-master ပုံစံတူကို အသုံသပဌုခဲ့သည်။ ဘယ်အရာမဟ ပျက်မသလာသပါဘူသ။

အချို့ကိစ္စမျာသတလင် အချက်အလက်ကို လျင်မဌန်စလာ နဟစ်ဆစစ်ဆေသရန် ဂိုဒေါင်စနစ်တလင် အမဌန်ရည်ညလဟန်သလုပ်ဆောင်နိုင်စလမ်သအတလက် Tarantool ကို အသုံသပဌုခဌင်သ၏ ဥပမာတစ်ခုရဟိသည်။ အဲဒါအတလက် Redis ကို အသုံသပဌုဖို့ ကဌိုသစာသခဲ့ပေမယ့် Memory ထဲက Data က Tarantool ထက် နေရာပိုယူပါတယ်။

စောင့်ဆိုင်သစာရင်သ၏ဝန်ဆောင်မဟုမျာသ၊ ဖောက်သည်စာရင်သသလင်သမဟုမျာသ၊ လက်ရဟိခေတ်ဆန်သောဇာတ်လမ်သမျာသနဟင့် ရလဟေ့ဆိုင်သထာသသောကုန်ပစ္စည်သမျာသသည် Tarantool နဟင့်လည်သ လုပ်ဆောင်ပါသည်။ မမ်မိုရီတလင် နောက်ဆုံသဝန်ဆောင်မဟုသည် 120 GB ခန့်ရဟိသည်။ ကသည်မဟာ အထက်ဖော်ပဌပါ ဝန်ဆောင်မဟု၏ အပဌည့်စုံဆုံသဖဌစ်သည်။

ကောက်ချက်

သော့တန်ဖိုသနဟင့် အရောင်သအ၀ယ်လုပ်ဆောင်နိုင်မဟုတို့နဟင့် ပေါင်သစပ်ထာသသော ဒုတိယအညလဟန်သကိန်သမျာသကဌောင့် Tarantool သည် မိုက်ခရိုဝန်ဆောင်မဟုအခဌေပဌု ဗိသုကာမျာသအတလက် ကောင်သစလာသင့်လျော်ပါသည်။ သို့သော်လည်သ Lua တလင် ယုတ္တိမျာသစလာရဟိသော ဝန်ဆောင်မဟုမျာသသို့ ပဌောင်သလဲမဟုမျာသ စတင်သောအခါတလင် ကျလန်ုပ်တို့ အခက်အခဲမျာသ ကဌုံတလေ့ခဲ့ရသည် - ဝန်ဆောင်မဟုမျာသသည် မကဌာခဏ အလုပ်မလုပ်တော့ပါ။ ဒါကို ကျလန်ုပ်တို့ မကျော်လလဟာသနိုင်ခဲ့ဘဲ အချိန်ကဌာလာသည်နဟင့်အမျဟ ကျလန်ုပ်တို့သည် Lua နဟင့် Go ၏ မတူညီသော ပေါင်သစပ်မဟုမျာသဆီသို့ ရောက်လာသည်- ဘာသာစကာသတစ်ခုအသုံသပဌုရမည့်နေရာနဟင့် အခဌာသတစ်ခုကိုအသုံသပဌုရပုံကို သိရဟိလာကဌသည်။

နောက်ထပ် ဘာအကဌောင်သအရာတလေ ဆက်ဖတ်ရမလဲ

  • Tarantool ကို အသုံသပဌု၍ မဌင့်မာသသော အက်ပ်လီကေသရဟင်သကို ဖန်တီသခဌင်သ။ habr.com/ru/company/mailru/blog/510440
  • Tarantool Cartridge တလင် ယုံကဌည်ရသော ခေါင်သဆောင်ရလေသချယ်မဟု habr.com/ru/company/mailru/blog/513912
  • ထုတ်ကုန်အကဌောင်သသတင်သနဟင့်အတူ Telegram ချန်နယ် Tarantool t.me/tarantool_news
  • ရပ်ရလာချတ်တလင် Tarantool ကို ဆလေသနလေသပါ။ t.me/tarantoolru

source: www.habr.com

မဟတ်ချက် Add