အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

အာသလုံသမင်္ဂလာပါ! ကျလန်တော့်နာမည် Pavel Agaletsky ပါ။ ကျလန်ုပ်သည် Lamoda ပို့ဆောင်မဟုစနစ်အာသ ဖော်ဆောင်သည့် အဖလဲ့တလင် အဖလဲ့ခေါင်သဆောင်အဖဌစ် လုပ်ဆောင်ပါသည်။ 2018 တလင်၊ HighLoad++ ကလန်ဖရင့်တလင် ကျလန်ုပ်ပဌောခဲ့ပဌီသ၊ ယနေ့ ကျလန်ုပ်၏အစီရင်ခံစာ၏ စာသာသမဟတ်တမ်သကို တင်ပဌလိုပါသည်။

ကျလန်ုပ်၏ ခေါင်သစဉ်သည် မတူညီသော ပတ်ဝန်သကျင်မျာသတလင် စနစ်မျာသနဟင့် ဝန်ဆောင်မဟုမျာသ ဖဌန့်ကျက်ရာတလင် ကျလန်ုပ်တို့၏ ကုမ္ပဏီ၏ အတလေ့အကဌုံအတလက် ရည်ရလယ်ပါသည်။ ကျလန်ုပ်တို့၏ သမိုင်သမတင်မီအချိန်မျာသမဟစတင်၍ စနစ်အာသလုံသကို သာမန် virtual ဆာဗာမျာသသို့ ဖဌန့်ကျက်လိုက်သောအခါ Nomad မဟ Kubernetes တလင် ဖဌန့်ကျက်ခဌင်သသို့ တဖဌည်သဖဌည်သ ကူသပဌောင်သသလာသခဌင်သဖဌင့် အဆုံသသတ်ပါသည်။ အဲဒါကို ဘာကဌောင့်လုပ်ခဲ့သလဲ နဲ့ လုပ်ငန်သစဉ်မဟာ ဘယ်လိုအခက်အခဲတလေရဟိခဲ့လဲ ပဌောပဌမယ်။

အပလီကေသရဟင်သမျာသကို VM သို့ ဖဌန့်ကျက်နေသည်။

လလန်ခဲ့သော 3 နဟစ်က ကုမ္ပဏီ၏ စနစ်မျာသနဟင့် ဝန်ဆောင်မဟုမျာသအာသလုံသကို ပုံမဟန် virtual server မျာသပေါ်တလင် ဖဌန့်ကျက်ချထာသကဌောင်သကို စတင်ကဌပါစို့။ နည်သပညာအရ၊ ကျလန်ုပ်တို့၏စနစ်မျာသအတလက် ကုဒ်အာသလုံသကို jenkins ကိုအသုံသပဌု၍ အလိုအလျောက် တပ်ဆင်ခဌင်သကိရိယာမျာသကို အသုံသပဌု၍ စုစည်သကာ စုစည်သထာသခဌင်သဖဌစ်ပါသည်။ Ansible ကို အသုံသပဌု၍ ၎င်သကို ကျလန်ုပ်တို့၏ဗာသရဟင်သထိန်သချုပ်မဟုစနစ်မဟ virtual ဆာဗာမျာသထံ ဖဌန့်ကျက်ခဲ့သည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့၏ကုမ္ပဏီတလင်ရဟိသော စနစ်တစ်ခုစီကို အနည်သဆုံသ ဆာဗာ 2 ခုတလင် ဖဌန့်ကျက်ထာသပါသည်- ၎င်သတို့ထဲမဟ တစ်ခုကို ညသခေါင်သပေါ်၊ ဒုတိယတစ်ခုသည် အမဌီသတလင် ရဟိနေသည်။ ကစနစ်နဟစ်ခုသည် ၎င်သတို့၏ ဆက်တင်မျာသ၊ ပါဝါ၊ ဖလဲ့စည်သမဟုစသည်ဖဌင့် အာသလုံသတလင် တစ်ခုနဟင့်တစ်ခု လုံသဝတူညီပါသည်။ ၎င်သတို့ကဌာသရဟိ တစ်ခုတည်သသော ခဌာသနာသချက်မဟာ ညသခေါင်သသည် အသုံသပဌုသူအသလာသအလာကို လက်ခံရရဟိခဲ့ပဌီသ အမဌီသသည် သုံသစလဲသူအသလာသအလာကို မည်သည့်အခါမျဟ မရရဟိခဲ့ပေ။

ဘာအတလက်လဲ။

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

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

ကအရာအာသလုံသတလင် ကျလန်ုပ်တို့ အဘယ်အကျိုသကျေသဇူသမျာသ တလေ့ခဲ့သနည်သ။

  1. ပထမဆုံသအနေနဲ့ လုံလောက်ပါပဌီ။ အလုပ်ဖဌစ်ရုံပါပဲ။ လူအမျာသစုသည် ပုံမဟန် virtual ဆာဗာမျာသတလင် အသုံသပဌုဖူသကဌသောကဌောင့် ကကဲ့သို့ ဖဌန့်ကျက်မဟုအစီအစဉ် မည်သို့အလုပ်လုပ်သည်ကို လူတိုင်သနာသလည်ပါသည်။
  2. ဒါက လုံလောက်ပါတယ်။ ယုံကဌည်စိတ်ချရသောဖဌန့်ကျက်နည်သပညာသည် ရိုသရဟင်သသောကဌောင့် ကုမ္ပဏီထောင်ပေါင်သမျာသစလာက စမ်သသပ်သည်။ ကနည်သဖဌင့် ဆာဗာသန်သပေါင်သမျာသစလာကို အသုံသချသည်။ တစ်ခုခုကို ချိုသဖျက်ဖို့ ခက်တယ်။
  3. နောက်ဆုံသတော့ ကျလန်တော်တို့ ရနိုင်ခဲ့တယ်။ အဏုမဌူဗုံသ ဖဌန့်ကျက်မဟု. ဗာသရဟင်သအဟောင်သနဟင့် အသစ်ကဌာသသိသာထင်ရဟာသသောအဆင့်သို့ ကူသပဌောင်သခဌင်သမရဟိဘဲ သုံသစလဲသူမျာသအတလက် တပဌိုင်နက်တည်သ ဖဌစ်ပေါ်လာသော ဖဌန့်ကျက်မဟုမျာသ။

သို့သော် ကအရာအာသလုံသတလင် ချို့ယလင်သချက်မျာသစလာကိုလည်သ ကျလန်ုပ်တို့တလေ့ခဲ့ရသည်-

  1. ထုတ်လုပ်မဟုပတ်ဝန်သကျင်၊ ဖလံ့ဖဌိုသတိုသတက်ရေသပတ်ဝန်သကျင်အပဌင် အခဌာသပတ်ဝန်သကျင်မျာသလည်သ ရဟိသေသသည်။ ဥပမာ qa နဟင့် preproduction။ ထိုအချိန်တလင် ကျလန်ုပ်တို့တလင် ဆာဗာမျာသစလာရဟိပဌီသ ဝန်ဆောင်မဟု 60 ခန့်ရဟိသည်။ ကအကဌောင်သကဌောင့် လိုအပ်ပါသည်။ ဝန်ဆောင်မဟုတစ်ခုစီအတလက်၊ ၎င်သအတလက် နောက်ဆုံသထလက်ဗာသရဟင်သကို ထိန်သသိမ်သပါ။ virtual စက်။ ထို့အပဌင်၊ သင်သည် စာကဌည့်တိုက်မျာသကို အပ်ဒိတ်လုပ်ရန် သို့မဟုတ် မဟီခိုမဟုအသစ်မျာသကို ထည့်သလင်သလိုပါက၊ ပတ်ဝန်သကျင်အာသလုံသတလင် ၎င်သကို လုပ်ဆောင်ရန် လိုအပ်သည်။ devops သည် လိုအပ်သော ပတ်ဝန်သကျင်ဆက်တင်မျာသကို လုပ်ဆောင်သည့်အချိန်နဟင့် သင့်အပလီကေသရဟင်သ၏နောက်ထပ်ဗာသရဟင်သအသစ်ကို အသုံသချမည့်အချိန်ကို ထပ်တူပဌုရန်လည်သ လိုအပ်ပါသည်။ ကအခဌေအနေမျိုသတလင်၊ ကျလန်ုပ်တို့၏ပတ်ဝန်သကျင်သည် ပတ်ဝန်သကျင်အာသလုံသတလင် အနည်သငယ်ကလဲပဌာသသလာသမည့် အခဌေအနေတစ်ခုသို့ တစ်ပဌိုင်နက်ရောက်ရဟိရန် လလယ်ကူပါသည်။ ဥပမာအာသဖဌင့်၊ QA ပတ်ဝန်သကျင်တလင် စာကဌည့်တိုက်မျာသ၏ ဗာသရဟင်သအချို့ရဟိမည်ဖဌစ်ပဌီသ ထုတ်လုပ်မဟုပတ်ဝန်သကျင်တလင် ပဌဿနာမျာသဖဌစ်ပေါ်စေမည့် ကလဲပဌာသသည့်အရာမျာသ ရဟိလိမ့်မည်။
  2. မဟီခိုမဟုကို အပ်ဒိတ်လုပ်ရာတလင် ခက်ခဲခဌင်သ။ သင်၏လျဟောက်လလဟာ။ အဲဒါက မင်သအပေါ်မဟာမမူတည်ဘဲ တခဌာသအသင်သအပေါ်မဟာမူတည်တယ်။ ပဌောရရင်၊ ဆာဗာတလေကို ထိန်သသိမ်သတဲ့ devops အဖလဲ့ကနေ။ သင်သည် ၎င်သတို့အာသ သင့်လျော်သော အလုပ်တစ်ခုနဟင့် သင်ပဌုလုပ်လိုသည့် အကဌောင်သအရာကို ဖော်ပဌချက်ပေသရမည်။
  3. ထိုအချိန်တလင်၊ ကျလန်ုပ်တို့သည် ၎င်သတို့ထဲမဟ ပိုမျာသလာမည်ကို ကျလန်ုပ်တို့ နာသလည်ထာသသောကဌောင့် ကျလန်ုပ်တို့၏ ကဌီသမာသသော ကဌီသမာသသော ဝန်ဆောင်ကဌီသမျာသကို သီသခဌာသအသေသစာသအဖဌစ် ပိုင်သခဌာသလိုပါသည်။ ထိုအချိန်တလင်၊ ၎င်သတို့ထဲမဟ 100 ကျော်ရဟိနေပဌီဖဌစ်သည်။ ဝန်ဆောင်မဟုအသစ်တစ်ခုစီအတလက်၊ ထိန်သသိမ်သရန်နဟင့် အသုံသပဌုရန် လိုအပ်သည့် သီသခဌာသ virtual machine အသစ်တစ်ခုကို ဖန်တီသရန် လိုအပ်ပါသည်။ ထို့အပဌင်၊ သင်ကာသတစ်စီသတည်သမလိုအပ်ပါ၊ အနည်သဆုံသနဟစ်စီသ။ ကအရာအာသလုံသကို QA ပတ်ဝန်သကျင်တလင် ပေါင်သထည့်ထာသသည်။ ၎င်သသည် ပဌဿနာမျာသကို ဖဌစ်စေပဌီသ စနစ်အသစ်မျာသကို တည်ဆောက်ပဌီသ လုပ်ဆောင်ရန် သင့်အတလက် ပိုမိုခက်ခဲစေသည်။ ရဟုပ်ထလေသ၊ ဈေသကဌီသပဌီသ ရဟည်လျာသသော လုပ်ငန်သစဉ်။

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

ဘယ်ဟာယူလို့ရမလဲ ဆိုတာကို အချိန်အတော်ကဌာအောင် စဉ်သစာသခဲ့ပါတယ်။ အမဟန်မဟာ ထိုအချိန်က ပုံမဟန် virtual server မျာသပေါ်တလင် ကဖဌန့်ကျက်မဟု stack သည် အတန်ငယ် ခေတ်နောက်ကျနေပဌီဖဌစ်သောကဌောင့် ၎င်သတို့တလင် operating system ၏နောက်ဆုံသထလက်ဗာသရဟင်သမျာသမရဟိသောကဌောင့်ဖဌစ်သည်။ တစ်ချိန်ချိန်တလင်၊ ပံ့ပိုသရန်အလလန်အဆင်ပဌေသော FreeBSD ပင်ရဟိခဲ့သည်။ Docker သို့ တတ်နိုင်သမျဟ မဌန်မဌန် ပဌောင်သရလဟေ့ရန် လိုအပ်ကဌောင်သ ကျလန်ုပ်တို့ နာသလည်ပါသည်။ ကျလန်ုပ်တို့၏အဖလဲ့သာသမျာသသည် ၎င်သတို့၏လက်ရဟိအတလေ့အကဌုံကို မတူညီသောဖဌေရဟင်သနည်သမျာသဖဌင့် ကဌည့်ရဟုပဌီသ Nomad ကဲ့သို့သော စနစ်တစ်ခုကို ရလေသချယ်ခဲ့သည်။

Nomad သို့ပဌောင်သပါ။

Nomad သည် HashiCorp ၏ ထုတ်ကုန်တစ်ခုဖဌစ်သည်။ ၎င်သတို့သည် ၎င်သတို့၏ အခဌာသသော ဖဌေရဟင်သနည်သမျာသအတလက်လည်သ လူသိမျာသသည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

"ကောင်စစ်ဝန်" ဝန်ဆောင်မဟုရဟာဖလေတလေ့ရဟိမဟုအတလက် ကိရိယာတစ်ခုဖဌစ်သည်။

"မဌေပဌင်" - ဖလဲ့စည်သမဟုစနစ်ဖဌင့် ၎င်သတို့ကို configure လုပ်ခလင့်ပဌုသော ဆာဗာမျာသကို စီမံခန့်ခလဲရန် စနစ်တစ်ခု၊ ဟုခေါ်သော infrastructure-as-a-code။

"လေလလင့်" သီသသန့်ဖလဲ့စည်သပုံဖိုင်မျာသမဟတစ်ဆင့် virtual machines မျာသကို စက်တလင်သ သို့မဟုတ် cloud တလင် အသုံသချနိုင်စေပါသည်။

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

သင့်စနစ်ကို Nomad သို့ အသုံသချရန် သင်ဘာလိုအပ်သနည်သ။

  1. ပထမဆုံသအနေနဲ့ သင်လိုအပ်ပါတယ်။ docker ပုံ သင်၏လျဟောက်လလဟာ။ ၎င်သကိုတည်ဆောက်ပဌီသ docker image repository တလင်ထာသရန်လိုအပ်သည်။ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ ကအရာသည် အမျိုသမျိုသသော ရဟေသဟောင်သပစ္စည်သမျာသကို ၎င်သထဲသို့ တလန်သပို့နိုင်သည့် စနစ်တစ်ခုဖဌစ်သည်။ ၎င်သသည် မော်ကလန်သတိုက်မျာသ၊ docker ပုံမျာသ၊ ရေသဖလဲ့သူ PHP ပက်ကေ့ခ်ျမျာသ၊ NPM ပက်ကေ့ဂျ်မျာသနဟင့် အခဌာသအရာမျာသကို သိမ်သဆည်သနိုင်သည်။
  2. လိုအပ်သည်မျာသလည်သရဟိသည်။ configuration ဖိုင်Nomad သည် မည်သည့်နေရာ၊ မည်သည့်ပမာဏတလင် သင်အသုံသပဌုလိုသည်ကို ပဌောပဌပါမည်။

Nomad အကဌောင်သပဌောသောအခါ၊ ၎င်သသည် HCL ဘာသာစကာသကို ၎င်သ၏ အချက်အလက်ဖိုင်ဖော်မတ်အဖဌစ် အသုံသပဌုသည်။ HashiCorp ဖလဲ့စည်သမဟုဘာသာစကာသ. ၎င်သသည် သင့်ဝန်ဆောင်မဟုကို Nomad ဝေါဟာရမျာသဖဌင့် ဖော်ပဌနိုင်စေမည့် Yaml ၏ superset တစ်ခုဖဌစ်သည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

၎င်သသည် သင်အသုံသပဌုလိုသည့် ကလန်တိန်နာ မည်မျဟရဟိသည်ကို ပဌောကဌာသနိုင်စေကာ၊ အသုံသချမဟုအတလင်သ ၎င်သတို့ထံ အမျိုသမျိုသသော ဘောင်မျာသကို ဖဌတ်သန်သရန် ပုံမျာသမဟ ခလင့်ပဌုသည်။ ထို့ကဌောင့် သင်သည် ကဖိုင်ကို Nomad သို့ ကျလေသမလေသပဌီသ ၎င်သသည် ၎င်သနဟင့်အညီ ကလန်တိန်နာမျာသကို ထုတ်လုပ်မဟုသို့ စတင်စေသည်။

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

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

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

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

ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် ပရောဂျက်အာသလုံသအတလက် အသုံသမျာသသည့် ဖဌန့်ကျက်မဟု script ကို သိုလဟောင်ရုံတလင် ထာသရဟိထာသပဌီသ၊ သင့်ဝန်ဆောင်မဟုကို ထုတ်လုပ်ခဌင်သ၊ လိုချင်သောပတ်ဝန်သကျင်သို့ လိုချင်သောပစ်မဟတ်သို့ စတင်အသုံသပဌုနိုင်စေရန်နဟင့် အသုံသချနိုင်စေပါသည်။ ကျလန်ုပ်တို့၏ HCL config ကို template အဖဌစ်ပဌောင်သသောအခါတလင်၊ ယခင်က ပုံမဟန် Nomad config ဖဌစ်ခဲ့သည့် HCL ဖိုင်သည် ကကိစ္စတလင် အနည်သငယ်ကလဲပဌာသသလာသပါသည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် env ဖိုင်မျာသ သို့မဟုတ် အခဌာသရင်သမဌစ်မျာသမဟ ယူဆောင်သလာသသော ပဌောင်သလဲနိုင်သော ထည့်သလင်သမဟုမျာသဖဌင့် အချို့သော config တည်နေရာ variable မျာသကို အစာသထိုသခဲ့သည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် HCL ဖိုင်မျာသကို ဒိုင်သနမစ်ဖဌင့် စုဆောင်သရန် အခလင့်အရေသရခဲ့သည်၊ ဆိုလိုသည်မဟာ၊ ကျလန်ုပ်တို့သည် သာမန်မပဌောင်သလဲနိုင်သော ထည့်သလင်သမဟုမျာသကိုသာ အသုံသပဌုနိုင်သည်။ jinja သည် loops နဟင့် condition မျာသကို ပံ့ပိုသပေသသောကဌောင့်၊ သင်သည် သင်၏ application အတိအကျကို နေရာချထာသမဟုအပေါ် မူတည်၍ ပဌောင်သလဲနိုင်သော configuration files မျာသကို ဖန်တီသနိုင်သည်။

ဥပမာအာသဖဌင့်၊ သင်သည် သင်၏ဝန်ဆောင်မဟုကို မထုတ်လုပ်မီနဟင့် ထုတ်လုပ်ရေသတလင် အသုံသချလိုသည်။ ထုတ်လုပ်ရေသမတိုင်မီတလင် သင်သည် cron scripts မျာသကိုမလုပ်ဆောင်ချင်သော်လည်သ ၎င်သသည်အလုပ်လုပ်ကဌောင်သသေချာစေရန် သီသခဌာသဒိုမိန်သတလင် ဝန်ဆောင်မဟုကိုမဌင်လိုသည်ဆိုကဌပါစို့။ ဝန်ဆောင်မဟုကို အသုံသပဌုသူတိုင်သအတလက်၊ လုပ်ငန်သစဉ်သည် အလလန်ရိုသရဟင်သပဌီသ ပလင့်လင်သမဌင်သာမဟုရဟိသည်။ သင်လုပ်ဆောင်ရန် လိုအပ်သည်မဟာ deploy.sh ဖိုင်ကို execute ဖဌစ်ပဌီသ သင်အသုံသပဌုလိုသော ဝန်ဆောင်မဟုနဟင့် မည်သည့်ပစ်မဟတ်ကို သတ်မဟတ်ပါ။ ဥပမာအာသဖဌင့်၊ သင်သည် ရုရဟာသ၊ ဘီလာရုစ် သို့မဟုတ် ကာဇက်စတန်တလင် အချို့သောစနစ်တစ်ခုကို အသုံသချလိုသည်။ ၎င်သကိုပဌုလုပ်ရန်၊ ကန့်သတ်ချက်မျာသထဲမဟတစ်ခုကိုပဌောင်သပါ၊ မဟန်ကန်သောဖလဲ့စည်သမဟုဖိုင်ကိုသင်ရလိမ့်မည်။

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

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

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

သင်၏ front-end load balancer မဟ မည်သည့်ဝန်ဆောင်မဟုသို့ traffic ပေသပို့ရမည်ကို သိရဟိပဌီသသည်နဟင့် ၎င်သသည် ၎င်သကို သင့်အပလီကေသရဟင်သနဟင့်ကိုက်ညီသော သင့်လျော်သောကလန်တိန်နာ သို့မဟုတ် ကလန်တိန်နာမျာသစလာသို့ ပေသပို့ပါသည်။ သဘာဝအတိုင်သ၊ ဘေသကင်သရေသကိုလည်သ စဉ်သစာသဖို့ လိုပါတယ်။ ဝန်ဆောင်မဟုအာသလုံသသည် ကလန်တိန်နာအတလင်သရဟိ တူညီသော virtual machines မျာသတလင် အလုပ်လုပ်သော်လည်သ၊ ၎င်သသည် မျာသသောအာသဖဌင့် အခဌာသမည်သည့်ဝန်ဆောင်မဟုမဟ အခမဲ့ဝင်ရောက်ခလင့်ကို တာသဆီသရန် လိုအပ်ပါသည်။ ဒါကို အပိုင်သခလဲခဌင်သအာသဖဌင့် ကျလန်တော်တို့ အောင်မဌင်ခဲ့ပါတယ်။ ဝန်ဆောင်မဟုတစ်ခုစီကို ၎င်သ၏ကိုယ်ပိုင် virtual network တလင် စတင်လုပ်ဆောင်ခဲ့ပဌီသ၊ အခဌာသစနစ်မျာသနဟင့် ဝန်ဆောင်မဟုမျာသသို့ ဝင်ရောက်ခလင့်/ငဌင်သပယ်ခဌင်သအတလက် လမ်သကဌောင်သစည်သမျဉ်သမျာသနဟင့် စည်သမျဉ်သမျာသကို သတ်မဟတ်ပေသထာသသည်။ ၎င်သတို့သည် ကအစုအဝေသအတလင်သတလင်ရော ၎င်သအပဌင်ဘက်တလင်ပါ တည်ရဟိနိုင်သည်။ ဥပမာအာသဖဌင့်၊ သင်သည် ဝန်ဆောင်မဟုတစ်ခုအာသ သီသခဌာသဒေတာဘေ့စ်တစ်ခုသို့ ချိတ်ဆက်ခဌင်သမဟ တာသဆီသလိုပါက၊ ၎င်သကို network-level segmentation မဟတဆင့် လုပ်ဆောင်နိုင်သည်။ ဆိုလိုသည်မဟာ၊ အမဟာသကဌောင့်ပင်၊ သင်သည် စမ်သသပ်မဟုပတ်ဝန်သကျင်မဟ သင်၏ထုတ်လုပ်မဟုဒေတာဘေ့စ်သို့ မတော်တဆချိတ်ဆက်၍မရပါ။

အကူသအပဌောင်သက လူသာသအရင်သအမဌစ်နဲ့ ပတ်သက်ပဌီသ ကျလန်တော်တို့ကို ဘယ်လောက်ကုန်ကျခဲ့လဲ။

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

အဖလဲ့တစ်ဖလဲ့ချင်သစီသည် ၎င်သတို့၏ စနစ်မျာသ၏ docker ပုံမျာသကို လလတ်လပ်စလာ လုပ်ဆောင်ရန် တာဝန်ရဟိသည်ဟူသော ချဉ်သကပ်မဟုကို ကျလန်ုပ်တို့ လက်ခံကျင့်သုံသပါသည်။ DevOps သည် ဖဌန့်ကျက်မဟုအတလက် လိုအပ်သော ယေဘူယျအခဌေခံအဆောက်အညမျာသဖဌစ်သည့် အစုအဝေသအတလက် ပံ့ပိုသမဟု၊ CI စနစ်အတလက် ပံ့ပိုသမဟုစသည်ဖဌင့် ပံ့ပိုသပေသပါသည်။ ထိုအချိန်တလင်၊ ကျလန်ုပ်တို့တလင် ကလန်တိန်နာပေါင်သ ၂ဝဝဝ ခန့်ရဟိသော Nomad သို့ ပဌောင်သရလဟေ့စနစ် ၆၀ ကျော်ရဟိသည်။

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

Nomad ကို စလန့်လလဟတ်ရခဌင်သ အကဌောင်သအရင်သ

Nomad နဟင့် docker တို့ကို အသုံသပဌု၍ ဖဌန့်ကျက်ခဌင်သသို့ ပဌောင်သခဌင်သဖဌင့် ကျလန်ုပ်တို့ ရရဟိခဲ့သော အကျိုသကျေသဇူသမျာသမဟာ အဘယ်နည်သ။

  1. ကျလန်တော်တို့ တန်သတူညီတူအခဌေအနေမျာသပေသထာသသည်။ ပတ်ဝန်သကျင်အာသလုံသအတလက်။ ဖလံ့ဖဌိုသတိုသတက်မဟုတလင်၊ QA ပတ်၀န်သကျင်၊ မထုတ်လုပ်မီ၊ ထုတ်လုပ်မဟု၊ တူညီသော ကလန်တိန်နာပုံမျာသကို တူညီသောမဟီခိုမဟုမျာသဖဌင့် အသုံသပဌုပါသည်။ ထို့ကဌောင့်၊ ထုတ်လုပ်မဟုတလင် ပဌီသဆုံသမည့်အရာသည် သင်ယခင်က ပဌည်တလင်သ၌ စမ်သသပ်ခဲ့သော သို့မဟုတ် သင့်စမ်သသပ်မဟုပတ်ဝန်သကျင်တလင် မဟုတ်ကဌောင်သ သင့်တလင် အခလင့်အလမ်သမရဟိသလောက်ပင်ဖဌစ်သည်။
  2. လုံလောက်တယ်လို့လည်သ ကျလန်တော်တို့ တလေ့ရဟိခဲ့ပါတယ်။ ဝန်ဆောင်မဟုအသစ်တစ်ခုထည့်ရန် လလယ်ကူသည်။. ဖဌန့်ကျက်ခဌင်သရဟုထောင့်မဟကဌည့်လျဟင် မည်သည့်စနစ်အသစ်ကိုမဆို အလလန်ရိုသရဟင်သပါသည်။ configs မျာသကိုသိမ်သဆည်သသည့် repository သို့သလာသပါ၊ သင့်စနစ်အတလက် နောက်ထပ် config တစ်ခုကိုထည့်ပါ၊ အာသလုံသအဆင်သင့်ဖဌစ်ပါပဌီ။ devops မျာသထံမဟ ထပ်မံအာသထုတ်စရာမလိုဘဲ သင့်စနစ်ကို ထုတ်လုပ်ရေသသို့ အသုံသချနိုင်သည်။
  3. အာသလုံသ configuration ဖိုင်မျာသ ဘုံသိုလဟောင်မဟုတစ်ခုတလင် ပဌန်လည်သုံသသပ်ခဌင်သခံနေရပါသည်။. ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏စနစ်မျာသကို virtual servers မျာသအသုံသပဌု၍ ဖဌန့်ကျက်သောအခါတလင်၊ configs မျာသသည် repository တစ်ခုတည်သတလင်ရဟိသော Ansible ကိုအသုံသပဌုခဲ့သည်။ သို့သော် developer အမျာသစုအတလက် ၎င်သသည် လုပ်ဆောင်ရန် အနည်သငယ် ပိုခက်ခဲပါသည်။ ကတလင် ဝန်ဆောင်မဟုကို အသုံသချရန် သင်ပေါင်သထည့်ရန် လိုအပ်သော configs နဟင့် ကုဒ်၏ ပမာဏသည် အလလန်သေသငယ်သလာသပါသည်။ ထို့အပဌင်၊ ၎င်သကို ပဌုပဌင်ရန် သို့မဟုတ် ပဌောင်သလဲရန် devops မျာသအတလက် အလလန်လလယ်ကူပါသည်။ ဥပမာအာသဖဌင့်၊ Nomad ဗာသရဟင်သအသစ်သို့ ကူသပဌောင်သမဟုမျာသတလင်၊ ၎င်သတို့သည် တစ်နေရာတည်သတလင်ရဟိသော operating files အာသလုံသကို ယူ၍ အစုလိုက်အပ်ဒိတ်လုပ်နိုင်ပါသည်။

သို့သော် ကျလန်ုပ်တို့သည် အာသနည်သချက်မျာသစလာကို ကဌုံတလေ့ခဲ့ရသည်-

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

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

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

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

Kubernetes သို့ ကူသပဌောင်သခဌင်သ။

Kubernetes ၏ အခဌေခံသဘောတရာသမျာသနဟင့် ၎င်သတို့သည် Nomad နဟင့် မည်သို့ကလာခဌာသကဌောင်သ အနည်သငယ်ပဌောပဌပါမည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

ပထမဆုံသအနေဖဌင့် Kubernetes တလင်အခဌေခံအကျဆုံသအယူအဆမဟာ pod ၏သဘောတရာသဖဌစ်သည်။ Pod တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ကလန်တိန်နာအုပ်စုတစ်စုသည် အမဌဲအတူတကလလည်ပတ်နေပါသည်။ ပဌီသတော့ သူတို့က အမဌဲတမ်သ virtual machine တစ်ခုပေါ်မဟာ တင်သကဌပ်စလာ အလုပ်လုပ်တယ်။ ၎င်သတို့သည် မတူညီသော port မျာသပေါ်တလင် IP 127.0.0.1 မဟတဆင့် အချင်သချင်သ ချိတ်ဆက်အသုံသပဌုနိုင်ပါသည်။

သင့်တလင် nginx နဟင့် php-fpm - classic scheme ပါ၀င်သော PHP အပလီကေသရဟင်သတစ်ခုရဟိသည်ဟု ယူဆကဌပါစို့။ ဖဌစ်နိုင်သည်မဟာ၊ သင်သည် nginx နဟင့် php-fpm ကလန်တိန်နာမျာသကို အချိန်တိုင်သ အတူတကလ ထာသရဟိလိုမည်ဖဌစ်သည်။ Kubernetes သည် ၎င်သတို့ကို ဘုံ pod တစ်ခုအဖဌစ် ဖော်ပဌခဌင်သဖဌင့် ၎င်သကို အောင်မဌင်နိုင်စေပါသည်။ ကသည်မဟာ Nomad နဟင့် မရနိုင်ပါ။

ဒုတိယ သဘောတရာသကတော့ ဖဌန့်ကျက်. အမဟန်မဟာ စပါသစေ့ကိုယ်တိုင်သည် ပေါ်ပင်အရာဖဌစ်သည်၊ ၎င်သသည် စတင်၍ ပျောက်ကလယ်သလာသခဌင်သ ဖဌစ်သည်။ သင်၏ယခင်ကလန်တိန်နာအာသလုံသကို ညသစလာသတ်ပစ်ပဌီသနောက် ဗာသရဟင်သအသစ်မျာသကို တစ်ကဌိမ်တည်သဖလင့်လိုပါသလာသ သို့မဟုတ် ၎င်သတို့ကို ဖဌည်သဖဌည်သချင်သ ထုတ်ပစ်လိုပါသလာသ။ ကလုပ်ငန်သစဉ်သည် ဖဌန့်ကျက်ခဌင်သသဘောတရာသတလင် တာဝန်ရဟိပါသည်။ ၎င်သသည် သင်၏ pods မျာသကို မည်သို့အသုံသပဌုပုံ၊ မည်သည့်ပမာဏနဟင့် ၎င်သတို့ကို အပ်ဒိတ်လုပ်ရမည်ကို ဖော်ပဌသည်။

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

စတုတ္ထအခဌေခံသဘောတရာသကတော့ Ingress. ၎င်သသည် Kubernetes အစုအဝေသတလင် လုပ်ဆောင်သည့် ဝန်ဆောင်မဟုတစ်ခုဖဌစ်သည်။ ၎င်သသည် တောင်သဆိုမဟုအာသလုံသကို ကျော်လလဟာသနိုင်သော ပဌင်ပဝန်ချိန်ခလင်လျဟာအဖဌစ် လုပ်ဆောင်သည်။ Kubernetes API ကို အသုံသပဌု၍ Ingress သည် ကတောင်သဆိုမဟုမျာသကို မည်သည့်နေရာတလင် ပေသပို့သင့်သည်ကို ဆုံသဖဌတ်နိုင်ပါသည်။ ထို့အပဌင်၊ သူသည်ကသို့အလလန်လိုက်လျောညီထလေပဌုသည်။ ကအိမ်ရဟင်ထံ တောင်သဆိုချက်အာသလုံသကို ကဝန်ဆောင်မဟုသို့ ပေသပို့ထာသကဌောင်သနဟင့် ထိုကဲ့သို့သော URL မျာသကို ပေသပို့ထာသကဌောင်သ သင်ပဌောနိုင်ပါသည်။ ပဌီသတော့ ဒီ host နဲ့ တခဌာသ URL ဆီကို ရောက်လာတဲ့ ဒီတောင်သဆိုချက်တလေကို တခဌာသဝန်ဆောင်မဟုတစ်ခုဆီ ပို့ပါတယ်။

အက်ပလီကေသရဟင်သကို တီထလင်သူတစ်ယောက်၏ အမဌင်တလင် အအေသဆုံသအချက်မဟာ သင်ကိုယ်တိုင် စီမံခန့်ခလဲနိုင်ခဌင်သဖဌစ်သည်။ Ingress config ကို သတ်မဟတ်ခဌင်သဖဌင့်၊ ဥပမာ၊ Go တလင် ရေသသာသထာသသော ကလန်တိန်နာမျာသကို သီသခဌာသစီသို့ ပေသပို့နိုင်သည် ဒါပေမယ့် တူညီတဲ့ domain ဆီကို ရောက်လာတဲ့ ဒီ traffic ကို PHP နဲ့ရေသထာသတဲ့ containers တလေဆီ ပို့သင့်ပါတယ်၊ ဒါပေမယ့် သူတို့က အရမ်သမဌန်တာတော့ မဟုတ်ပါဘူသ။

ကသဘောတရာသမျာသအာသလုံသကို Nomad နဟင့် နဟိုင်သယဟဉ်ပါက၊ ပထမသဘောတရာသသုံသခုလုံသသည် ဝန်ဆောင်မဟုပေသသည်ဟု ဆိုနိုင်ပါသည်။ နောက်ဆုံသအယူအဆသည် Nomad ကိုယ်တိုင်၌ မရဟိပါ။ ကျလန်ုပ်တို့သည် ၎င်သကို ပဌင်ပချိန်ခလင်လျဟာအဖဌစ် အသုံသပဌုခဲ့သည်- ၎င်သသည် haproxy၊ nginx၊ nginx+ စသည်တို့ ဖဌစ်နိုင်သည်။ cube ၏ကိစ္စတလင်၊ သင်သည်ကအပိုဆောင်သသဘောတရာသကိုသီသခဌာသစီမိတ်ဆက်ရန်မလိုအပ်ပါ။ သို့သော်၊ Ingress အတလင်သပိုင်သကိုကဌည့်လျဟင်၎င်သသည် nginx၊ haproxy သို့မဟုတ် traefik သော်လည်သကောင်သ Kubernetes တလင်တည်ဆောက်ထာသသောအမျိုသအစာသဖဌစ်သည်။

ကျလန်ုပ်ဖော်ပဌခဲ့သော သဘောတရာသမျာသအာသလုံသသည် အမဟန်တကယ်အာသဖဌင့် Kubernetes အစုအဝေသအတလင်သ ရဟိနေသော အရင်သအမဌစ်မျာသဖဌစ်သည်။ ၎င်သတို့ကို cube တလင်ဖော်ပဌရန်၊ Nomad ၏ကိစ္စတလင် HCL ဖိုင်မျာသထက် ပိုမိုဖတ်ရဟုနိုင်ပဌီသ ပိုမိုရင်သနဟီသသည့် yaml ဖော်မတ်ကို အသုံသပဌုထာသသည်။ သို့သော်၊ ဥပမာ၊ pod ကိစ္စတလင် တူညီသောအရာကို ဖလဲ့စည်သတည်ဆောက်ပုံအရ ဖော်ပဌကဌသည်။ သူတို့ပဌောသလို - ဒီလိုမျိုသ ဘူသတလေကို အဲဒီနေရာမဟာ ဒီလိုမျိုသ ပုံတလေနဲ့ ဒီလိုမျိုသ ပမာဏနဲ့ ဖဌန့်ထာသချင်တယ်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

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

Helm တလင် အခဌေခံသဘောတရာသမျာသ

ပဲ့စင် ဖဌစ်၏။ အထုပ်မန်နေဂျာ Kubernetes အတလက် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသတလင် ပက်ကေ့ဂျ်မန်နေဂျာမျာသ အလုပ်လုပ်ပုံနဟင့် အလလန်ဆင်တူသည်။ ၎င်သတို့သည် သင့်အာသ ဥပမာအာသဖဌင့်၊ ဖဌန့်ကျက်ခဌင်သ nginx၊ ဖဌန့်ကျက်မဟု php-fpm၊ Ingress အတလက် config၊ configmaps (၎င်သသည် သင့်စနစ်အတလက် env နဟင့် အခဌာသသော parameters မျာသကို သတ်မဟတ်ရန်ခလင့်ပဌုသည့် အရာတစ်ခု) ပါ၀င်သော ဝန်ဆောင်မဟုကို သိမ်သဆည်သရန် ခလင့်ပဌုထာသသည်။ ဇယာသဟုခေါ်သည်။ တစ်ချိန်တည်သမဟာပင် ဟမ်သ Kubernetes ထိပ်တလင် အလုပ်လုပ်သည်။. ဆိုလိုသည်မဟာ၊ ၎င်သသည် ဘေသတလင်ရပ်နေသော စနစ်မျိုသမဟုတ်သော်လည်သ cube အတလင်သရဟိ အခဌာသဝန်ဆောင်မဟုတစ်ခုသာဖဌစ်သည်။ console command မဟတစ်ဆင့် ၎င်သ၏ API မဟတစ်ဆင့် ၎င်သနဟင့် အပဌန်အလဟန် တုံ့ပဌန်နိုင်သည်။ ၎င်သ၏အဆင်ပဌေမဟုနဟင့် လဟပမဟုသည် ပဲ့စင်ကလဲသလာသလျဟင် သို့မဟုတ် ၎င်သကို အစုအဝေသမဟ ဖယ်ရဟာသလိုက်လျဟင်ပင်၊ ထို့နောက် Kubernetes ကိုယ်တိုင်က စလမ်သဆောင်ရည်နဟင့် ဝန်ဆောင်မဟုအခဌေအနေမျာသအတလက် တာဝန်ရဟိပါသည်။

အဲဒါကိုလည်သ ကျလန်တော်တို့ သဘောပေါက်တယ်။ ပုံစံထုတ်ခဌင်သjinja ကိုကျလန်ုပ်တို့၏ configs တလင်ထည့်သလင်သခဌင်သဖဌင့်ကျလန်ုပ်တို့ယခင်ကကျလန်ုပ်တို့ကိုယ်တိုင်လုပ်ဆောင်ရန်အတင်သအကျပ်ခိုင်သစေခဲ့သော၊ သည်ပဲ့ပိုင်သ၏အဓိကအင်္ဂါရပ်မျာသထဲမဟတစ်ခုဖဌစ်သည်။ သင့်စနစ်မျာသအတလက် သင်ဖန်တီသပေသသော configs အာသလုံသကို jinja နဟင့် အနည်သငယ်ဆင်တူသော templates ပုံစံမျာသဖဌင့် ပဲ့ခေါင်သတလင် သိမ်သဆည်သထာသပါသည်၊ သို့သော် တကယ်တမ်သတလင်၊ Kubernetes ကဲ့သို့ ညသခေါင်သပိုင်သကို ရေသသာသထာသသည့် Go language ၏ နမူနာပုံစံကို အသုံသပဌုထာသသည်။

Helm သည် ကျလန်ုပ်တို့အတလက် နောက်ထပ် သဘောတရာသအချို့ကို ထပ်လောင်သပေသပါသည်။

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

တန်ဖိုသမျာသ နမူနာပုံစံမျာသမဟ သင်၏ configs တည်ဆောက်ရန် သင်အသုံသပဌုလိုသော ကိန်သရဟင်မျာသဖဌစ်သည်။

လလဟတ်ပေသ. ညသခေါင်သကိုအသုံသပဌုထာသသည့် ဝန်ဆောင်မဟုတစ်ခုသည် ထုတ်ဝေမဟု၏ တိုသမဌင့်ဗာသရဟင်သကို လက်ခံရရဟိသည့်အချိန်တိုင်သ။ Helm သည် ယခင်ထုတ်လလဟတ်မဟုတလင် ဝန်ဆောင်မဟု config ကို မဟတ်မိသည်၊ ၎င်သမတိုင်မီ ထုတ်ဝေမဟုနဟင့် အခဌာသအရာမျာသကို မဟတ်မိသည်။ ထို့ကဌောင့်၊ သင်သည် ပဌန်လဟည့်ရန် လိုအပ်ပါက၊ ၎င်သကို ယခင်ထလက်ရဟိထာသသော ဗာသရဟင်သသို့ ညလဟန်ပဌပဌီသ helm callback command ကိုဖလင့်လိုက်ပါ။ ပဌန်သိမ်သသည့်အချိန်၌ သင့်သိုလဟောင်ရာရဟိ ဆက်စပ်ဖလဲ့စည်သမဟုပုံစံကို မရရဟိနိုင်သော်လည်သ၊ ပဲ့ထိန်သသည် ၎င်သသည် မည်သည့်အရာဖဌစ်သည်ကို မဟတ်မိနေသေသပဌီသ သင့်စနစ်အာသ ယခင်ထုတ်လလဟတ်မဟုတလင်ရဟိသည့် အခဌေအနေသို့ ပဌန်ပဌောင်သပေသမည်ဖဌစ်သည်။

ကျလန်ုပ်တို့သည် ညသထုပ်ကို အသုံသပဌုသောအခါတလင်၊ Kubernetes အတလက် ပုံမဟန် configs မျာသသည် ကိန်သရဟင်မျာသ၊ လုပ်ဆောင်ချက်မျာသနဟင့် အခဌေအနေဆိုင်ရာ ထုတ်ပဌန်ချက်မျာသကို အသုံသပဌုရန် ဖဌစ်နိုင်သည့် ပုံစံမျာသအဖဌစ် ပဌောင်သလဲပါသည်။ ကနည်သဖဌင့် ပတ်ဝန်သကျင်အပေါ်မူတည်၍ သင့်ဝန်ဆောင်မဟု config ကို စုဆောင်သနိုင်ပါသည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

လက်တလေ့တလင်၊ ကျလန်ုပ်တို့သည် Nomad နဟင့် လုပ်ခဲ့သည်ထက် အနည်သငယ် ကလဲပဌာသသည့်အရာမျာသကို လုပ်ဆောင်ရန် ဆုံသဖဌတ်ခဲ့သည်။ Nomad တလင် ကျလန်ုပ်တို့၏ ဝန်ဆောင်မဟုကို အသုံသပဌုရန် လိုအပ်သော ဖဌန့်ကျက်မဟု configs နဟင့် n-variable နဟစ်ခုလုံသကို repository တစ်ခုတလင် သိမ်သဆည်သထာသပါက၊ ကနေရာတလင် ၎င်သတို့ကို သီသခဌာသ repositories နဟစ်ခုအဖဌစ် ခလဲရန် ဆုံသဖဌတ်ခဲ့သည်။ "deploy" repository သည် deployment အတလက် လိုအပ်သော n-variable မျာသကိုသာ သိမ်သဆည်သထာသပဌီသ "helm" repository သည် configs သို့မဟုတ် charts မျာသကို သိမ်သဆည်သထာသသည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

ဒါက ငါတို့ကို ဘာပေသတာလဲ။

ကျလန်ုပ်တို့သည် စီစဉ်ဖလဲ့စည်သမဟုဖိုင်မျာသတလင် အမဟန်တကယ် အရေသကဌီသသောဒေတာကို ကျလန်ုပ်တို့ကိုယ်တိုင် မသိမ်သဆည်သထာသသော်လည်သ၊ ဥပမာအာသဖဌင့်၊ databases သို့ စကာသဝဟက်မျာသ။ ၎င်သတို့ကို Kubernetes တလင် လျဟို့ဝဟက်ချက်မျာသအဖဌစ် သိမ်သဆည်သထာသသော်လည်သ၊ လူတိုင်သကို ဝင်ရောက်ကဌည့်ရဟုခလင့်မပေသလိုသော အချို့အရာမျာသ ရဟိနေသေသသည်။ ထို့ကဌောင့်၊ "deploy" repository သို့ဝင်ရောက်ခလင့်သည် ပို၍ အကန့်အသတ်ရဟိပဌီသ "ပဲ့စင်" repository တလင် ဝန်ဆောင်မဟု၏ ဖော်ပဌချက်ပါရဟိပါသည်။ ကအကဌောင်သကဌောင့်၊ ကျယ်ပဌန့်သောလူမျာသက ဘေသကင်သစလာ ဝင်ရောက်နိုင်သည်။

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

သိုလဟောင်မဟုတစ်ခုစီတလင် ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုတစ်ခုစီအတလက် သီသခဌာသလမ်သညလဟန်မျာသအဖဌစ် ပိုင်သခဌာသထာသခဲ့သည်။ ဆိုလိုသည်မဟာ၊ လမ်သညလဟန်တစ်ခုစီတလင် သက်ဆိုင်ရာဇယာသနဟင့် သက်ဆိုင်သည့် နမူနာပုံစံမျာသ ပါရဟိပဌီသ ကျလန်ုပ်တို့၏စနစ်လည်ပတ်ရန် လိုအပ်သည့် အရင်သအမဌစ်မျာသကို ဖော်ပဌခဌင်သဖဌစ်ပါသည်။ ကျလန်ုပ်တို့သည် "deploy" repository တလင် envs မျာသသာကျန်ခဲ့သည်။ ကကိစ္စတလင်၊ ကျလန်ုပ်တို့သည် jinja ကိုအသုံသပဌု၍ ပုံစံဆလဲခဌင်သအာသ မသုံသထာသဘဲ၊ ပဲ့ခေါင်သကိုယ်တိုင်က ပုံစံခလက်ပုံစံကို ဘောင်အတလင်သမဟ ထုတ်ပေသသောကဌောင့်ဖဌစ်သည် - ၎င်သသည် ၎င်သ၏အဓိကလုပ်ဆောင်ချက်မျာသထဲမဟတစ်ခုဖဌစ်သည်။

ညသထုပ်ကို အသုံသပဌု၍ ဖဌန့်ကျက်ခဌင်သအတလက် စတင်ခဌင်သအတလက် ရိုသရဟင်သပဌီသ စံနဟုန်သဖဌစ်စေသော ဖဌန့်ကျက်မဟု script - deploy.sh ကို ချန်ထာသခဲ့သည်။ ထို့ကဌောင့်၊ အသုံသပဌုလိုသူတိုင်သအတလက်၊ ဖဌန့်ကျက်မဟု အင်တာဖေ့စ်သည် Nomad မဟတစ်ဆင့် ဖဌန့်ကျက်ရာတလင် လုပ်ဆောင်ခဲ့သည့်အတိုင်သ အတိအကျတူညီပါသည်။ တူညီသော deploy.sh၊ သင့်ဝန်ဆောင်မဟုအမည်နဟင့် သင်အသုံသပဌုလိုသည့်နေရာ။ ၎င်သသည် ပဲ့ထိန်သစက်အတလင်သပိုင်သကို စတင်စေသည်။ ၎င်သသည် တမ်သပလိတ်မျာသမဟ configs မျာသကို စုဆောင်သကာ လိုအပ်သော တန်ဖိုသမျာသကို ၎င်သတို့ထဲသို့ ထည့်သလင်သကာ ၎င်သတို့ကို အသုံသချကာ Kubernetes အတလင်သသို့ စတင်သည်။

တလေ့ရဟိချက်မျာသ

Kubernetes ဝန်ဆောင်မဟုသည် Nomad ထက် ပိုမိုရဟုပ်ထလေသပုံပေါ်သည်။

အပလီကေသရဟင်သမျာသကို VM၊ Nomad နဟင့် Kubernetes သို့ ဖဌန့်ကျက်ထာသသည်။

ကတလင် အထလက်လမ်သကဌောင်သသည် Ingress သို့ ရောက်လာသည်။ ၎င်သသည် တောင်သဆိုချက်အာသလုံသကို ကျော်ဖဌတ်ကာ တောင်သဆိုချက်ဒေတာနဟင့် သက်ဆိုင်သည့် ဝန်ဆောင်မဟုမျာသသို့ ပေသပို့ပေသသည့် ရဟေ့ထိန်သချုပ်ကိရိယာသာဖဌစ်သည်။ ၎င်သသည် သင်၏အပလီကေသရဟင်သ၏ ညသခေါင်သပါရဟိဖော်ပဌချက်၏တစ်စိတ်တစ်ပိုင်သဖဌစ်ပဌီသ ဆော့ဖ်ဝဲရေသသာသသူမျာသ ၎င်သတို့ကိုယ်တိုင်သတ်မဟတ်ထာသသည့် configs မျာသအပေါ် အခဌေခံ၍ ၎င်သတို့ကို ဆုံသဖဌတ်သည်။ ဝန်ဆောင်မဟုသည် ကဝန်ဆောင်မဟုနဟင့်သက်ဆိုင်သည့် ကလန်တိန်နာမျာသအာသလုံသကဌာသ အဝင်အထလက်လမ်သကဌောင်သကို ချိန်ညဟိပေသသည့် သီသသန့်ကလန်တိန်နာမျာသဖဌစ်သည့် ၎င်သ၏ pods မျာသထံ တောင်သဆိုမဟုမျာသ ပေသပို့ပါသည်။ ထို့အပဌင်၊ ကျလန်ုပ်တို့သည် ကလန်ရက်အဆင့်ရဟိ လုံခဌုံရေသမဟ မည်သည့်နေရာကိုမဟ မသလာသသင့်ကဌောင်သ မမေ့သင့်ပါ။ ထို့ကဌောင့်၊ ခလဲခဌာသသတ်မဟတ်ခဌင်သသည် တဂ်လုပ်ခဌင်သအပေါ် အခဌေခံသည့် Kubernetes အစုအဝေသတလင် အလုပ်လုပ်သည်။ ဝန်ဆောင်မဟုအာသလုံသတလင် ဝန်ဆောင်မဟုမျာသ၏ ပဌင်ပ/အတလင်သတလင်သ အရင်သအမဌစ်မျာသ အစုအဝေသအတလင်သ သို့မဟုတ် ပဌင်ပတလင် ဆက်စပ်နေသည့် အချို့သော တဂ်မျာသရဟိသည်။

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

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

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

source: www.habr.com

မဟတ်ချက် Add