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

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

နိဒါန်သ

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

В နောက်ဆုံသအချိန် ကျလန်ုပ်တို့သည် monolith ကိုကိုင်တလယ်ဖဌေရဟင်သပဌီသ monolith တလင်ပဌဿနာမျာသစလာရဟိသည်- အရလယ်အစာသ၊ ချိတ်ဆက်မဟု၊ အသုံသချမဟု၊ အတိုင်သအတာ၊ ယုံကဌည်စိတ်ချရမဟုနဟင့်တင်သကျပ်မဟုရဟိကဌောင်သနိဂုံသချုပ်လာသည်။

ဒီတစ်ခါတော့ modules/libraries (component-oriented architecture) ဒါမဟမဟုတ် services (service-oriented architecture) အစုအဝေသတစ်ခုအနေနဲ့ system တစ်ခုကို စုစည်သဖို့ ဖဌစ်နိုင်ချေတလေအကဌောင်သ ဆလေသနလေသဖို့ အကဌံပဌုချင်ပါတယ်။

အစိတ်အပိုင်သဆန်တဲ့ ဗိသုကာပညာ

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

အစိတ်အပိုင်သမျာသကို သင့်လျော်စလာအသုံသပဌုခဌင်သဖဌင့်၊ "ဖုန်ဘောလုံသကဌီသ" (အရလယ်အစာသကဌီသ + မဌင့်မာသသောချိတ်ဆက်မဟု) ၏ပဌဿနာကို ဖဌေရဟင်သနိုင်ပဌီသ အစိတ်အပိုင်သမျာသသည် တပ်ဆင်ယူနစ်မျာသ (မော်ဂျူသမျာသ၊ စာကဌည့်တိုက်မျာသ) နဟင့် ဖဌန့်ကျက်ယူနစ်မျာသ (ဝန်ဆောင်မဟုမျာသ) နဟစ်မျိုသလုံသဖဌစ်နိုင်ပါသည်။ ဖဌန့်ကျက်ယူနစ်မျာသကို လည်ပတ်နေသည့် လုပ်ငန်သစဉ်တလင် အမဌဲတမ်သ ပုံဖော်ထာသခဌင်သမရဟိပါ- ဥပမာ၊ ဝဘ်အပလီကေသရဟင်သတစ်ခုနဟင့် ဒေတာဘေ့စ်တစ်ခုကို အတူတကလ ဖဌန့်ကျက်ထာသသည်။

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

ထိုကဲ့သို့သော monolith ၏အကဌီသမာသဆုံသပဌဿနာမဟာ modules မျာသအဖဌစ်သို့ခလဲဝေခဌင်သသည်ယုတ္တိသက်သက်ဖဌစ်ပဌီသ developer မျာသမဟအလလယ်တကူချိုသဖောက်နိုင်ခဌင်သကဌောင့်ဖဌစ်သည်။ အမဟိုက်ပုံသအဖဌစ်သို့ တဖဌည်သဖဌည်သပဌောင်သလဲသလာသသည့် core module တစ်ခု ပေါ်လာနိုင်သည်၊ modules မျာသကဌာသတလင် မဟီခိုမဟုဂရပ်မျာသ ကဌီသထလာသလာနိုင်သည်၊ အစရဟိသည်ဖဌင့်။ ထိုသို့သောပဌဿနာမျာသကိုရဟောင်ရဟာသရန်၊ ဖလံ့ဖဌိုသတိုသတက်မဟုကို အလလန်ရင့်ကျက်သောအဖလဲ့တစ်ခုမဟဖဌစ်စေ သို့မဟုတ် အချိန်ပဌည့်ကုဒ်ပဌန်လည်သုံသသပ်ခဌင်သတလင် ပါဝင်နေသော “ဗိသုကာပညာရဟင်” ၏ လမ်သညလဟန်မဟုအောက်တလင် ဖလံ့ဖဌိုသတိုသတက်မဟုကို ယုတ္တိနည်သကျသောတည်ဆောက်မဟုပုံစံကိုချိုသဖောက်သော developer မျာသလက်ထဲသို့ ကျော်လလဟာသနိုင်မည်ဖဌစ်သည်။

"ideal" monolith သည် ယုတ္တိနည်သကျကျ ပိုင်သခဌာသထာသသော module အစုတစ်ခုဖဌစ်ပဌီသ တစ်ခုချင်သစီသည် ၎င်သ၏ကိုယ်ပိုင်ဒေတာဘေ့စ်သို့ ကဌည့်ရဟုသည်။

ဝန်ဆောင်မဟုကို ညသတည်သော ဗိသုကာပညာ

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

Service-oriented architecture (SOA = service oriented architecture) သည် monolith ၏ ခလဲခဌာသသတ်မဟတ်ထာသသော ပဌဿနာအာသလုံသကို ဖဌေရဟင်သပေသသည်- အပဌောင်သအလဲတစ်ခုဖဌစ်ပေါ်သည့်အခါ ဝန်ဆောင်မဟုတစ်ခုသာ ထိခိုက်နိုင်ပဌီသ ကောင်သစလာသတ်မဟတ်ထာသသော API သည် အစိတ်အပိုင်သမျာသ၏ ကက်ပ်ပေါင်သကို ကောင်သကောင်သပံ့ပိုသပေသပါသည်။

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

စကာသမစပ်၊ အမဟီအခိုကင်သစလာ ဖဌန့်ကျက်နိုင်ခဌေသည် ဝန်ဆောင်မဟု၏ အလလန်အရေသကဌီသသော အင်္ဂါရပ်တစ်ခုဖဌစ်သည်။ ဝန်ဆောင်မဟုမျာသကို အတူတကလ အသုံသချရမည်ဆိုလျဟင် သို့မဟုတ် အချို့သော အစီအစဉ်တစ်ခုတလင်၊ ယင်သစနစ်အာသ ဝန်ဆောင်မဟုကို ညသတည်သည်ဟု မယူဆနိုင်ပါ။ ကကိစ္စတလင်၊ ၎င်သတို့သည် ဖဌန့်ဝေထာသသော monolith အကဌောင်သ (SOA ၏အမဌင်တလင်သာမက microservice ဗိသုကာအမဌင်တလင်လည်သ ဆန့်ကျင်သည့်ပုံစံဟု ယူဆကဌသည်)။

ဝန်ဆောင်မဟုကို ညသတည်သော ဗိသုကာလက်ရာကို ဗိသုကာအသိုင်သအဝိုင်သနဟင့် ရောင်သချသူမျာသမဟ ကောင်သစလာပံ့ပိုသထာသသည်။ ၎င်သသည် သင်တန်သမျာသနဟင့် အောင်လက်မဟတ်မျာသ၊ ကောင်သမလန်စလာ တီထလင်ထာသသော ပုံစံမျာသ အမျာသအပဌာသ ရဟိနေခဌင်သကို ဆိုလိုသည်။ ဥပမာ၊ လူသိမျာသသော လုပ်ငန်သဝန်ဆောင်မဟုဘတ်စ် (ESB = လုပ်ငန်သဝန်ဆောင်မဟုဘတ်စ်) ပါဝင်သည်။ တစ်ချိန်တည်သမဟာပင် ESB သည် ရောင်သချသူမျာသထံမဟ အိတ်တစ်လုံသဖဌစ်ပဌီသ SOA တလင် အသုံသပဌုရန်မလိုအပ်ပါ။

ဝန်ဆောင်မဟုညသတည်သော ဗိသုကာလက်ရာမျာသ၏ လူကဌိုက်မျာသမဟုသည် 2008 ခုနဟစ်ဝန်သကျင်တလင် အထလတ်အထိပ်သို့ရောက်ရဟိသလာသပဌီသ နောက်ပိုင်သတလင် ၎င်သသည် ကျဆင်သလာကာ microservices (~2015) ထလန်သကာသလာပဌီသနောက် သိသာထင်ရဟာသစလာ သိသာထင်ရဟာသလာခဲ့သည်။

ကောက်ချက်

ဝန်ဆောင်မဟုမျာသနဟင့် မော်ဂျူသမျာသပုံစံဖဌင့် သတင်သစနစ်မျာသ စုစည်သခဌင်သဆိုင်ရာ ဖဌစ်နိုင်ခဌေမျာသကို ဆလေသနလေသပဌီသနောက်၊ နောက်ဆုံသတလင် microservice ဗိသုကာ၏ အခဌေခံမူမျာသကို ဆက်လက်လုပ်ဆောင်ပဌီသ နောက်အပိုင်သတလင် microservice architecture နဟင့် service-oriented architecture အကဌာသ ခဌာသနာသချက်ကို အထူသအာရုံစိုက်ရန် အဆိုပဌုပါသည်။

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

source: www.habr.com

မဟတ်ချက် Add