လက်ရှိနှင့် အနာဂတ် Trends များ
Software Architecture အကြောင်း လေ့လာမှုခရီးစဉ်ရဲ့ နောက်ဆုံးအခန်းကို ရောက်လာတဲ့အတွက် ဂုဏ်ယူပါတယ်။ အခုဆိုရင် ခင်ဗျားတို့က Architecture ရဲ့ အခြေခံ သဘောတရားတွေ၊ Pattern တွေနဲ့ လက်တွေ့သုံးရမယ့် ကျွမ်းကျင်မှုတွေကို သိသွားပါပြီ။ ဒီနောက်ဆုံးအခန်းမှာတော့ နောက်မျိုးဆက် Software တွေကို ပုံဖော်ပေးမယ့် အနာဂတ် Trend တွေကို လေ့လာကြည့်ကြပါမယ်။
Architecture ဆိုတာ အမြဲတမ်း ပြောင်းလဲနေတယ်
Section titled “Architecture ဆိုတာ အမြဲတမ်း ပြောင်းလဲနေတယ်”နည်းပညာလောကက တစ်နေရာတည်းမှာ ရပ်မနေပါဘူး။ ဒီနေ့ ခေတ်စားနေတဲ့ Pattern တွေက မနေ့က ကြုံခဲ့ရတဲ့ ပြဿနာတွေကနေ ပေါက်ဖွားလာတာဖြစ်ပြီး၊ ဒီနေ့ရဲ့ ပြဿနာတွေကနေ မနက်ဖြန်အတွက် Pattern အသစ်တွေ ထပ်ပေါ်လာဦးမှာပါပဲ။ အနာဂတ်မှာ ဘာတွေဆက်ဖြစ်လာနိုင်လဲ ဆိုတာ ကြည့်လိုက်ရအောင်။
1. Serverless & FaaS (Functions as a Service)
Section titled “1. Serverless & FaaS (Functions as a Service)”- ဘာလဲ: နာမည်အတိုင်းပါပဲ… ဆာဗာ (Server) တွေကို လုံးဝ ဂရုစိုက်စရာ မလိုတော့တဲ့ စနစ်ပါ။ ကိုယ့်ဘက်ကနေ လုပ်ချင်တဲ့ အလုပ်သေးသေးလေးကို ကုဒ် (Function) ရေးပြီး Cloud Provider (ဥပမာ - AWS, Google Cloud) ဆီ တင်ပေးလိုက်ရုံပါပဲ။ API ခေါ်တာပဲဖြစ်ဖြစ်၊ ဖိုင်တစ်ခု တင်လိုက်တာပဲဖြစ်ဖြစ် တစ်ခုခုဖြစ်တာနဲ့ (Event) Cloud ဘက်က အဲ့ဒီ Function ကို အလိုအလျောက် Run ပေးသွားမှာပါ။ ဆာဗာ ဖွင့်တာ၊ ပိတ်တာ၊ Scale လုပ်တာ အကုန်လုံးကို သူတို့ဘက်က အလိုအလျောက် လုပ်ပေးသွားပါတယ်။
- ဥပမာ - ကိုယ်ပိုင်ကား vs တက္ကစီ: ပုံမှန် Server တွေက ကိုယ်ပိုင်ကားနဲ့ တူပါတယ်။ ကားဝယ်ရမယ်၊ ပြင်ရမယ်၊ ဆီထည့်ရမယ်၊ ပါကင်ရှာရမယ်။ Serverless ကတော့ တက္ကစီ ငှားစီးတာနဲ့ တူပါတယ်။ သွားချင်တဲ့နေရာကို ပြော၊ ရောက်ရင် ပိုက်ဆံရှင်းလိုက်ရုံပဲ။ ကားပျက်မှာ၊ ဆီကုန်မှာ ပူစရာမလိုပါဘူး။
- အားသာချက်: ကိုယ့်ကုဒ် Run တဲ့ အချိန် (စက္ကန့်ပိုင်း) လောက်အတွက်ပဲ ပိုက်ဆံပေးရလို့ သက်သာပါတယ်။ နောက်ပြီး User သန်းချီ ဝင်လာလည်း သူ့ဟာသူ Auto Scale လုပ်ပေးလို့ ဘာမှလုပ်စရာမလိုပါဘူး။
2. Service Mesh
Section titled “2. Service Mesh”- ဘာလဲ: Microservices လို Service အသေးလေးတွေ ရာနဲ့ချီ ရှိလာတဲ့အခါ၊ သူတို့အချင်းချင်း စကားပြောတဲ့ လမ်းကြောင်း (Network Traffic) ကို ကြီးကြပ်ပေးတဲ့ သီးသန့် အလွှာ (Layer) တစ်ခုပါ။
- ဖြေရှင်းပေးတဲ့ ပြဿနာ: Service တိုင်းမှာ လုံခြုံရေး (Encryption)၊ ပြန်ခေါ်တာ (Retries) နဲ့ စောင့်ကြည့်တာ (Monitoring) တွေကို လိုက်ရေးနေရရင် အရမ်းရှုပ်ပြီး အမှားများပါတယ်။
- ဘယ်လို အလုပ်လုပ်လဲ: Service တစ်ခုချင်းစီတိုင်းရဲ့ ဘေးမှာ Sidecar လို့ခေါ်တဲ့ Proxy လေးတွေ ကပ်ပေးထားပါတယ်။ Service ထဲကို ဝင်လာထွက်သွားတဲ့ Network အကုန်လုံးက အဲ့ဒီ Sidecar ကနေပဲ ဖြတ်ရပါတယ်။ ဒါကြောင့် Service ကိုယ်တိုင်က ကိုယ့်အလုပ် (Business Logic) ကိုပဲ သီးသန့် အာရုံစိုက်လို့ ရသွားပါတယ်။
- ဥပမာ - ကိုယ်ရေးအရာရှိ: Service တိုင်းကို စမတ်ကျတဲ့ ကိုယ်ရေးအရာရှိ (Sidecar) တစ်ယောက်စီ ခန့်ထားပေးသလိုပါပဲ။ အရာရှိက အပြင်လူနဲ့ စကားပြောတာတွေ၊ လုံခြုံရေးတွေကို တာဝန်ယူပေးလို့၊ Service က သူ့အလုပ်သူ အေးဆေးလုပ်လို့ ရသွားတာပါ။
3. Data Mesh
Section titled “3. Data Mesh”- ဘာလဲ: ကုမ္ပဏီကြီးတွေမှာ Data အကုန်လုံးကို နေရာတစ်နေရာတည်းမှာ စုပုံထားမယ့် (Centralized Data Warehouse) အစား၊ သက်ဆိုင်ရာ ဌာနအသီးသီးက ကိုယ့် Data ကို ကိုယ်တိုင် စီမံခန့်ခွဲစေတဲ့ (Decentralized) စနစ်ပါ။
- ဘယ်လို အလုပ်လုပ်လဲ: ဥပမာ Marketing ဌာနက သူတို့ရဲ့ Data ကို သေသေချာချာ စီမံပြီး တခြားဌာနတွေ အလွယ်တကူ လာယူသုံးလို့ရအောင် Product တစ်ခုလိုမျိုး ဝန်ဆောင်မှု ပေးရပါတယ်။ ဌာနတစ်ခုချင်းစီက Data ရဲ့ ပိုင်ရှင်တွေ (Data Owners) ဖြစ်သွားပါတယ်။