ဗိသုကာလက်ရာရလေသချယ်မဟုအပိုင်သ (၃)

မင်္ဂလာပါ Habr ဒီနေ့တော့ သင်တန်သအသစ်တစ်ခုစဖို့ အထူသတလည်ရေသထာသတဲ့ စာအုပ်စာတမ်သတလေကို ဆက်တိုက်လုပ်နေပါတယ်။ "ဆော့ဖ်ဝဲဗိသုကာ".

နိဒါန်သ

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

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

ယခု နောက်ဆုံသတလင် ကျလန်ုပ်တို့သည် မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာ၏ အဓိကလက္ခဏာမျာသကို သတ်မဟတ်ဖော်ပဌပါမည်။

ဗိသုကာပညာ၏ဆက်ဆံရေသ

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

Microservice Architecture ၏ အင်္ဂါရပ်မျာသ

မိုက်ခရိုဆာသဗစ်ဗိသုကာ၏ အဓိကလက္ခဏာမျာသမဟာ-

  • Business Capabilities မျာသကို စုစည်သထာသသည်။
  • ပရောဂျက်မျာသမဟုတ်သော ထုတ်ကုန်မျာသ
  • စမတ် အဆုံသမဟတ်မျာသနဟင့် အသုံသမကျသော ပိုက်မျာသ
  • ဗဟိုချုပ်ကိုင်မဟုရဟိသော အုပ်ချုပ်ရေသ
  • ဗဟိုချုပ်ကိုင်မဟုရဟိသော ဒေတာစီမံခန့်ခလဲမဟု
  • အခဌေခံအဆောက်အည အလိုအလျောက်စနစ်
  • ရဟုံသနိမ့်မဟုအတလက်ဒီဇိုင်သ
  • ဆင့်ကဲဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့်အတူ ဗိသုကာပညာ (Evolutionary Design)၊

ပထမအချက်မဟာ မိုက်ခရိုဆာသဗစ်မျာသသည် ဝန်ဆောင်မဟု၏ အထူသကိစ္စရပ်ဖဌစ်သောကဌောင့် ဝန်ဆောင်မဟုကို ညသတည်သော ဗိသုကာလက်ရာမဟ လာပါသည်။ အခဌာသအချက်မျာသသည် သီသခဌာသထည့်သလင်သစဉ်သစာသရန် ထိုက်တန်ပါသည်။

Business Capabilities မျာသကို စုစည်သထာသသည်။

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

ကျလန်ုပ်တို့သည် monoliths နဟင့် microservices မျာသအကဌောင်သပဌောနေပါက၊ functional departments (backend၊ frontend၊ database administrators) မဟ ဖလံ့ဖဌိုသတိုသတက်မဟုကို စီမံဆောင်ရလက်ပါက classic monolith ကိုရရဟိမည်ဖဌစ်သည်။

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

ပရောဂျက်မျာသမဟုတ်သော ထုတ်ကုန်မျာသ

အဖလဲ့တစ်ဖလဲ့မဟ တီထလင်ထာသသော လုပ်ဆောင်နိုင်စလမ်သကို အခဌာသအဖလဲ့မျာသသို့ လလဟဲပဌောင်သပေသသည့် ပရောဂျက်ချဉ်သကပ်မဟုတစ်ခုသည် မိုက်ခရိုဆာသဗစ်ဗိသုကာတစ်ခုအတလက် လုံသဝအဆင်မပဌေပါ။ အဖလဲ့သည် ၎င်သ၏ဘဝစက်ဝန်သတစ်လျဟောက် စနစ်အာသ ပံ့ပိုသပေသရမည်ဖဌစ်သည်။ မိုက်ခရိုဝန်ဆောင်မဟုမျာသကို အကောင်အထည်ဖော်ရာတလင် ခေါင်သဆောင်တစ်ညသဖဌစ်သည့် Amazon က “သင်တည်ဆောက်သည်၊ သင်လုပ်ဆောင်သည်” ဟုပဌောသည်။ ထုတ်ကုန်ချဉ်သကပ်မဟုသည် အဖလဲ့အာသ လုပ်ငန်သ၏လိုအပ်ချက်မျာသကို ခံစာသနိုင်စေပါသည်။

စမတ် အဆုံသမဟတ်မျာသနဟင့် အသုံသမကျသော ပိုက်မျာသ

SOA ဗိသုကာသည် ဆက်သလယ်ရေသလမ်သကဌောင်သမျာသ အထူသသဖဌင့် Enterprise Service Bus မျာသကို အာရုံစိုက်ခဲ့သည်။ မဟာသယလင်သသော Spaghetti Box ဆီသို့ မကဌာခဏ ညသတည်သလာသလေ့ရဟိသည်၊ ဆိုလိုသည်မဟာ မိုလီတုံသ၏ ရဟုပ်ထလေသမဟုသည် ဝန်ဆောင်မဟုမျာသကဌာသ ချိတ်ဆက်မဟုမျာသ၏ ရဟုပ်ထလေသမဟုအဖဌစ်သို့ ပဌောင်သလဲသလာသသည်။ Microservice ဗိသုကာလက်ရာသည် ရိုသရဟင်သသော ဆက်သလယ်ရေသနည်သလမ်သမျာသကိုသာ အသုံသပဌုသည်။

ဗဟိုချုပ်ကိုင်မဟုရဟိသော အုပ်ချုပ်ရေသ

မိုက်ခရိုဝန်ဆောင်မဟုမျာသနဟင့် ပတ်သက်၍ အဓိက ဆုံသဖဌတ်ချက်မျာသကို မိုက်ခရိုဝန်ဆောင်မဟုမျာသကို အမဟန်တကယ် တီထလင်နေသူမျာသမဟ ပဌုလုပ်သင့်သည်။ ကတလင်၊ အဓိကဆုံသဖဌတ်ချက်မျာသသည် ရလေသချယ်မဟုမျာသကို ဆိုလိုသည်။
ပရိုဂရမ်သမင်သဘာသာစကာသမျာသ၊ အသုံသချမဟုနည်သစနစ်မျာသ၊ အမျာသသူငဟာ ကဌာသခံစာချုပ်မျာသ စသည်တို့။

ဗဟိုချုပ်ကိုင်မဟုရဟိသော ဒေတာစီမံခန့်ခလဲမဟု

အပလီကေသရဟင်သသည် ဒေတာဘေ့စ်တစ်ခုတည်သပေါ်တလင် မဟီခိုနေရသည့် စံချဉ်သကပ်နည်သသည် သီသသန့်ဝန်ဆောင်မဟုတစ်ခုစီ၏ သီသခဌာသအချက်မျာသကို ထည့်သလင်သစဉ်သစာသ၍မရပါ။ MSA တလင် နည်သပညာအမျိုသမျိုသကို အသုံသပဌုခဌင်သအပါအဝင် ဗဟိုချုပ်ကိုင်မဟုလျဟော့ချထာသသော ဒေတာစီမံခန့်ခလဲမဟုတလင် ပါဝင်ပါသည်။

အခဌေခံအဆောက်အည အလိုအလျောက်စနစ်

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

ရဟုံသနိမ့်မဟုအတလက်ဒီဇိုင်သ

မျာသပဌာသလဟသော MSA ဝန်ဆောင်မဟုမျာသသည် ကျရဟုံသရန် အလာသအလာမျာသသည်။ တစ်ချိန်တည်သမဟာပင်၊ ဖဌန့်ဝေမဟုစနစ်တလင် အမဟာသအယလင်သမျာသကို ကိုင်တလယ်ခဌင်သသည် အသေသအဖလဲအလုပ်မဟုတ်ပါ။ အပလီကေသရဟင်သတည်ဆောက်ပုံသည် ထိုသို့သောမအောင်မဌင်မဟုမျာသကို ခံနိုင်ရည်ရဟိရပါမည်။ Rebecca Parsons က ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုမျာသကဌာသတလင် လုပ်ငန်သစဉ်အတလင်သ ဆက်သလယ်မဟုကိုပင် မသုံသတော့ဘဲ အလလန်အရေသကဌီသသည်ဟု ထင်သည်၊ ယင်သအစာသ ကျလန်ုပ်တို့သည် ဆက်သလယ်ရေသအတလက် HTTP ကို ​​အာသကိုသရာရောက်ပဌီသ ယုံကဌည်ရလောက်သည်မဟုတ်ပေ။

ဆင့်ကဲဖလံ့ဖဌိုသတိုသတက်မဟုနဟင့်အတူ ဗိသုကာပညာ (Evolutionary Design)၊

MSA စနစ်၏ ဗိသုကာလက်ရာသည် တရလေ့ရလေ့ပဌောင်သလဲလာသင့်သည်။ ဝန်ဆောင်မဟုတစ်ခု၏ နယ်နိမိတ်မျာသတလင် လိုအပ်သောပဌောင်သလဲမဟုမျာသကို ကန့်သတ်ရန် အကဌံပဌုလိုပါသည်။ အခဌာသဝန်ဆောင်မဟုမျာသအပေါ် သက်ရောက်မဟုကိုလည်သ ထည့်သလင်သစဉ်သစာသရမည်ဖဌစ်သည်။ သမာသရိုသကျချဉ်သကပ်နည်သမဟာ ကပဌဿနာကို ဗာသရဟင်သတင်ခဌင်သဖဌင့် ဖဌေရဟင်သရန် ကဌိုသစာသသော်လည်သ MSA က ဗာသရဟင်သထည့်သလင်သခဌင်သကို အသုံသပဌုရန် အကဌံပဌုထာသသည်။
နောက်ဆုံသအာသကိုသရာအဖဌစ်။

ကောက်ချက်

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

ဗိသုကာလက်ရာရလေသချယ်မဟုအပိုင်သ (၃)

အပိုင်သ 2 ကိုဖတ်ပါ။

source: www.habr.com

မဟတ်ချက် Add