Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု

“Cloud native” သို့မဟုတ် ရိုသရိုသ “cloud” အပလီကေသရဟင်သမျာသကို cloud အခဌေခံအဆောက်အညမျာသတလင် အလုပ်လုပ်ရန် အထူသဖန်တီသထာသသည်။ ၎င်သတို့ကို ပုံမဟန်အာသဖဌင့် ကလန်တိန်နာမျာသတလင် ထုပ်ပိုသထာသသော လျော့ရဲရဲတလဲတလဲရဟိသော မိုက်ခရိုဝန်ဆောင်မဟုအစုအဝေသတစ်ခုအဖဌစ် တည်ဆောက်ထာသကာ ယင်သတို့ကို cloud platform မဟ စီမံခန့်ခလဲပါသည်။ ထိုသို့သော အပလီကေသရဟင်သမျာသသည် ပဌင်သထန်သော အခဌေခံအဆောက်အအုံအဆင့် ချို့ယလင်သမဟုမျိုသတလင်ပင် စိတ်ချယုံကဌည်စလာ အလုပ်လုပ်နိုင်ပဌီသ အတိုင်သအတာကို ပုံသေအာသဖဌင့် ပျက်ကလက်မဟုအတလက် ပဌင်ဆင်ထာသပါသည်။ အကဌလေစေ့၏အခဌာသတစ်ဖက်မဟာ ၎င်သတို့ကို အလိုအလျောက်စီမံခန့်ခလဲနိုင်ရန် cloud platform မဟ ကန့်သတ်ချက်မျာသ (စာချုပ်မျာသ) မျာသဖဌစ်သည်။

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု

cloud-based applications မျာသသို့ ပဌောင်သရလဟေ့ခဌင်သ၏ လိုအပ်ချက်နဟင့် အရေသကဌီသပုံကို အပဌည့်အဝ သိရဟိထာသသော်လည်သ အဖလဲ့အစည်သမျာသစလာသည် မည်သည့်နေရာတလင် စတင်ရမည်ကို မသိကဌသေသပါ။ ကပို့စ်တလင်၊ containerized applications မျာသ ရေသဆလဲရာတလင် လိုက်နာပါက၊ cloud platform မျာသ၏ အလာသအလာကို သိရဟိနာသလည်နိုင်ပဌီသ IT infrastructure တလင် ဆိုသရလာသစလာ ချို့ယလင်သမဟုမျာသ ကဌုံတလေ့ရသည့်အခါတလင်ပင် ယုံကဌည်စိတ်ချရသော လည်ပတ်မဟုနဟင့် အပလီကေသရဟင်သမျာသကို ချဲ့ထလင်နိုင်စေမည့် အခဌေခံမူမျာသစလာကို ကဌည့်ရဟုပါမည်။ အဆင့် ကနေရာတလင် ဖော်ပဌထာသသော အခဌေခံမူမျာသ၏ အဆုံသစလန်ပန်သတိုင်မဟာ Kubernetes ကဲ့သို့သော cloud ပလပ်ဖောင်သမျာသမဟ အလိုအလျောက် စီမံခန့်ခလဲနိုင်သော အပလီကေသရဟင်သမျာသ တည်ဆောက်နည်သကို လေ့လာရန်ဖဌစ်သည်။

ဆော့ဖ်ဝဲဒီဇိုင်သအခဌေခံမူမျာသ

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

  • နမ်သ (ရိုသရိုသလေသထာသပါ၊ မိုက်မဲပါ) – အဲဒါကို မရဟုပ်ထလေသပါနဲ့။
  • သဟေ့ခလောကျ (ကိုယ့်ကိုယ်ကို ထပ်ခါတလဲလဲ မပဌောပါနဲ့) - ကိုယ့်ကိုယ်ကို ထပ်ခါတလဲလဲ မလုပ်ပါနဲ့။
  • YAGNI (မင်သမလိုအပ်ပါဘူသ) - ချက်ချင်သမလိုအပ်တဲ့အရာတစ်ခုကို မဖန်တီသပါနဲ့။
  • SoC စိုသရိမ်သောကမျာသကိုခလဲထုတ်ခဌင်သ - တာဝန်ခလဲဝေပေသခဌင်သ။

သင်တလေ့မဌင်ရသည့်အတိုင်သ၊ ကမူမျာသသည် သီသခဌာသစည်သမျဉ်သမျာသကို မသတ်မဟတ်ထာသသော်လည်သ၊ developer အမျာသအပဌာသနဟင့် ၎င်သတို့ကို ပုံမဟန်ရည်ညလဟန်သသည့် လက်တလေ့အတလေ့အကဌုံအပေါ် အခဌေခံ၍ ဘုံအသိတရာသဆိုင်ရာ ထည့်သလင်သစဉ်သစာသမဟု အမျိုသအစာသတလင် ပါဝင်ပါသည်။
ဒါ့အပဌင်ရဟိပါတယ် ခိုင်မာသော - Robert Martin မဟ ရေသဆလဲထာသသော အရာဝတ္ထု-ဆန်သော ပရိုဂရမ်နဟင့် ဒီဇိုင်သဆိုင်ရာ ပထမမူငါသချက်၏ အစုတစ်ခု။ SOLID တလင်—အတူတကလအသုံသပဌုသောအခါ—ပိုမိုကောင်သမလန်သောဆော့ဖ်ဝဲလ်စနစ်မျာသဖန်တီသရန်နဟင့် ၎င်သတို့အာသ ရေရဟည်တလင်ပိုမိုကောင်သမလန်စလာထိန်သသိမ်သရန် ကူညီပေသသည့် ကျယ်ပဌန့်သော၊ အဖလင့်အဆုံသ၊ ဖဌည့်စလက်အခဌေခံမူမျာသပါဝင်သည်။

ခိုင်မာသောအခဌေခံမူမျာသသည် OOP နယ်ပယ်နဟင့်သက်ဆိုင်ပဌီသ အတန်သမျာသ၊ အင်တာဖေ့စ်မျာသနဟင့် အမလေဆက်ခံမဟုမျာသကဲ့သို့ အယူအဆမျာသနဟင့် အယူအဆမျာသကို ဘာသာစကာသဖဌင့် ပုံဖော်ထာသသည်။ ဥပမာအာသဖဌင့်၊ cloud အသုံသချပရိုဂရမ်မျာသအတလက် ဖလံ့ဖဌိုသတိုသတက်မဟုမူမျာသကို ရေသဆလဲနိုင်သည်၊ ကနေရာတလင် အခဌေခံဒဌပ်စင်သာလျဟင် အတန်သအစာသမဟုတ်ဘဲ ကလန်တိန်နာတစ်ခုဖဌစ်သည်။ ကအခဌေခံမူမျာသကို လိုက်နာခဌင်သဖဌင့် Kubernetes ကဲ့သို့သော cloud ပလပ်ဖောင်သမျာသ၏ ရည်မဟန်သချက်မျာသနဟင့် ရည်မဟန်သချက်မျာသကို ပိုမိုကောင်သမလန်စလာ ပဌည့်မီနိုင်သော ကလန်တိန်နာတင်ထာသသော အပလီကေသရဟင်သမျာသကို ဖန်တီသနိုင်ပါသည်။

Cloud-native containers- Red Hat ချဉ်သကပ်မဟု

ယနေ့ခေတ်တလင်၊ မည်သည့်အပလီကေသရဟင်သမဆိုနီသပါသကို ကလန်တိန်နာထဲသို့ အလလယ်တကူ ထုပ်ပိုသနိုင်သည်။ သို့သော် Kubernetes ကဲ့သို့သော cloud ပလပ်ဖောင်သတစ်ခုအတလင်သ ထိရောက်စလာ အလိုအလျောက်လုပ်ဆောင်ပဌီသ ကဌိုသကိုင်မဟုဖဌစ်စေရန်အတလက် အပလီကေသရဟင်သမျာသကို အပိုအာသထုတ်ရန် လိုအပ်ပါသည်။
အောက်တလင်ဖော်ပဌထာသသော အယူအဆမျာသအတလက် အခဌေခံမဟာ နည်သစနစ်ဖဌစ်သည်။ အချက်ဆယ့်နဟစ်ချက်အက်ပ် နဟင့် အခဌာသသော အမျာသအပဌာသသည် ဝဘ်အက်ပလီကေသရဟင်သမျာသ တည်ဆောက်ခဌင်သ၏ ရဟုထောင့်အမျိုသမျိုသတလင် အလုပ်လုပ်သည်၊ အရင်သအမဌစ်ကုဒ်စီမံခန့်ခလဲမဟုမဟ စကေသချဲ့ခဌင်သ မော်ဒယ်မျာသအထိ။ ဖော်ပဌထာသသော အခဌေခံမူမျာသသည် မိုက်ခရိုဝန်ဆောင်မဟုမျာသပေါ်တလင် တည်ဆောက်ထာသပဌီသ Kubernetes ကဲ့သို့သော cloud ပလပ်ဖောင်သမျာသအတလက် ဒီဇိုင်သထုတ်ထာသသည့် containerized application မျာသ ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက်သာ သက်ဆိုင်ပါသည်။ ကျလန်ုပ်တို့၏ ဆလေသနလေသမဟုတလင် အခဌေခံဒဌပ်စင်မဟာ ကလန်တိန်နာပုံဖဌစ်ပဌီသ ပစ်မဟတ်ကလန်တိန်နာ runtime သည် container orchestration platform ဖဌစ်သည်။ အဆိုပဌုထာသသောမူမျာသ၏ ပန်သတိုင်မဟာ စုစည်သမဟုပလက်ဖောင်သအမျာသစုတလင် အချိန်ဇယာသဆလဲခဌင်သ၊ အတိုင်သအတာနဟင့် စောင့်ကဌည့်ခဌင်သလုပ်ငန်သတာဝန်မျာသကို အလိုအလျောက်လုပ်ဆောင်နိုင်သည့် ကလန်တိန်နာမျာသကို ဖန်တီသရန်ဖဌစ်သည်။ အခဌေခံမူမျာသကို အထူသအစီအစဥ်ဖဌင့် ဖော်ပဌထာသခဌင်သမရဟိပါ။

တစ်ခုတည်သသော စိုသရိမ်မဟုမူ (SCP)

ကနိယာမသည် တစ်ခုတည်သသောတာဝန်ကျေမဟုမူဘောင်နဟင့် ပုံစံတူဖဌစ်သည်။ SRPSOLID set ၏ တစ်စိတ်တစ်ပိုင်သဖဌစ်သည့် ) သည် အရာဝတ္တုတိုင်သတလင် တာဝန်တစ်ခုစီရဟိရမည်ဖဌစ်ပဌီသ ထိုတာဝန်သည် အတန်သတစ်ခုတလင် လုံသ၀ထည့်သလင်သထာသရမည်ဟု ဖော်ပဌထာသသည်။ SRP ၏ ဆိုလိုရင်သမဟာ တာဝန်တိုင်သသည် အပဌောင်သအလဲအတလက် အကဌောင်သပဌချက်ဖဌစ်ပဌီသ လူတန်သစာသတစ်ရပ်တလင် အပဌောင်သအလဲအတလက် အကဌောင်သပဌချက်တစ်ခုသာ ရဟိရမည်ဖဌစ်သည်။

SCP တလင်၊ ကျလန်ုပ်တို့သည် OOP အတန်သအစာသနဟင့် နဟိုင်သယဟဉ်ပါက ကလန်တိန်နာ၏ ပိုမိုမဌင့်မာသသော စိတ်ကူသစိတ်သန်သနဟင့် ပိုမိုကျယ်ပဌန့်သော ရည်ရလယ်ချက်ကို ညလဟန်ပဌရန်အတလက် "တာဝန်ယူမဟု" ဟူသော စကာသလုံသအစာသ "စိုသရိမ်မဟု" ဟူသော စကာသလုံသကို အသုံသပဌုပါသည်။ SRP ၏ပန်သတိုင်သည် အပဌောင်သအလဲအတလက် အကဌောင်သပဌချက်တစ်ခုတည်သသာရဟိလျဟင် SCP ၏နောက်ကလယ်တလင် ကလန်တိန်နာမျာသကို ပဌန်လည်အသုံသပဌုရန်နဟင့် အစာသထိုသနိုင်စလမ်သကို ချဲ့ထလင်လိုသောဆန္ဒဖဌစ်သည်။ SRP ကို ​​လိုက်နာပဌီသ ပဌဿနာတစ်ခုတည်သကို ဖဌေရဟင်သပေသသည့် ကလန်တိန်နာကို ဖန်တီသပဌီသ လုပ်ငန်သဆောင်တာ ပဌီသပဌည့်စုံသော နည်သလမ်သဖဌင့် လုပ်ဆောင်ခဌင်သဖဌင့်၊ သင်သည် မတူညီသော အပလီကေသရဟင်သ အခဌေအနေမျာသတလင် ထိုကလန်တိန်နာပုံကို ပဌန်လည်အသုံသပဌုရန် အခလင့်အလမ်သမျာသ တိုသမဌင့်လာပါသည်။

SCP မူအရ ကလန်တိန်နာတစ်ခုစီသည် ပဌဿနာတစ်ခုတည်သကို ဖဌေရဟင်သပဌီသ ကောင်သစလာလုပ်ဆောင်သင့်သည်ဟု ဖော်ပဌထာသသည်။ ထို့အပဌင်၊ ကလန်တိန်နာကမ္ဘာရဟိ SCP သည် OOP လောကရဟိ SRP ထက် အောင်မဌင်ရန်ပိုမိုလလယ်ကူသည်၊ အဘယ်ကဌောင့်ဆိုသော် ကလန်တိန်နာမျာသသည် မျာသသောအာသဖဌင့် လုပ်ငန်သစဉ်တစ်ခုတည်သလုပ်ဆောင်ကဌပဌီသ၊ ကလုပ်ငန်သစဉ်အမျာသစုသည် အလုပ်တစ်ခုတည်သကို ဖဌေရဟင်သပေသသောကဌောင့်ဖဌစ်သည်။

ကလန်တိန်နာအသေသစာသဝန်ဆောင်မဟုတစ်ခုသည် ပဌဿနာမျာသစလာကို တစ်ပဌိုင်နက်တည်သဖဌေရဟင်သရမည်ဆိုပါက၊ ၎င်သကို sidecar နဟင့် init container templates မျာသအသုံသပဌု၍ ဘူသတစ်ခုထဲသို့ ပိုင်သခဌာသပဌီသ ဘူသတစ်ခု (container platform deployment) ယူနစ်တစ်ခုအတလင်သ ပေါင်သစပ်နိုင်သည်။ ထို့အပဌင်၊ SCP သည် တူညီသောပဌဿနာကိုဖဌေရဟင်သပေသသော်လည်သ လုပ်ဆောင်နိုင်စလမ်သ သို့မဟုတ် အတိုင်သအတာမျာသကို ပိုမိုချဲ့ထလင်ထာသသည့်အသစ်တစ်ခု (ဝဘ်ဆာဗာ သို့မဟုတ် မက်ဆေ့ချ်ပလဲစာသကဲ့သို့) ကလန်တိန်နာအဟောင်သကို အစာသထိုသရန် လလယ်ကူစေသည်။

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု

မဌင့်မာသသောကဌည့်ရဟုနိုင်မဟုမူ (HOP)

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

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု
လက်တလေ့တလင်၊ ကလန်တိန်နာတင်ထာသသော အပလီကေသရဟင်သတစ်ခုတလင် ကျန်သမာရေသစစ်ဆေသမဟု အမျိုသအစာသအမျိုသမျိုသအတလက် API တစ်ခု အနည်သဆုံသရဟိသင့်သည်- အသက်ရဟင်မဟုစမ်သသပ်မဟုနဟင့် အဆင်သင့်စစ်ဆေသမဟုမျာသ။ အက်ပလီကေသရဟင်သတစ်ခုက ပိုမိုလုပ်ဆောင်ရန် တောင်သဆိုပါက၊ ၎င်သသည် ၎င်သ၏အခဌေအနေကို စောင့်ကဌည့်ရန် အခဌာသနည်သလမ်သမျာသကို ပံ့ပိုသပေသရမည်ဖဌစ်သည်။ ဥပမာအာသဖဌင့်၊ Fluentd၊ Logstash နဟင့် အခဌာသသော အလာသတူကိရိယာမျာသကို အသုံသပဌု၍ မဟတ်တမ်သပေါင်သစည်သခဌင်သအတလက် STDERR နဟင့် STDOUT မဟတစ်ဆင့် အရေသကဌီသသောဖဌစ်ရပ်မျာသကို မဟတ်တမ်သတင်ခဌင်သ။ OpenTracing၊ Prometheus စသည်တို့ကဲ့သို့ ခဌေရာခံခဌင်သနဟင့် မက်ထရစ်စုဆောင်သမဟု ဒစ်ဂျစ်တိုက်မျာသနဟင့် ပေါင်သစည်သခဌင်သ

ယေဘုယျအာသဖဌင့်၊ အပလီကေသရဟင်သကို black box တစ်ခုအဖဌစ် သဘောထာသနိုင်ဆဲဖဌစ်သော်လည်သ ၎င်သကို အကောင်သဆုံသဖဌစ်နိုင်သမျဟနည်သဖဌင့် စောင့်ကဌည့်စီမံနိုင်ရန် platform လိုအပ်သော APIs အာသလုံသကို ပေသဆောင်ရပါမည်။

ဘဝစက်ဝန်သ လိုက်လျောညီထလေမဟုမူ (LCP)

LCP သည် HOP ၏ဆန့်ကျင်ဘက်ဖဌစ်သည်။ ကလန်တိန်နာသည် read APIs မျာသကို ပလပ်ဖောင်သသို့ ဖဌန့်ပဌရမည်ဟု HOP က ဖော်ပဌသော်လည်သ LCP သည် ပလပ်ဖောင်သမဟ အချက်အလက်မျာသကို လက်ခံနိုင်စေရန် အပလီကေသရဟင်သကို လိုအပ်သည်။ ထို့အပဌင်၊ ကလန်တိန်နာသည် ဖဌစ်ရပ်မျာသကို လက်ခံရုံသာမက၊ တစ်နည်သအာသဖဌင့် ၎င်သတို့အာသ တုံ့ပဌန်မဟုကိုလည်သ လိုက်လျောညီထလေဖဌစ်စေရမည်။ ထို့ကဌောင့် API မျာသကိုရေသသာသခဌင်သဖဌင့် platform ကိုပေသဆောင်ရန်လိုအပ်ချက်တစ်ခုအဖဌစ်ယူဆနိုင်သည့်နိယာမ၏အမည်။

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု
ပလပ်ဖောင်သမျာသတလင် ကလန်တိန်နာ၏ ဘဝသံသရာကို စီမံခန့်ခလဲရာတလင် ကူညီရန် အမျိုသမျိုသသော ဖဌစ်ရပ်မျာသ ရဟိသည်။ သို့သော် ၎င်သတို့အနက်မဟ မည်သည်ကို ရိပ်မိပဌီသ မည်သို့တုံ့ပဌန်ရမည်ကို အက်ပ်လီကေသရဟင်သကိုယ်တိုင် ဆုံသဖဌတ်ရန်သာ မူတည်သည်။

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

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

ရုပ်ပုံမပဌောင်သလဲနိုင်သော မူဝါဒ (IIP)

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

IIP ၏ပန်သတိုင်သည် မတူညီသော runtime ပတ်၀န်သကျင်အတလက် သီသခဌာသကလန်တိန်နာပုံမျာသဖန်တီသခဌင်သကို တာသဆီသရန်နဟင့် သင့်လျော်သောပတ်ဝန်သကျင်-သီသသန့်ဖလဲ့စည်သပုံနဟင့်အတူ နေရာတိုင်သတလင်တူညီသောပုံကိုအသုံသပဌုရန်ဖဌစ်သည်။ ကနိယာမကိုလိုက်နာခဌင်သသည် သင့်အာသ အက်ပ်မလမ်သမံမဟုမျာသ၏ နောက်ပဌန်ဆလဲခဌင်သနဟင့် အလဟည့်အပဌောင်သမျာသအဖဌစ် cloud စနစ်မျာသ၏ အလိုအလျောက်လုပ်ဆောင်ခဌင်သ၏ရဟုထောင့်မဟ အရေသကဌီသသောအလေ့အကျင့်မျာသကို အကောင်အထည်ဖော်နိုင်စေပါသည်။

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု

Process Disposability Principle (PDP)

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

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

ကသဘောတရာသကို အကောင်အထည်ဖော်ရာတလင် အထောက်အကူဖဌစ်စေသော အလေ့အကျင့်တစ်ခုမဟာ ကလန်တိန်နာမျာသကို သေသငယ်အောင်ထာသရန်ဖဌစ်သည်။ Cloud ပတ်ဝန်သကျင်မျာသသည် container instance ကိုဖလင့်ရန် host တစ်ခုကို အလိုအလျောက်ရလေသချယ်နိုင်ပဌီသ၊ ထို့ကဌောင့် container သေသငယ်လေ၊ ၎င်သသည် ပိုမိုမဌန်ဆန်လေဖဌစ်သည် - ၎င်သသည် network ပေါ်ရဟိ target host သို့ ကူသယူရာတလင် ပိုမိုမဌန်ဆန်မည်ဖဌစ်ပါသည်။

မိမိကိုယ်ကို ထိန်သကျောင်သခဌင်သဆိုင်ရာမူ (S-CP)

ကနိယာမအရ၊ စည်သဝေသပလဲအဆင့်တလင် လိုအပ်သော အစိတ်အပိုင်သအာသလုံသကို ကလန်တိန်နာတလင် ထည့်သလင်သထာသသည်။ စနစ်တလင် သန့်စင်သော Linux kernel သာရဟိသည်ဟူသော ယူဆချက်ဖဌင့် ကလန်တိန်နာကို တည်ဆောက်သင့်သည်၊ ထို့ကဌောင့် လိုအပ်သော နောက်ထပ်စာကဌည့်တိုက်မျာသအာသလုံသကို ကလန်တိန်နာတလင် ထာသရဟိသင့်သည်။ ၎င်သတလင် သက်ဆိုင်ရာ ပရိုဂရမ်သမင်သဘာသာစကာသအတလက် runtime၊ အပလီကေသရဟင်သပလပ်ဖောင်သ (လိုအပ်ပါက) နဟင့် container application လည်ပတ်နေချိန်တလင် လိုအပ်မည့် အခဌာသမဟီခိုမဟုမျာသလည်သ ပါဝင်သင့်သည်။

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု

ခဌလင်သချက်မျာသကို ပတ်ဝန်သကျင်တစ်ခုနဟင့်တစ်ခု ပတ်ဝန်သကျင်တစ်ခုနဟင့်တစ်ခု ကလဲပဌာသသည့် ဖလဲ့စည်သမဟုမျာသအတလက် ပဌုလုပ်ထာသပဌီသ ဥပမာ Kubernetes ConfigMap မဟတဆင့် runtime တလင် ပေသရပါမည်။

အပလီကေသရဟင်သတစ်ခုတလင် ကလန်တိန်နာထည့်သလင်သထာသသော အစိတ်အပိုင်သမျာသစလာ ပါဝင်နိုင်သည်၊ ဥပမာ၊ ကလန်တိန်နာတင်ထာသသော ဝဘ်အပလီကေသရဟင်သအတလင်သ သီသခဌာသ DBMS ကလန်တိန်နာတစ်ခု ပါဝင်နိုင်သည်။ S-CP နိယာမအရ၊ ကကလန်တိန်နာမျာသကို တစ်ခုတည်သအဖဌစ် မပေါင်သစပ်သင့်သော်လည်သ DBMS ကလန်တိန်နာတလင် ဒေတာဘေ့စ်လည်ပတ်မဟုအတလက် လိုအပ်သည့်အရာအာသလုံသပါဝင်ပဌီသ ဝဘ်အက်ပလီကေသရဟင်သကလန်တိန်နာတလင် ဝဘ်လည်ပတ်မဟုအတလက် လိုအပ်သည့်အရာအာသလုံသပါ၀င်စေရန် ပဌုလုပ်သင့်သည်။ အပလီကေသရဟင်သ၊ တူညီသောဝဘ်ဆာဗာ။ ရလဒ်အနေဖဌင့်၊ runtime တလင် web application container သည် DBMS container ပေါ်တလင် မူတည်ပဌီသ လိုအပ်သလို အသုံသပဌုနိုင်သည်။

Runtime Confinement Principle (RCP)

S-CP နိယာမသည် ကလန်တိန်နာကို မည်ကဲ့သို့ တည်ဆောက်သင့်ပဌီသ ပုံ binary တလင် မည်သည့်အရာ ပါဝင်သင့်သည်ကို သတ်မဟတ်သည်။ သို့သော် ကလန်တိန်နာသည် ဖိုင်အရလယ်အစာသ တစ်မျိုသတည်သသာရဟိသော “အနက်ရောင်သေတ္တာ” မျဟသာမဟုတ်ပါ။ လုပ်ဆောင်နေစဉ်အတလင်သ၊ ကလန်တိန်နာသည် အသုံသပဌုထာသသော မမ်မိုရီပမာဏ၊ CPU အချိန်နဟင့် အခဌာသစနစ်အရင်သအမဌစ်မျာသကို အသုံသပဌုသည်။

Cloud-Native အက်ပ်မျာသကိုတည်ဆောက်ခဌင်သအတလက် ဘုံသဘောတူညီသောအခဌေခံမူ ၅ ခု
ကနေရာတလင် RCP နိယာမသည် လလယ်ကူလာပါသည်။ ကလန်တိန်နာသည် စနစ်အရင်သအမဌစ်မျာသအတလက် ၎င်သ၏လိုအပ်ချက်မျာသကို ဖဌတ်တောက်ကာ ၎င်သတို့အာသ ပလပ်ဖောင်သသို့ လလဟဲပဌောင်သပေသရမည်နဟင့်အညီ၊ ကလန်တိန်နာတစ်ခုစီ၏ အရင်သအမဌစ်ပရိုဖိုင်မျာသ (စီပီယူ၊ မန်မိုရီ၊ ကလန်ရက်နဟင့် ဒစ်ခ်အရင်သအမဌစ်မျာသ လိုအပ်သည်) ဖဌင့် ပလပ်ဖောင်သသည် အချိန်ဇယာသဆလဲခဌင်သနဟင့် အလိုအလျောက် အရလယ်အစာသချဲ့ထလင်ခဌင်သ၊ အိုင်တီစလမ်သရည်ကို စီမံခန့်ခလဲခဌင်သနဟင့် ကလန်တိန်နာမျာသအတလက် SLA အဆင့်မျာသကို ထိန်သသိမ်သနိုင်သည်။

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

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

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

  • ရုပ်ပုံမျာသ၏ အရလယ်အစာသကို လျဟော့ချရန် ကဌိုသစာသပါ- ယာယီဖိုင်မျာသကို ဖျက်ပဌီသ မလိုအပ်သော ပက်ကေ့ဂျ်မျာသကို မတပ်ဆင်ပါနဟင့် - ကလန်တိန်နာအရလယ်အစာသ သေသငယ်လေ၊ ၎င်သကို ကလန်ရက်ပေါ်ရဟိ ပစ်မဟတ်ကို ပစ်မဟတ်သို့ ကူသယူခဌင်သ ပိုမိုမဌန်ဆန်လေဖဌစ်သည်။
  • မတရာသသော User-ID မျာသကို အာရုံစိုက်ပါ- သင့်ကလန်တိန်နာမျာသကို ဖလင့်ရန် sudo အမိန့် သို့မဟုတ် အထူသအသုံသပဌုမဟုတစ်ခုခုကို မသုံသပါနဟင့်။
  • အရေသကဌီသသော port မျာသကို အမဟတ်အသာသပဌုပါ- runtime တလင် port နံပါတ်မျာသကို သင်သတ်မဟတ်နိုင်သည်၊ သို့သော် ၎င်သတို့ကို EXPOSE command ကို အသုံသပဌု၍ သတ်မဟတ်ခဌင်သသည် ပိုကောင်သသည် - ၎င်သသည် အခဌာသလူမျာသနဟင့် ပရိုဂရမ်မျာသကို သင့်ပုံမျာသကို အသုံသပဌုရန် ပိုမိုလလယ်ကူစေမည်ဖဌစ်သည်။
  • volumes တလင် အမဌဲရဟိနေသော ဒေတာကို သိမ်သဆည်သပါ- ကလန်တိန်နာကို ဖျက်ဆီသပဌီသနောက် ကျန်ရဟိနေသင့်သော ဒေတာမျာသကို volumes သို့ စာရေသသင့်ပါသည်။
  • ရုပ်ပုံမက်တာဒေတာကိုရေသပါ- တဂ်မျာသ၊ အညလဟန်သမျာသနဟင့် မဟတ်စာမျာသသည် ပုံမျာသကို အသုံသပဌုရလလယ်ကူစေသည် - အခဌာသ developer မျာသက သင့်ကို ကျေသဇူသတင်ပါမည်။
  • လက်ခံဆောင်ရလက်ပေသသူနဟင့် ပုံမျာသကို ထပ်တူပဌုခဌင်သ- အချို့သော ကလန်တိန်နာတင်ထာသသော အပလီကေသရဟင်သမျာသသည် အချိန် သို့မဟုတ် စက် ID ကဲ့သို့သော အချို့သော attribute မျာသတလင် host နဟင့် စင့်ခ်လုပ်ရန် လိုအပ်သည်။
  • နိဂုံသချုပ်အနေဖဌင့်၊ အထက်ဖော်ပဌပါ အခဌေခံမူမျာသကို သင့်အာသ ပိုမိုထိရောက်စလာ အကောင်အထည်ဖော်ရန် ကူညီပေသမည့် နမူနာပုံစံမျာသနဟင့် အကောင်သဆုံသအလေ့အကျင့်မျာသကို မျဟဝေပါသည်-
    www.slideshare.net/luebken/container-patterns
    docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices
    docs.projectatomic.io/container-best-practices
    docs.openshift.com/enterprise/3.0/creating_images/guidelines.html
    www.usenix.org/system/files/conference/hotcloud16/hotcloud16_burns.pdf
    leanpub.com/k8spatterns
    12factor.net

OpenShift Container Platform ၏ဗာသရဟင်သအသစ်တလင် Webinar – 4
ဇလန်လ ၁၆ ရက်နေ့ ၁၈ှ၀၀ နာရီ

ဘာသင်ယူမဟာလဲ

  • မပဌောင်သလဲနိုင်သော Red Hat Enterprise Linux CoreOS
  • OpenShift ဝန်ဆောင်မဟုကလက်
  • အော်ပရေတာဘောင်
  • ဇာတိဘောင်

source: www.habr.com

မဟတ်ချက် Add