Monolith က ဘယ်အချိန်မှာ ပြဿနာစတက်သလဲ
ပြဿနာရဲ့ လက္ခဏာတွေကို ရှာဖွေခြင်း
Section titled “ပြဿနာရဲ့ လက္ခဏာတွေကို ရှာဖွေခြင်း”ဒီသင်ခန်းစာက microservices လို pattern တွေ ဘာကြောင့် လိုအပ်လာရသလဲဆိုတာကို နားလည်ဖို့အတွက် အဓိကတံတားတစ်ခုပါပဲ။ ကိုယ့်ရဲ့ monolith က ပြဿနာတွေ ရှိနေပြီဆိုတာကို ကိုယ့် team က အောက်ကလို စိတ်ညစ်စရာတွေ စပြီး ပြောလာတဲ့အခါ သိနိုင်ပါတယ်-
-
“Deploy လုပ်ရမှာ ကြောက်လာတယ်”
- အခြေအနေ: Team တွေက application ကို deploy လုပ်ဖို့ ကြောက်လာကြတယ်။ ဘာလို့လဲဆိုတော့ အပြောင်းအလဲသေးသေးလေးတစ်ခုလုပ်လိုက်တာနဲ့ မဆိုင်တဲ့နေရာမှာပါ သွားပြီး ပြဿနာတက်သွားနိုင်လို့ပဲ။ Release အသစ်ထုတ်ရတိုင်း အချိန်အကြာကြီးပေးရပြီး၊ စိတ်ဖိစီးမှုများကာ၊ လူတိုင်းဝိုင်းကူမှ ပြီးတဲ့ အလုပ်ကြီးတစ်ခုလို ဖြစ်လာတယ်။
-
“Build လုပ်ရတာ ဘယ်တော့မှ မပြီးတော့သလို ခံစားလာရတယ်”
- အခြေအနေ: Application တစ်ခုလုံးကို deploy မလုပ်ခင်မှာ compile လုပ်၊ test လုပ်၊ build လုပ်ရတဲ့ အချိန်က နာရီဝက်၊ တစ်နာရီ ဒါမှမဟုတ် ဒါထက်ပိုပြီး ကြာလာတယ်။ Developer တွေရဲ့ အလုပ်လုပ်နိုင်စွမ်းက သိသိသာသာကို ကျဆင်းလာတယ်။
-
“လူသစ်တွေအတွက် အခက်အခဲဖြစ်လာတယ်”
- အခြေအနေ: Developer အသစ်တစ်ယောက်အတွက် အလွန်ကြီးမားပြီး အပြန်အလှန်ချိတ်ဆက်နေတဲ့ codebase ကို အခြေခံလောက် နားလည်ဖို့တောင် ရက်သတ္တပတ်တွေ၊ လတွေ အချိန်ယူရတယ်။ သူတို့က အချိန်တိုအတွင်းမှာ အလုပ်စလုပ်နိုင်ဖို့ ခက်ခဲလာတယ်။
-
“Scale လုပ်ရတဲ့ ပြဿနာ”
- အခြေအနေ: Team lead တစ်ယောက်က ဒီလိုညည်းညူလာတယ် - “ကျွန်တော်တို့ရဲ့ image processing feature က memory အများကြီးလိုတယ်။ user authentication feature ကတော့ CPU အများကြီးလိုတယ်။ image feature တစ်ခုကို scale လုပ်ဖို့အတွက် application တစ်ခုလုံးရဲ့ မိတ္တူ ဆယ်ခုလောက် run ပေးရတယ်။ အဲ့ဒီမှာ မလိုအပ်တဲ့ CPU တွေကို အလကားဖြုန်းတီးနေသလိုဖြစ်ပြီး၊ ပိုက်ဆံကုန်တာပဲ အဖတ်တင်တယ်။”
-
“နည်းပညာအဟောင်းမှာပဲ သောင်တင်နေတယ်”
- အခြေအနေ: Developer တစ်ယောက်က ဒီလိုပြောလာတယ် - “ကျွန်တော်တို့ရေးချင်တဲ့ feature အသစ်အတွက် Python မှာ အရမ်းကောင်းတဲ့ library အသစ်တစ်ခုရှိတယ်။ ဒါပေမဲ့ ကျွန်တော်တို့ monolith တစ်ခုလုံးက လွန်ခဲ့တဲ့ ၁၀ နှစ်က Java နဲ့ရေးထားတာ။ အစအဆုံး ပြန်မရေးဘဲနဲ့ အဲဒါကို သုံးလို့မရဘူး။”
ဒီလိုအခက်အခဲတွေက ပုံမှန်လိုဖြစ်လာပြီဆိုရင်၊ ဒါဟာ monolith ရဲ့ အားသာချက်တွေထက် အားနည်းချက်တွေက ပိုများနေပြီဆိုတဲ့ ခိုင်မာတဲ့လက္ခဏာပါပဲ။ အဲ့ဒီအခါမှာတော့ တခြား architectural pattern တွေကို စတင်စဉ်းစားဖို့ အချိန်ရောက်ပါပြီ။