Buffer တွင် ကျွန်ုပ်တို့၏စနစ်များ၏ အစိတ်အပိုင်းများ နောက်ကွယ်မှ ဆက်သွယ်ပုံအား ရှင်းလင်းရန် မကြာသေးမီက ပရောဂျက်ငယ်တစ်ခုကို စတင်ခဲ့သည်။ အချို့သော အမြန်အကြောင်းအရာ- SQS (Amazon Simple Queue Service) ဟုခေါ်သည့် အရာများကို အသုံးပြုပါသည်။ ဤတန်းစီများသည် အလုပ်များအတွက် စောင့်ဆိုင်းခန်းများကဲ့သို့ လုပ်ဆောင်သည်။ ကျွန်ုပ်တို့၏ စနစ်၏ အစိတ်အပိုင်းတစ်ခုသည် မက်ဆေ့ချ်ကျသွားပြီး နောက်တစ်ခုက ၎င်းကို ကောက်ယူပါသည်။ ၎င်းကို လုပ်ဖော်ကိုင်ဖက်တစ်ဦးအတွက် မှတ်စုတစ်ခုချန်ထားသလိုမျိုး တွေးကြည့်ပါ- "ဟေး၊ ဤစနစ်သည် အခွင့်အရေးရလာသည့်အခါတွင်" လုပ်ငန်းစဉ်ကို ရရှိနိုင်မည်ဖြစ်သည်။ တုံ့ပြန်မှုကို စောင့်ရန် ကျွန်ုပ်တို့၏ပရောဂျက်သည် ပုံမှန်ပြုပြင်ထိန်းသိမ်းမှုလုပ်ဆောင်ရန်ဖြစ်သည်- ကျွန်ုပ်တို့အသုံးပြုသည့် စက်များကို စက်တွင်းရှိ စီတန်းများကို စမ်းသပ်ရန်နှင့် ၎င်းတို့၏ဖွဲ့စည်းပုံကို ရှင်းထုတ်ရန် ကျွန်ုပ်တို့အသုံးပြုသည့် ကိရိယာများကို အပ်ဒိတ်လုပ်ပါ။ သို့သော် ကျွန်ုပ်တို့ အမှန်တကယ်အသုံးပြုနေသည့် စီတန်းများကို မြေပုံထုတ်နေစဉ်တွင် ကျွန်ုပ်တို့မထင်မှတ်ထားသော အရာတစ်ခုကို တွေ့ရှိခဲ့သည်- မတူညီသော နောက်ခံလုပ်ငန်းစဉ် ခုနစ်ခု (သို့မဟုတ် အလိုအလျောက်လုပ်ဆောင်သည့် အလုပ်များကို စီစဉ်ထားသည့် cron အလုပ်များ) နှင့် ၎င်းတို့ကို မည်သည့်အတွက်ကြောင့်မျှ တိတ်တဆိတ်လုပ်ဆောင်နေကြသော အလုပ်သမားများ အရေးမကြီးဘူး၊ အဲဒါတွေကို ဘယ်လိုရှာတွေ့ခဲ့သလဲ၊ အဲဒါကို ငါတို့ဘာလုပ်ခဲ့လဲ။ မင်းထင်ထားတာထက် ဘာကြောင့် ပိုအရေးကြီးတာလဲ ဟုတ်ပါတယ်၊ မလိုအပ်တဲ့ အခြေခံအဆောက်အအုံတွေ ကုန်ကျတဲ့ငွေကို ငါ အမြန်တွက်ချက်ပြီး အဲဒီအလုပ်သမားတွေထဲက တစ်ယောက်အတွက်၊ ငါတို့ဟာ 5 နှစ်ကျော်မှာ ~ $360-600 ပေးချေရလိမ့်မယ်။ ကုန်ကျစရိတ်သည် အမှန်တကယ်တွင် ပြဿနာ၏အသေးဆုံးအပိုင်းဖြစ်သည်။ အင်ဂျင်နီယာအသစ်သည် အဖွဲ့နှင့်ပူးပေါင်းပြီး ကျွန်ုပ်တို့၏စနစ်များကို စူးစမ်းသည့်အခါတိုင်း ၎င်းတို့သည် ဤလျှို့ဝှက်ဆန်းကြယ်သည့်လုပ်ငန်းစဉ်များကို ကြုံတွေ့ရသည့်အခါ "ဤအလုပ်သမားသည် မည်သည့်အရာလုပ်ဆောင်သနည်း" ဟူသော မေးခွန်းတစ်ခုဖြစ်လာပြီး မသေချာမရေရာမှုများဖြစ်စေသော ကုဒ်အပိုင်းအစများကို စိုက်ကြည့်ရင်း၊ ၎င်းကို ထိရမှာကြောက်ပါသည်။ အခြားအရာတစ်ခုခုပြောင်းလဲသောအခါတွင် လိုက်ဖက်ညီမှုရှိခြင်းသည် ကျွန်ုပ်တို့၏အဖွဲ့သည် ရည်ရွယ်ချက်မရှိသော ကုဒ်လမ်းကြောင်းများပေါ်တွင် ပြုပြင်ထိန်းသိမ်းမှုအသုံးစရိတ်ကို ဖြစ်ပေါ်စေပါသည်။ အချိန်ကြာလာသည်နှင့်အမျှ၊ အဖွဲ့အစည်းဆိုင်ရာအသိပညာများ ပျောက်ကွယ်သွားသည်မှာ အရေးကြီးသော ယာယီပြင်ဆင်မှုတစ်ခု ဖြစ်ပါသလား။ ရပ်ဆိုင်းထားသော်လည်း ၎င်းကို ပံ့ပိုးပေးသည့် နောက်ခံအလုပ်သည် ဆက်လက်လည်ပတ်နေပါသည်။ တစ်စုံတစ်ဦးသည် ရွှေ့ပြောင်းခြင်းကို ကိုင်တွယ်ရန် အလုပ်သမားတစ်ဦးအား "ယာယီ" လှည့်သွားကာ ဗိသုကာဆိုင်ရာ ပြောင်းလဲမှုတစ်ခုပြီးနောက် အစီအစဉ်ဆွဲထားသော အလုပ်တစ်ခုသည် ထပ်၍မဖြစ်တော့ဘဲ မည်သူမျှ စစ်ဆေးရန်မထင်ပါ။ ကျွန်ုပ်တို့သည် မွေးနေ့ပွဲကျင်းပမည့် အီးမေးလ်များကို ပေးပို့လေ့ရှိပါသည်။ ၎င်းကိုလုပ်ဆောင်ရန် ရက်ချိန်းတစ်ခုလုံးကို Buffer တွင် စစ်ဆေးပါသည်။ 2020 ခုနှစ်အတွင်း စိတ်ကြိုက်ပြင်ဆင်ထားသော အီးမေးလ်ကို refactor တစ်ခုအတွင်း ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ အရောင်းအ၀ယ်အီးမေးလ်တူးလ်ကို ပြောင်းလိုက်သော်လည်း ဤလုပ်သားကို ဖယ်ရှားရန် မေ့သွားသည်—၎င်းသည် နောက်ထပ်ငါးနှစ်ကြာ ဆက်လက်လည်ပတ်နေပါသည်။ ၎င်းတို့အားလုံးသည် တစ်ဦးချင်း၏မအောင်မြင်မှုများဖြစ်သည် — ၎င်းတို့သည် ကျွန်ုပ်တို့၏လုပ်ဆောင်ပုံတွင် ရည်ရွယ်ချက်ရှိရှိ သန့်စင်မှုမရှိဘဲ၊ entropy သည် အောင်မြင်မှုဖြစ်သည်။ ကျွန်ုပ်တို့၏ဗိသုကာလက်ရာသည် ကုမ္ပဏီများစွာကဲ့သို့ပင် လူကြိုက်များသော microservice လှုပ်ရှားမှုကို ကုမ္ပဏီများစွာထံ ချဉ်းကပ်ပုံက ကျွန်ုပ်တို့ကို တွေ့ရှိခဲ့သည်။ အမှီအခိုကင်းသော ဝန်ဆောင်မှုများ) လွန်ခဲ့သည့်နှစ်များက ကျွန်ုပ်တို့သည် ကျွန်ုပ်တို့၏ monolith ကို သီးခြားဝန်ဆောင်မှုများအဖြစ် ပိုင်းခြားထားပြီး၊ တစ်ခုစီတွင် ၎င်း၏ကိုယ်ပိုင်သိုလှောင်မှု၊ ဖြန့်ကျက်မှုပိုက်လိုင်းနှင့် အခြေခံအဆောက်အဦများပါရှိပြီး ထိုအချိန်တွင်၊ ဝန်ဆောင်မှုတစ်ခုစီကို အဖွဲ့များကြားတွင် ရှင်းရှင်းလင်းလင်းနယ်နိမိတ်များဖြင့် ၎င်း၏ကိုယ်ပိုင်အဖြစ် အသုံးချနိုင်ခဲ့သည်။ သို့သော် နှစ်များတစ်လျှောက်တွင် သိုလှောင်ရာဒါဇင်များစွာကို စီမံခန့်ခွဲခြင်း၏ အကျုံးဝင်မှုကို တွေ့ရှိခဲ့သည်။ ထို့ကြောင့် တစ်ခုတည်းသော ဝန်ဆောင်မှုများကို စုစည်းထားဆဲဖြစ်သည်။ ယုတ္တိနယ်နိမိတ်များအဖြစ် ၎င်းတို့သည် တစ်နေရာတည်းတွင် အတူတကွနေထိုင်ကြသည်။ ဤအရာသည် ရှာဖွေတွေ့ရှိမှုဖြစ်လာခဲ့သည်။ အသေးစားဝန်ဆောင်မှုလောကတွင်၊ သိုလှောင်မှုတစ်ခုစီသည် ၎င်း၏ကျွန်းတစ်ကျွန်းဖြစ်ပြီး အခြားတစ်ခုတွင်အလုပ်လုပ်နေသော အင်ဂျင်နီယာများက မည်သည့်အခါမျှ သတိပြုမိမည်မဟုတ်ပေ။ မည်သည့်နေရာတွင် လုပ်ဆောင်နေသည်များကို တစ်စုတစ်စည်းတည်းကြည့်ရှုနိုင်ခြင်းမရှိပေ။ ထုတ်လုပ်သူများ၊ ထုတ်လုပ်သူများနှင့် တန်းစီနေခြင်းများကို တွေ့ရှိနိုင်သော်လည်း စားသုံးသူများမရှိတော့သော လုပ်သားများကို ရည်ညွှန်းသည့် တန်းစီခြင်းများကို ရှာတွေ့နိုင်ပါသည်။ စုစည်းမှုသည် ကျွန်ုပ်တို့အား ဖုတ်ကောင်အခြေခံအဆောက်အအုံကို ရှာဖွေရာတွင် အထောက်အကူဖြစ်စေရန် ရည်ရွယ်ထားခြင်းမဟုတ်ပေ။ရှာဖွေတွေ့ရှိမှုမှာ မလွှဲမရှောင်သာ ဖြစ်နေပါသည်။ ကျွန်ုပ်တို့ အမှန်တကယ် ပြုမူခဲ့သည့် မိဘမဲ့ ဖြစ်စဉ်များကို သိရှိပြီးသည်နှင့် ၎င်းတို့နှင့် မည်သို့ လုပ်ဆောင်ရမည်ကို ဆုံးဖြတ်ရမည်ဖြစ်ပါသည်။ အဲဒါကို ကျွန်တော်တို့ ချဉ်းကပ်ပုံက ဒီလိုပါ။ ပထမဦးစွာ၊ တစ်ခုချင်းစီကို သူ့ရဲ့ဇာစ်မြစ်ကို ခြေရာခံပါတယ်။ အလုပ်သမားတစ်ဦးစီကို အဘယ်ကြောင့် ပထမနေရာတွင် ဖန်တီးထားသည်ကို နားလည်ရန် git မှတ်တမ်းနှင့် စာရွက်စာတမ်းဟောင်းများကို ကျွန်ုပ်တို့ တူးဖော်ပါသည်။ ကိစ္စအများစုတွင်၊ မူရင်းရည်ရွယ်ချက်မှာ ရှင်းနေသည်- တစ်ကြိမ်ဒေတာ ရွှေ့ပြောင်းခြင်း၊ နေဝင်ချိန်ရောက်သည့် အင်္ဂါရပ်၊ ၎င်း၏အသုံးဝင်မှုကို ကျော်လွန်သွားသည့် ယာယီဖြေရှင်းချက်။ ထို့နောက် ၎င်းတို့သည် အမှန်တကယ် အသုံးမပြုတော့ကြောင်း ကျွန်ုပ်တို့ အတည်ပြုပါသည်။ မည်သည့်အရာကိုမျှ မဖယ်ရှားမီ၊ ကျွန်ုပ်တို့သည် ဤလုပ်ငန်းစဉ်များ တိတ်တဆိတ် လုပ်ဆောင်နေခြင်းမဟုတ်ကြောင်း အတည်ပြုရန် ကျွန်ုပ်တို့သည် မှတ်တမ်းမှတ်ရာကို ထည့်သွင်းခဲ့သည်။ ၎င်းတို့ကို လုံးဝ မခေါ်ကြောင်း သေချာစေရန် ရက်အနည်းငယ်ကြာ စောင့်ကြည့်ခဲ့ပြီး ၎င်းတို့ကို ဖြည်းဖြည်းချင်း ဖယ်ရှားခဲ့သည်။ ကျွန်ုပ်တို့သည် အရာအားလုံးကို တစ်ပြိုင်နက် မဖျက်ခဲ့ပါ။ မမျှော်လင့်ထားသော ဘေးထွက်ဆိုးကျိုးများကို စောင့်ကြည့်နေသည့် လုပ်ငန်းစဉ်များကို တစ်ခုပြီးတစ်ခု ဖယ်ရှားပါသည်။ (ကံကောင်းတာက၊ တစ်ခုမှ မရှိခဲ့ဘူး။) နောက်ဆုံးတော့ ကျွန်တော်တို့ သင်ယူခဲ့တာတွေကို မှတ်တမ်းတင်ခဲ့ပါတယ်။ လုပ်ငန်းစဉ်တစ်ခုစီတွင် မူလလုပ်ဆောင်ခဲ့သည့်အရာများနှင့် ၎င်းကို ဖယ်ရှားရခြင်းအကြောင်းတို့ကို ကျွန်ုပ်တို့၏အတွင်းပိုင်းစာရွက်စာတမ်းများတွင် မှတ်စုများထည့်သွင်းထားသောကြောင့် အရေးကြီးသည့်အရာတစ်ခု ပျောက်ဆုံးသွားခြင်းရှိမရှိကို အနာဂတ်အင်ဂျင်နီယာများက မတွေးမိကြပါ။ ရှင်းလင်းပြီးနောက် ဘာတွေပြောင်းလဲသွားသလဲ ကျွန်ုပ်တို့သည် သက်ရောက်မှုအပြည့်အစုံကို တိုင်းတာရန် စောနေသေးသော်လည်း ဤအရာမှာ ယခုအချိန်အထိ မြင်တွေ့နေရပါသည်။ ကျွန်ုပ်တို့၏ အခြေခံအဆောက်အဦစာရင်းသည် ယခုအခါ တိကျပါသည်။ တစ်စုံတစ်ယောက်ကမေးလာတဲ့အခါ "ငါတို့ဘယ်အလုပ်သမားတွေပြေးလဲ" ကျွန်ုပ်တို့သည် ထိုမေးခွန်းကို ယုံကြည်စိတ်ချစွာဖြင့် အမှန်တကယ်ဖြေဆိုနိုင်ပါသည်။ စတင်ဆွေးနွေးခြင်းများသည်လည်း ပိုမိုရိုးရှင်းလာပါသည်။ အင်ဂျင်နီယာအသစ်များသည် လျှို့ဝှက်ဆန်းကြယ်သော လုပ်ငန်းစဉ်များကို ထိမိ၍လဲမနေဘဲ အကြောင်းအရာများ ပျောက်ဆုံးနေသလားဟု တွေးတောနေမိသည်။ codebase သည် လွန်ခဲ့သောငါးနှစ်က ကျွန်ုပ်တို့လုပ်ခဲ့သည့်အရာမဟုတ်ဘဲ ကျွန်ုပ်တို့အမှန်တကယ်လုပ်ဆောင်ခဲ့သည်ကို ရောင်ပြန်ဟပ်စေသည်။ ရှေးဟောင်းသုတေသနနှင့် ကာကွယ်မှုအဖြစ် refactors များကို ဤပရောဂျက်မှ ကျွန်ုပ်၏အကြီးမားဆုံး ထုတ်ယူမှု- သိသာထင်ရှားသော refactor တိုင်းသည် ရှေးဟောင်းသုတေသနအတွက် အခွင့်အလမ်းတစ်ခုဖြစ်သည်။ စနစ်တစ်ခုအတွင်း နက်ရှိုင်းစွာပါဝင်နေသည့်အခါ အပိုင်းအစများချိတ်ဆက်ပုံကို အမှန်တကယ်နားလည်လာသောအခါတွင် သင်လိုအပ်နေသေးသည်များကို မေးခွန်းထုတ်ရန် ပြီးပြည့်စုံသောအနေအထားတွင် ရှိနေပါသည်။ အဲဒီ ပရောဂျက်ဟောင်းထဲက တန်းစီနေတာလား။ တစ်ကြိမ်တည်းဒေတာ ရွှေ့ပြောင်းခြင်းအတွက် တစ်စုံတစ်ဦးမှ ဖန်တီးထားသည့် အလုပ်သမား။ သင် တစ်ခါမှ မကြားဖူးတဲ့ အင်္ဂါရပ်တစ်ခုကို ရည်ညွှန်းတဲ့ အစီအစဉ်ဆွဲထားတဲ့ အလုပ်လား။ ၎င်းတို့သည် ဆက်လက်လည်ပတ်နေနိုင်ဆဲဖြစ်သည်။ ဤအရာသည် ကျွန်ုပ်တို့၏ရှေ့ဆက်လုပ်ငန်းစဉ်တွင် ကျွန်ုပ်တို့တည်ဆောက်နေသည့်အရာဖြစ်သည်- မည်သည့် refactor တွင်မဆို မေးပါ- ကျွန်ုပ်တို့ မကြည့်ရသေးသည့် ဤစနစ်နှင့် ထိတွေ့မိခြင်းမှာ အဘယ်နည်း။ အင်္ဂါရပ်ကို ငြင်းပယ်သည့်အခါ၊ အသုံးပြုသူမျက်နှာစာကုဒ်သာမက ၎င်း၏ နောက်ခံလုပ်ငန်းစဉ်များအားလုံးကို ခြေရာခံပါ။ တစ်စုံတစ်ဦးမှ အဖွဲ့မှထွက်ခွာသည့်အခါ ကျွန်ုပ်တို့၏ နောက်ခံကုဒ်များပါရှိသည့်အရာများကို မှတ်တမ်းပြုစုပါ။ သိုလှောင်ရုံတစ်ခုတည်းသို့ ရွှေ့ပြောင်းခြင်းမပြုရသေးပါ။ ကျွန်ုပ်တို့ ဆက်လက် စုစည်းလိုက်သည်နှင့်အမျှ ဤဝှက်ထားသော အမွေအနှစ်များကို ထပ်မံတွေ့ရှိနိုင်မည်ဟု ကျွန်ုပ်တို့ ယုံကြည်ပါသည်။ ယခုမူကား ၎င်းတို့ကိုဖမ်းပြီး အသစ်များမပေါ်ပေါက်စေရန် တားဆီးရန် စီစဉ်ထားပါသည်။ သင့်ကုဒ်အားလုံး တစ်နေရာတည်းတွင် နေထိုင်သောအခါ၊ မိဘမဲ့အခြေခံအဆောက်အအုံသည် မည်သည့်နေရာတွင်မှ ဖုံးကွယ်ထားစရာမရှိပါ။

You May Also Like

Enjoyed This Article?

Get weekly tips on growing your audience and monetizing your content — straight to your inbox.

No spam. Join 138,000+ creators. Unsubscribe anytime.

Create Your Free Bio Page

Join 138,000+ creators on Seemless.

Get Started Free