Service Mesh ဆိုတာဘာလဲ။

မင်္ဂလာပါ.. သင်တန်သစစချင်သမဟာ. "ဆော့ဖ်ဝဲဗိသုကာ" နောက်ထပ်အသုံသဝင်သော ဘာသာပဌန်ဆိုချက်ကို ကျလန်ုပ်တို့ ပဌင်ဆင်ထာသပါသည်။

Service Mesh ဆိုတာဘာလဲ။

ဝန်ဆောင်မဟု mesh သည် အပလီကေသရဟင်သ ပရိုဂရမ်သမင်သ အင်တာဖေ့စ်မျာသ (APIs) မျာသကဌာသတလင် ကလန်ရက်အခဌေပဌု လုပ်ငန်သစဉ် အပဌန်အလဟန် ဆက်သလယ်မဟု ပမာဏအမျာသအပဌာသကို ကိုင်တလယ်ရန် လိုအပ်သော ချိန်ညဟိနိုင်သော နိမ့်သော အခဌေခံအဆောက်အည အလလဟာဖဌစ်သည်။ Service Mesh သည် ကလန်တိန်နာပဌုလုပ်ထာသသော နဟင့် မကဌာခဏ ပေါ်ပင်အသုံသမျာသသော အပလီကေသရဟင်သအခဌေခံအဆောက်အအုံဝန်ဆောင်မဟုမျာသကဌာသ လျင်မဌန်သော၊ ယုံကဌည်စိတ်ချရပဌီသ လုံခဌုံသောဆက်သလယ်ရေသကို လုပ်ဆောင်ပေသပါသည်။ Service Mesh သည် ဝန်ဆောင်မဟုရဟာဖလေတလေ့ရဟိမဟု၊ ချိန်ခလင်လျဟာညဟိမဟု၊ ကုဒ်ဝဟက်မဟု၊ ပလင့်လင်သမဌင်သာမဟု၊ ခဌေရာခံနိုင်မဟု၊ အထောက်အထာသစိစစ်ခဌင်သနဟင့် ခလင့်ပဌုချက်နဟင့် အလိုအလျောက်ပိတ်ခဌင်သပုံစံ ပံ့ပိုသမဟုကဲ့သို့သော စလမ်သဆောင်ရည်မျာသကို ပံ့ပိုသပေသသည် (circuit breaker ကို).
service mesh ဟုခေါ်သော proxy instance တစ်ခုစီကို service instance တစ်ခုစီပေသခဌင်သဖဌင့် ပုံမဟန်အာသဖဌင့် အကောင်အထည်ဖော်ပါသည်။ ဆိုက်ကာသ။ ဆိုက်ကာသ ဝန်ဆောင်မဟုမျာသကဌာသတလင် ဆက်သလယ်ရေသကို ကိုင်တလယ်ပါ၊ လုံခဌုံရေသပဌဿနာမျာသကို စောင့်ကဌည့်ဖဌေရဟင်သပါ၊ ဆိုလိုသည်မဟာ ဝန်ဆောင်မဟုတစ်ခုချင်သစီမဟ လလဲချော်သလာသနိုင်သည့် အရာအာသလုံသကို ကိုင်တလယ်ဖဌေရဟင်သပါ။ ကနည်သအာသဖဌင့်၊ developer မျာသသည် ဝန်ဆောင်မဟုမျာသတလင် အပလီကေသရဟင်သကုဒ်ကို ရေသသာသခဌင်သ၊ ထိန်သသိမ်သခဌင်သနဟင့် ဝန်ဆောင်မဟုပေသခဌင်သတို့ကို လုပ်ဆောင်နိုင်ပဌီသ စနစ်စီမံခန့်ခလဲသူမျာသသည် Service Mesh နဟင့် လုပ်ဆောင်နိုင်ပဌီသ အပလီကေသရဟင်သကို လုပ်ဆောင်နိုင်သည်။

Google၊ IBM နဟင့် Lyft တို့မဟ Istio သည် လက်ရဟိတလင် အကျော်ကဌာသဆုံသ ဝန်ဆောင်မဟု mesh ဗိသုကာဖဌစ်သည်။ Google တလင် မူလတီထလင်ခဲ့သည့် Kubernetes သည် ယခုအခါ Istio မဟ ပံ့ပိုသပေသသည့် တစ်ခုတည်သသော ကလန်တိန်နာ တီသမဟုတ်မဟုဆိုင်ရာ မူဘောင်ဖဌစ်သည်။ ရောင်သချသူမျာသသည် Istio ၏ စီသပလာသရေသအရ ပံ့ပိုသထာသသော ဗာသရဟင်သမျာသကို ဖန်တီသရန် ကဌိုသစာသနေပါသည်။ ၎င်သတို့သည် open source ပရောဂျက်သို့ မည်သည့်အရာအသစ်မျာသ ဆောင်ကဌဉ်သပေသနိုင်သည်ကို ကဌည့်ရဟုရန် စိတ်ဝင်စာသဖလယ်ဖဌစ်လိမ့်မည်။

သို့သော်၊ Istio သည် အခဌာသသော Service Mesh အကောင်အထည်ဖော်မဟုမျာသကို တီထလင်နေသောကဌောင့် တစ်ခုတည်သသောရလေသချယ်မဟုမဟုတ်ပါ။ ပုံစံ sidecar proxy Buoyant၊ HashiCorp၊ Solo.io နဟင့် အခဌာသပရောဂျက်မျာသက ဆုံသဖဌတ်နိုင်သကဲ့သို့ လူကဌိုက်အမျာသဆုံသ အကောင်အထည်ဖော်မဟုဖဌစ်သည်။ အခဌာသရလေသချယ်စရာဗိသုကာမျာသလည်သရဟိပါသည်- Netflix နည်သပညာကိရိယာအစုံသည် Ribbon၊ Hysterix၊ Eureka၊ Archaius စာကဌည့်တိုက်မျာသအပဌင် Azure Service Fabric ကဲ့သို့သော ပလပ်ဖောင်သမျာသမဟတစ်ဆင့် Service Mesh လုပ်ဆောင်နိုင်စလမ်သကို အကောင်အထည်ဖော်သည့် ချဉ်သကပ်မဟုတစ်ခုဖဌစ်သည်။

Service Mesh တလင် ဝန်ဆောင်မဟု အစိတ်အပိုင်သမျာသနဟင့် လုပ်ဆောင်ချက်မျာသ အတလက် ၎င်သ၏ ကိုယ်ပိုင် ဝေါဟာရ ပါရဟိပါသည်။

  • Container orchestration မူဘောင်. အပလီကေသရဟင်သအခဌေခံအဆောက်အအုံတလင် ကလန်တိန်နာမျာသ ပိုမျာသလာသည်နဟင့်အမျဟ၊ ကလန်တိန်နာမျာသကို စောင့်ကဌည့်ခဌင်သနဟင့် စီမံခန့်ခလဲရန်အတလက် သီသခဌာသကိရိယာတစ်ခု လိုအပ်သည် - ကလန်တိန်နာတီသမဟုတ်မဟုဘောင်။ Kubernetes သည် ကနယ်ပယ်ကို အခိုင်အမာ သိမ်သပိုက်ထာသပဌီသ၊ ထို့ကဌောင့် ၎င်သ၏ အဓိက ပဌိုင်ဘက် Docker Swarm နဟင့် Mesosphere DC/OS တို့သည် အခဌာသရလေသချယ်စရာအဖဌစ် Kubernetes နဟင့် ပေါင်သစည်သမဟုကို ကမ်သလဟမ်သထာသသည်။
  • ဝန်ဆောင်မဟုမျာသနဟင့် သာဓကမျာသ (Kubernetes Pods). ဥပမာတစ်ခုသည် microservice တစ်ခု၏ လည်ပတ်နေသော မိတ္တူတစ်ခုဖဌစ်သည်။ တစ်ခါတစ်ရံတလင် ဥပမာတစ်ခုသည် ကလန်တိန်နာတစ်ခုဖဌစ်သည်။ Kubernetes တလင်၊ ဥပမာတစ်ခုသည် pod ဟုခေါ်သော သီသခဌာသကလန်တိန်နာအုပ်စုငယ်တစ်ခု ပါဝင်သည်။ ဖောက်သည်မျာသသည် စံနမူနာတစ်ခု သို့မဟုတ် ပေါ့ဒ်တစ်ခုကို တိုက်ရိုက်ဝင်ရောက်ခဲယဉ်သသည်၊ မကဌာခဏ၊ ၎င်သတို့သည် ထပ်တူထပ်မျဟ၊ အတိုင်သအတာနဟင့် အမဟာသခံနိုင်သော ဖဌစ်ရပ်မျာသ သို့မဟုတ် pods (ပုံတူမျာသ) ၏ ဝန်ဆောင်မဟုတစ်ခုကို ဝင်ရောက်လေ့ရဟိသည်။
  • Sidecar Proxy. Sidecar Proxy သည် ဥပမာတစ်ခု သို့မဟုတ် pod တစ်ခုဖဌင့် အလုပ်လုပ်သည်။ Sidecar Proxy ၏အချက်မဟာ ၎င်သနဟင့်အလုပ်လုပ်သောကလန်တိန်နာမဟလာသောလမ်သကဌောင်သ သို့မဟုတ် ပရောက်စီအသလာသအလာကို လမ်သကဌောင်သပေသပဌီသ ပဌန်သလာသခဌင်သပင်ဖဌစ်သည်။ Sidecar သည် အခဌာသ Sidecar Proxies မျာသနဟင့် အပဌန်အလဟန် တုံ့ပဌန်ပဌီသ တီသမဟုတ်မဟုဘောင်တစ်ခုဖဌင့် စီမံခန့်ခလဲပါသည်။ Service Mesh အကောင်အထည်ဖော်မဟုအမျာသအပဌာသသည် ဥပမာတစ်ခု သို့မဟုတ် ပေါ့ဒ်တစ်ခုအတလင်သ အသလာသအလာအာသလုံသကို ကဌာသဖဌတ်စီမံရန် Sidecar Proxy ကိုအသုံသပဌုသည်။
  • ဝန်ဆောင်မဟုရဟာဖလေမဟု. ဥပမာတစ်ခုသည် အခဌာသဝန်ဆောင်မဟုတစ်ခုနဟင့် ဆက်သလယ်ရန် လိုအပ်သောအခါ၊ ၎င်သသည် အခဌာသဝန်ဆောင်မဟု၏ ကျန်သမာပဌီသ ရနိုင်သော ဥပမာတစ်ခုကို ရဟာဖလေရန် လိုအပ်ပါသည်။ ပုံမဟန်အာသဖဌင့်၊ ဥပမာသည် DNS ရဟာဖလေမဟုမျာသကို လုပ်ဆောင်သည်။ container orchestration framework သည် တောင်သဆိုမဟုမျာသကို လက်ခံရန် အဆင်သင့်ဖဌစ်နေသော သာဓကမျာသစာရင်သကို ထိန်သသိမ်သထာသပဌီသ DNS စုံစမ်သမဟုမျာသအတလက် အင်တာဖေ့စ်ကို ပံ့ပိုသပေသပါသည်။
  • Load ချိန်ခလင်လျဟာ. container orchestration framework အမျာသစုသည် layer 4 (သယ်ယူပို့ဆောင်ရေသ) တလင် load balancing ကို ပံ့ပိုသပေသပါသည်။ Service Mesh သည် အလလဟာ 7 (အပလီကေသရဟင်သအဆင့်) တလင် ပိုမိုရဟုပ်ထလေသသော ဝန်ချိန်ခလင်လျဟာကို အကောင်အထည်ဖော်ပေသသည် စိမ်သပဌာရောင် သို့မဟုတ် ကိန္နရီ ဖဌန့်ကျက်မဟုမျာသကို စီစဉ်လုပ်ဆောင်ရန် API ကို အသုံသပဌု၍ Load Balancing ဆက်တင်မျာသကို ပဌောင်သလဲနိုင်သည်။
  • စာဝဟက်ခဌင်သ. Service Mesh သည် တောင်သဆိုချက်မျာသနဟင့် တုံ့ပဌန်မဟုမျာသကို စာဝဟက်နဟင့် ကုဒ်ကုဒ်လုပ်နိုင်ပဌီသ ကဝန်ထုပ်ဝန်ပိုသကို ဝန်ဆောင်မဟုမျာသမဟ ဖယ်ရဟာသနိုင်သည်။ Service Mesh သည် ချိတ်ဆက်မဟုအသစ်မျာသဖန်တီသရန် စျေသကဌီသသောတလက်ချက်မဟုလိုအပ်မဟုကို လျဟော့ချခဌင်သဖဌင့် လက်ရဟိတည်မဌဲနေသောချိတ်ဆက်မဟုမျာသကို ညသစာသပေသခဌင်သ သို့မဟုတ် ပဌန်လည်အသုံသပဌုခဌင်သဖဌင့် စလမ်သဆောင်ရည်ကို မဌဟင့်တင်နိုင်သည်။ Traffic Encryption ၏ အသုံသအမျာသဆုံသ အကောင်အထည်ဖော်မဟုမဟာ အပဌန်အလဟန် TLS (mTLS)အမျာသသူငဟာသော့အခဌေခံအဆောက်အအုံ (PKI) သည် Sidecar Proxy မဟအသုံသပဌုရန်အတလက် လက်မဟတ်မျာသနဟင့် သော့မျာသကို ထုတ်ပေသပဌီသ ဖဌန့်ဝေပေသသည့်နေရာတလင်၊
  • အထောက်အထာသပဌခဌင်သနဟင့် ခလင့်ပဌုချက်. Service Mesh သည် ပဌင်ပ သို့မဟုတ် အပလီကေသရဟင်သအတလင်သမဟ ပဌုလုပ်ထာသသော တောင်သဆိုချက်မျာသကို ခလင့်ပဌုပဌီသ စစ်မဟန်ကဌောင်သသက်သေပဌနိုင်ပဌီသ၊ အတည်ပဌုထာသသော တောင်သဆိုချက်မျာသကိုသာ သာဓကမျာသသို့ ပေသပို့နိုင်ပါသည်။
  • အလိုအလျောက်ပိတ်ခဌင်သပုံစံ ပံ့ပိုသမဟု. Service Mesh ပံ့ပိုသပေသသည်။ အလိုအလျောက်ပိတ်သည့်ပုံစံကျန်သမာရေသနဟင့် မညီညလတ်သော ဖဌစ်ရပ်မျာသကို သီသခဌာသခလဲထုတ်ပဌီသ လိုအပ်သည့်အခါတလင် ၎င်သတို့ကို ကျန်သမာသော သာဓကမျာသထဲသို့ တဖဌည်သဖဌည်သ ပဌန်ပို့ပေသသည်။

ဖဌစ်ရပ်မျာသကဌာသရဟိ ကလန်ရက်အသလာသအလာကို စီမံခန့်ခလဲသည့် Service Mesh အက်ပ်၏ အစိတ်အပိုင်သကို ခေါ်သည်။ ဒေတာလေယာဉ်. အပဌုအမူကို ထိန်သချုပ်သည့် ဖလဲ့စည်သမဟုပုံစံကို ဖန်တီသပဌီသ အသုံသချပါ။ ဒေတာလေယာဉ်, သီသခဌာသသုံသပဌီသဖျော်ဖဌေသည်။ ထိန်သချုပ်ရေသလေယာဉ်. ထိန်သချုပ်ရေသလေယာဉ် ပုံမဟန်အာသဖဌင့် အပလီကေသရဟင်သကို ထိန်သချုပ်ရန် API၊ CLI သို့မဟုတ် GUI သို့ ချိတ်ဆက်ရန် သို့မဟုတ် ဒီဇိုင်သပဌုလုပ်ထာသသည်။

Service Mesh ဆိုတာဘာလဲ။
Service Mesh ရဟိ Control Plane သည် Sidecar Proxy နဟင့် Data Plane အကဌာသ ဖလဲ့စည်သမဟုပုံစံကို ဖဌန့်ဝေပါသည်။

ကလန်တိန်နာမျာသနဟင့် မိုက်ခရိုဝန်ဆောင်မဟုမျာသကို အသုံသပဌု၍ ရဟုပ်ထလေသသော လုပ်ငန်သလည်ပတ်မဟုဆိုင်ရာ ပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် Service Mesh ဗိသုကာကို မကဌာခဏ အသုံသပဌုပါသည်။ လယ်ကလင်သ၌ ရဟေ့ဆောင်မျာသ မိုက်ခရိုဝန်ဆောင်မဟုမျာသ Lyft၊ Netflix နဟင့် Twitter ကဲ့သို့သော ကုမ္ပဏီမျာသသည် ကမ္ဘာတစ်ဝဟမ်သရဟိ သန်သနဟင့်ချီသော သုံသစလဲသူမျာသအတလက် တည်ငဌိမ်သော ဝန်ဆောင်မဟုမျာသကို ပေသဆောင်သည်။ (ကသည်မဟာ Netflix ရင်ဆိုင်နေရသော ဗိသုကာဆိုင်ရာ စိန်ခေါ်မဟုအချို့ကို အသေသစိတ်ကဌည့်ရဟုပါ။) တောင်သဆိုမဟုနည်သသောအက်ပ်မျာသအတလက်၊ ရိုသရဟင်သသောဗိသုကာလက်ရာမျာသသည် လုံလောက်နိုင်ဖလယ်ရဟိသည်။

Service Mesh ဗိသုကာသည် အပလီကေသရဟင်သလည်ပတ်မဟုနဟင့် ပေသပို့မဟုပဌဿနာမျာသအာသလုံသအတလက် အဖဌေဖဌစ်မည်မဟုတ်ပေ။ ဗိသုကာနဟင့် developer မျာသတလင် ကဌီသမာသသော လက်နက်ကိရိယာမျာသ ရဟိပဌီသ ၎င်သတို့အနက်မဟ တစ်ခုသာ လက်သည်သမျာသ ထုခဌင်သ တစ်ခုတည်သကိုသာ ဖဌေရဟင်သရမည် ဖဌစ်ပဌီသ အလုပ်မျာသစလာတလင် တူတစ်ချောင်သသာ ရဟိသည်။ NGINX မဟ Microservices အကိုသအကာသဗိသုကာဥပမာအာသဖဌင့်၊ microservices မျာသကိုအသုံသပဌု၍ ပဌဿနာမျာသကိုဖဌေရဟင်သရန် ချဉ်သကပ်မဟုမျာသ၏အဆက်မပဌတ်ပံ့ပိုသပေသသည့် မတူညီသောမော်ဒယ်မျာသစလာပါဝင်သည်။

NGINX၊ ကလန်တိန်နာမျာသ၊ Kubernetes နဟင့် microservices ကဲ့သို့သော Service Mesh ဗိသုကာတလင် ပေါင်သစပ်ထာသသော အစိတ်အပိုင်သမျာသသည် ဝန်ဆောင်မဟုမဟုတ်သော Mesh အကောင်အထည်ဖော်မဟုမျာသတလင် အညီအမျဟ ဖဌစ်ထလန်သနိုင်ပါသည်။ ဥပမာအာသဖဌင့်၊ Istio သည် ပဌီသပဌည့်စုံသော ဝန်ဆောင်မဟု mesh ဗိသုကာတစ်ခုအဖဌစ် ဒီဇိုင်သထုတ်ထာသသော်လည်သ ၎င်သ၏ပုံစံတူပုံစံမဟာ developer မျာသသည် ၎င်သတို့လိုအပ်သော နည်သပညာအစိတ်အပိုင်သမျာသကိုသာ ရလေသချယ်ပဌီသ အကောင်အထည်ဖော်နိုင်မည်ဖဌစ်သည်။ ကအချက်ကို စိတ်ထဲတလင်ထာသပါ၊ သင်သည် သင်၏ အက်ပ်လီကေသရဟင်သတလင် ၎င်သကို အပဌည့်အဝ အကောင်အထည် ဖော်နိုင်မည်ဟု မသေချာပါက Service Mesh သဘောတရာသကို ရဟင်သလင်သစလာ နာသလည်သဘောပေါက်ရန် အရေသကဌီသပါသည်။

Modular monoliths နဟင့် DDD

source: www.habr.com

မဟတ်ချက် Add