GitOps ဆိုတာဘာလဲ။

မဟတ်ချက်။ ဘာသာပဌန်: မကဌာသေသမီကထုတ်ဝေပဌီသနောက် ပစ္စည်သ GitOps ရဟိ ဆလဲငင်ခဌင်သနဟင့် တလန်သခဌင်သနည်သလမ်သမျာသအကဌောင်သ၊ ကပုံစံကို ယေဘူယျအာသဖဌင့် ကျလန်ုပ်တို့ စိတ်ဝင်စာသကဌသည်ကို တလေ့ခဲ့ရသော်လည်သ ကအကဌောင်သအရာနဟင့် ပတ်သက်၍ ရုရဟာသဘာသာစကာသ ထုတ်ဝေမဟုမျာသ အလလန်နည်သပါသပါသည် (Habre တလင် ရိုသရိုသရဟင်သရဟင်သမျဟ မရဟိပါ)။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် လလန်ခဲ့သော တစ်နဟစ်နီသပါသခန့်ကပင် အခဌာသဆောင်သပါသ၏ ဘာသာပဌန်ချက်ကို သင့်အာရုံကို ပေသဆောင်ရန် ဝမ်သမဌောက်မိပါသည်။ - "GitOps" ဟူသောအသုံသအနဟုန်သကိုဖန်တီသပေသသောခေါင်သဆောင် Weaveworks မဟ စာသာသသည် ချဉ်သကပ်မဟု၏ အနဟစ်သာရနဟင့် ရဟိပဌီသသာသအရာမျာသနဟင့် အဓိကကလာခဌာသချက်မျာသကို ရဟင်သပဌထာသသည်။

လလန်ခဲ့သည့်တစ်နဟစ်က ကျလန်ုပ်တို့ထုတ်ဝေခဲ့သည်။ GitOps မိတ်ဆက်. ထိုအချိန်တလင်၊ Weaveworks အဖလဲ့သည် Kubernetes ကိုအခဌေခံ၍ SaaS ကို စတင်အသုံသပဌုပုံအာသ မျဟဝေခဲ့ပဌီသ cloud ဇာတိပတ်ဝန်သကျင်တလင် ဖဌန့်ကျက်ခဌင်သ၊ စီမံခန့်ခလဲခဌင်သနဟင့် စောင့်ကဌည့်ခဌင်သအတလက် ညလဟန်သကိန်သအကောင်သဆုံသအလေ့အကျင့်မျာသကို တီထလင်ခဲ့သည်။

ဆောင်သပါသသည် ရေပန်သစာသလာခဲ့သည်။ အခဌာသလူမျာသသည် GitOps အကဌောင်သ စတင်ပဌောဆိုကဌပဌီသ ကိရိယာအသစ်မျာသကို စတင်ထုတ်ဝေခဲ့သည်။ git တလန်သ, ဖလံ့ဖဌိုသရေသ, လျဟို့ဝဟက်ချက်မျာသ, လုပ်ဆောင်ချက်မျာသကို, စဉ်ဆက်မပဌတ်ပေါင်သစပ် နောက် ... ပဌီသတော့။ ကျလန်ုပ်တို့၏ဝဘ်ဆိုဒ်တလင်ပေါ်လာသည်။ အမျာသကဌီသ ထုတ်ဝေမဟုမျာသနဟင့် GitOps အသုံသပဌုမဟုကိစ္စမျာသ။ ဒါပေမယ့် တချို့လူတလေက မေသစရာတလေ ရဟိနေတုန်သပဲ။ မော်ဒယ်က သမာသရိုသကျပုံစံနဲ့ ဘယ်လိုကလာခဌာသလဲ။ အခဌေခံအဆောက်အအုံကုဒ်အဖဌစ် စဉ်ဆက်မပဌတ်ပေသပို့ခဌင်သ (စဉ်ဆက်မပဌတ်ပေသပို့)? Kubernetes ကို အသုံသပဌုရန် လိုအပ်ပါသလာသ။

ဖော်ပဌချက်အသစ် လိုအပ်ကဌောင်သ မကဌာမီ ကျလန်ုပ်တို့ သဘောပေါက်ခဲ့ပဌီသ၊ ကမ်သလဟမ်သသည်-

  1. ဥပမာမျာသနဟင့် ဇာတ်လမ်သမျာသစလာ၊
  2. GitOps ၏တိကျသောအဓိပ္ပါယ်ဖလင့်ဆိုချက်။
  3. ရိုသရာစဉ်ဆက်မပဌတ်ပေသပို့ခဌင်သနဟင့် နဟိုင်သယဟဉ်ခဌင်သ။

ကဆောင်သပါသ၌ ကျလန်ုပ်တို့သည် ကအကဌောင်သအရာအာသလုံသကို ခဌုံငုံရန် ကဌိုသစာသခဲ့သည်။ ၎င်သသည် GitOps နဟင့် developer နဟင့် CI/CD ရဟုထောင့်အတလက် မလမ်သမံထာသသော နိဒါန်သတစ်ခုကို ပံ့ပိုသပေသပါသည်။ မော်ဒယ်ကို ယေဘူယျအာသဖဌင့် သိနိုင်သော်လည်သ Kubernetes ကို အဓိက အာရုံစိုက်ပါသည်။

GitOps နဟင့်တလေ့ဆုံပါ။

အဲလစ်ကို မဌင်ယောင်ကဌည့်ပါ။ သူမသည် ကျန်သမာရေသ၊ ကာသ၊ အိမ်၊ နဟင့် စာချုပ်မျာသ၏ အဝင်အထလက်မျာသကို ကိုယ်တိုင်မတလက်ဆနိုင်လောက်အောင် အလုပ်မျာသနေသူမျာသအတလက် ကျန်သမာရေသ၊ ကာသ၊ အိမ်နဟင့် ခရီသသလာသအာမခံကို ပေသဆောင်သည့် Family Insurance ကို လုပ်ဆောင်ပါသည်။ Alice သည် ဘဏ်တစ်ခုတလင် ဒေတာသိပ္ပံပညာရဟင်အဖဌစ် လုပ်ကိုင်နေချိန်တလင် သူမ၏လုပ်ငန်သကို တစ်ဖက်တစ်လမ်သမဟ ပရောဂျက်တစ်ခုအဖဌစ် စတင်ခဲ့သည်။ ဒေတာခလဲခဌမ်သစိတ်ဖဌာပဌီသ အာမခံပက်ကေ့ချ်မျာသကို ရေသဆလဲရန်အတလက် အဆင့်မဌင့်ကလန်ပဌူတာ အယ်လဂိုရီသမ်မျာသကို အသုံသပဌုနိုင်ကဌောင်သ တစ်နေ့တလင် သူမ သိလာသည်။ ရင်သနဟီသမဌုပ်နဟံသူမျာသသည် စီမံကိန်သကို ငလေကဌေသထောက်ပံ့ခဲ့ပဌီသ ယခုအခါ သူမ၏ကုမ္ပဏီသည် တစ်နဟစ်လျဟင် ဒေါ်လာ သန်သ 20 ကျော်ရရဟိကာ လျင်မဌန်စလာ ကဌီသထလာသလျက်ရဟိသည်။ လက်ရဟိတလင် ရာထူသအသီသသီသတလင် လူပေါင်သ ၁၈၀ ခန့် ရဟိသည်။ ၎င်သတလင် ဝဘ်ဆိုဒ်ကို ထိန်သသိမ်သခဌင်သ၊ ဒေတာဘေ့စ်နဟင့် ဖောက်သည်အခဌေခံကို ခလဲခဌမ်သစိတ်ဖဌာသည့် နည်သပညာအဖလဲ့တစ်ခု ပါဝင်သည်။ လူ ၆၀ ပါတဲ့ အဖလဲ့ကို ကုမ္ပဏီရဲ့ နည်သပညာဒါရိုက်တာ Bob က ညသဆောင်ပါတယ်။

Bob ၏အဖလဲ့သည် cloud တလင် ထုတ်လုပ်မဟုစနစ်မျာသကို ဖဌန့်ကျက်ထာသသည်။ ၎င်သတို့၏ အဓိက အပလီကေသရဟင်သမျာသသည် Google Cloud ရဟိ Kubernetes ၏ အခလင့်ကောင်သကို ရယူ၍ GKE တလင် လုပ်ဆောင်သည်။ ထို့အပဌင် ၎င်သတို့သည် ၎င်သတို့၏လုပ်ငန်သတလင် ဒေတာနဟင့် ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ ကိရိယာမျိုသစုံကို အသုံသပဌုသည်။

Family Insurance သည် ကလန်တိန်နာမျာသကို အသုံသပဌုရန် မသတ်မဟတ်ထာသသော်လည်သ Docker ၏ စိတ်အာသထက်သန်မဟုကို ဖမ်သဆုပ်ထာသသည်။ ကုမ္ပဏီသည် အင်္ဂါရပ်အသစ်မျာသကို စမ်သသပ်ရန် အစုအဖလဲ့မျာသကို အလလယ်တကူ အသုံသချနိုင်စေရန် GKE က မကဌာမီ ရဟာဖလေတလေ့ရဟိခဲ့သည်။ ကလန်တိန်နာစာရင်သသလင်သမဟုကို စုစည်သရန် Jenkins နဟင့် Quay အတလက် ပေါင်သထည့်ထာသပဌီသ ကလန်တိန်နာအသစ်မျာသနဟင့် ပုံစံမျာသကို GKE သို့တလန်သပို့သည့် Jenkins အတလက် script မျာသကို ရေသသာသထာသသည်။

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

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

Alice နဟင့် Bob တို့သည် code workflows အဖဌစ် Git၊ DevOps နဟင့် infrastructure အကဌောင်သ နဟစ်ပေါင်သမျာသစလာ ကဌာသနေရသည်။ GitOps ၏ထူသခဌာသသောအချက်မဟာ Kubernetes ၏အခဌေအနေတလင် ကအကဌံဉာဏ်မျာသကိုအကောင်အထည်ဖော်ရန်အတလက် အကောင်သဆုံသအလေ့အကျင့်မျာသ—တိကျသေချာပဌီသ စံနဟုန်သနဟစ်ခုလုံသ—ကိုယူဆောင်လာခဌင်သဖဌစ်သည်။ ဒီဆောင်ပုဒ် ထပ်ခါထပ်ခါ မဌင့်တက်ခဲ့သည်။တလင် အပါအဝင် Weaveworks ဘလော့ဂ်.

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

  • မည်သူမျဟ ရူသသလပ်ခဌင်သမရဟိဘဲ အသင်သ၏ ကုန်ထုတ်စလမ်သအာသ နဟစ်ဆတိုသလာသည်ကို တလေ့ရဟိခဲ့သည်။
  • ဇာတ်ညလဟန်သမျာသကို ထမ်သဆောင်ခဌင်သကို ရပ်လိုက်သည်။ ယင်သအစာသ၊ ယခုအခါ ၎င်သတို့သည် အင်္ဂါရပ်အသစ်မျာသကို အာရုံစိုက်နိုင်ပဌီသ အင်ဂျင်နီယာနည်သမျာသကို မဌဟင့်တင်နိုင်သည် - ဥပမာ၊ Canary ဖဌန့်ချိမဟုမျာသကို မိတ်ဆက်ခဌင်သနဟင့် စမ်သသပ်ခဌင်သမျာသကို တိုသတက်စေခဌင်သ၊
  • ပျက်ပဌာသသလာသအောင် ဖဌန့်ကျက်မဟုလုပ်ငန်သစဉ်ကို ကျလန်ုပ်တို့ မဌဟင့်တင်ထာသပါသည်။
  • လူကိုယ်တိုင်ဝင်ရောက်စလက်ဖက်မဟုမရဟိဘဲ တစ်စိတ်တစ်ပိုင်သကျရဟုံသပဌီသနောက် ဖဌန့်ကျက်မဟုမျာသကို ပဌန်လည်ရယူရန် အခလင့်အလမ်သရရဟိခဲ့သည်။
  • ဝယ်ယူအသုံသပဌုခဲ့သည်။Пပို့ဆောင်မဟုစနစ်မျာသတလင် ယုံကဌည်မဟုပိုရဟိခဌင်သ။ Alice နဟင့် Bob တို့သည် အဖလဲ့အာသ အပဌိုင်လုပ်ဆောင်နေသော အသေသစာသဝန်ဆောင်မဟုအဖလဲ့မျာသအဖဌစ် ခလဲထုတ်နိုင်သည်ကို တလေ့ရဟိခဲ့သည်။
  • အဖလဲ့တစ်ဖလဲ့ချင်သစီ၏ ကဌိုသပမ်သအာသထုတ်မဟုနဟင့် နည်သပညာအသစ်မျာသကို စမ်သသုံသခဌင်သဖဌင့် နေ့စဉ် ပရောဂျက်ကို အပဌောင်သအလဲ 30-50 လုပ်နိုင်သည်၊
  • နာရီအနည်သငယ်အတလင်သ ဆလဲယူတောင်သဆိုမဟုမျာသကို အသုံသပဌု၍ ထုတ်လုပ်ခဌင်သအတလက် အပ်ဒိတ်မျာသကို ထုတ်လလဟတ်နိုင်သည့် အခလင့်အရေသရဟိသည့် developer အသစ်မျာသကို ပရောဂျက်ထံ ဆလဲဆောင်ရန် လလယ်ကူသည်။
  • SOC2 မူဘောင်အတလင်သ စာရင်သစစ်ကို အလလယ်တကူ ကျော်ဖဌတ်ပါ။ (လုံခဌုံသောဒေတာစီမံခန့်ခလဲမဟုအတလက် ဝန်ဆောင်မဟုပေသသူမျာသ၏ လိုအပ်ချက်မျာသနဟင့် လိုက်လျောညီထလေဖဌစ်စေရန်အတလက်၊ ပိုမိုဖတ်ရဟုရန်၊ ဥပမာ၊ ဒီမဟာ - ခန့်မဟန်သခဌေ ဘာသာပဌန်။).

ဘာဖဌစ်သလာသတာလဲ?

GitOps သည် အရာနဟစ်ခုဖဌစ်သည်။

  1. Kubernetes နဟင့် cloud ဇာတိအတလက် လည်ပတ်မဟုပုံစံ။ ၎င်သသည် ကလန်တိန်နာပဌုလုပ်ထာသသော အစုအဝေသမျာသနဟင့် အပလီကေသရဟင်သမျာသကို ဖဌန့်ကျက်ခဌင်သ၊ စီမံခန့်ခလဲခဌင်သနဟင့် စောင့်ကဌည့်ခဌင်သအတလက် အကောင်သဆုံသအလေ့အကျင့်မျာသကို ပံ့ပိုသပေသပါသည်။ အံဝင်ခလင်ကျပုံစံ အဓိပ္ပါယ် လျဟောတစ်ခု Пт Luis Faceira:
  2. ဆော့ဖ်ဝဲရေသသူဗဟိုပဌု အက်ပ်လီကေသရဟင်သ စီမံခန့်ခလဲမဟုပတ်ဝန်သကျင်ကို ဖန်တီသရန် လမ်သကဌောင်သ။ ကျလန်ုပ်တို့သည် Git အလုပ်အသလာသအလာကို လည်ပတ်မဟုမျာသနဟင့် ဖလံ့ဖဌိုသတိုသတက်မဟုနဟစ်ခုလုံသတလင် အသုံသပဌုပါသည်။ ၎င်သသည် Git push နဟင့်ပတ်သက်သည်သာမက CI/CD နဟင့် UI/UX ကိရိယာအစုံအလင်ကို စုစည်သခဌင်သအကဌောင်သ သတိပဌုပါ။

Git နဟင့်ပတ်သက်သောစကာသအနည်သငယ်

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

Kubernetes အလုပ်လုပ်ပုံ

ကျလန်ုပ်တို့၏ဇာတ်လမ်သတလင်၊ Alice နဟင့် Bob သည် Kubernetes နဟင့် ခဏတာအလုပ်လုပ်ပဌီသနောက် GitOps သို့ပဌောင်သခဲ့သည်။ အမဟန်မဟာ၊ GitOps သည် Kubernetes နဟင့် အနီသကပ်ဆက်စပ်နေသည် - ၎င်သသည် Kubernetes ကိုအခဌေခံသည့် အခဌေခံအဆောက်အညနဟင့် အက်ပ်လီကေသရဟင်သမျာသအတလက် လုပ်ငန်သလည်ပတ်မဟုပုံစံတစ်ခုဖဌစ်သည်။

Kubernetes သည် အသုံသပဌုသူမျာသအာသ အဘယ်အရာ ပံ့ပိုသပေသသနည်သ။

ကသည်မဟာ အချို့သော အဓိကအင်္ဂါရပ်မျာသဖဌစ်သည်-

  1. Kubernetes မော်ဒယ်တလင်၊ အရာအာသလုံသကို ကဌေငဌာပုံစံဖဌင့် ဖော်ပဌနိုင်သည်။
  2. Kubernetes API ဆာဗာသည် ကကဌေငဌာချက်ကို ထည့်သလင်သမဟုအဖဌစ်ခံယူပဌီသ ကဌေငဌာချက်တလင်ဖော်ပဌထာသသော အစုအဝေသသို့ ဆက်လက်ရောက်ရဟိရန် ကဌိုသစာသသည်။
  3. ကဌေငဌာချက်မျာသသည် အလုပ်ဝန်အမျိုသမျိုသ—“လျဟောက်လလဟာမျာသ” ကိုဖော်ပဌရန်နဟင့် စီမံခန့်ခလဲရန် လုံလောက်ပါသည်။
  4. ရလဒ်အနေနဟင့်၊ အပလီကေသရဟင်သနဟင့် အစုအဝေသသို့ အပဌောင်သအလဲမျာသ ဖဌစ်ပေါ်ရခဌင်သမဟာ-
    • ကလန်တိန်နာပုံမျာသ အပဌောင်သအလဲမျာသ၊
    • ကဌေငဌာသတ်မဟတ်ချက် အပဌောင်သအလဲမျာသ၊
    • ပတ်ဝန်သကျင်ရဟိ အမဟာသမျာသ - ဥပမာ၊ ကလန်တိန်နာ ပျက်ကျခဌင်သ။

Kubernetes ၏ ကဌီသမာသသော ပေါင်သစည်သနိုင်မဟုစလမ်သရည်

စီမံခန့်ခလဲသူတစ်ညသသည် ဖလဲ့စည်သမဟုပုံစံပဌောင်သလဲမဟုမျာသကို ပဌုလုပ်သောအခါ၊ Kubernetes တီသမဟုတ်သူသည် ၎င်သတို့ကို အစုအဝေသတလင် သက်ရောက်စေလိမ့်မည် ဖလဲ့စည်သမဟုအသစ်နဟင့် နီသစပ်မည်မဟုတ်ပါ။. ကမော်ဒယ်သည် မည်သည့် Kubernetes အရင်သအမဌစ်အတလက်မဆို အလုပ်လုပ်နိုင်ပဌီသ Custom Resource Definitions (CRDs) ဖဌင့် တိုသချဲ့နိုင်သည်။ ထို့ကဌောင့်၊ Kubernetes ဖဌန့်ကျက်မဟုမျာသတလင် အောက်ပါအံ့ဖလယ်ဂုဏ်သတ္တိမျာသရဟိသည်။

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

GitOps အလုပ်လုပ်ပုံ

GitOps အလုပ်လုပ်ပုံကို ရဟင်သပဌရန် Kubernetes အကဌောင်သကို ကျလန်ုပ်တို့ လုံလောက်စလာ သင်ယူပဌီသပဌီ။

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

အဓိကအချက်မဟာ အပ်ဒိတ်တစ်ခုစီသည် configuration files နဟင့် Git repositories တလင် ပဌောင်သလဲမဟုမျာသဖဌင့် အဆုံသသတ်သည်ကို ကျလန်ုပ်တို့မဌင်ရခဌင်သဖဌစ်သည်။ Git တလင် ကပဌောင်သလဲမဟုမျာသက "GitOps အော်ပရေတာ" ကို အစုအဝေသကို အပ်ဒိတ်လုပ်စေသည်-

1. လုပ်ဆောင်မဟု လုပ်ငန်သစဉ်- "Jenkins build - မာစတာဌာနခလဲ"။
လုပ်ဆောင်စရာစာရင်သ-

  • Jenkins က တဂ်ထာသသော ပုံမျာသကို Quay သို့ တလန်သပို့သည်၊
  • Jenkins သည် config နဟင့် Helm ဇယာသမျာသကို master storage bucket သို့ တလန်သပို့သည်၊
  • cloud function သည် config နဟင့် charts မျာသကို master storage bucket မဟ master Git repository သို့ ကူသယူပါသည်။
  • GitOps အော်ပရေတာသည် အစုအဝေသကို အပ်ဒိတ်လုပ်သည်။

2. Jenkins build - release သို့မဟုတ် hotfix ဌာနခလဲ:

  • Jenkins သည် Quay သို့ တဂ်မထာသသောပုံမျာသကို တလန်သပို့သည်၊
  • Jenkins သည် config နဟင့် Helm charts မျာသကို staging storage bucket သို့ တလန်သပို့သည်၊
  • cloud function သည် config နဟင့် charts မျာသကို staging storage bucket မဟ staging Git repository သို့ ကူသယူပါသည်။
  • GitOps အော်ပရေတာသည် အစုအဝေသကို အပ်ဒိတ်လုပ်သည်။

3. Jenkins build - develop သို့မဟုတ် feature ဌာနခလဲ:

  • Jenkins သည် Quay သို့ တဂ်မထာသသောပုံမျာသကို တလန်သပို့သည်၊
  • Jenkins သည် config နဟင့် Helm ဇယာသမျာသကို သိုလဟောင်မဟုပုံသထဲသို့ တလန်သပို့သည်။
  • cloud function သည် config နဟင့် ဇယာသမျာသကို develop storage bucket မဟ develop Git repository သို့ ကူသယူသည်။
  • GitOps အော်ပရေတာသည် အစုအဝေသကို အပ်ဒိတ်လုပ်သည်။

4. ကလိုင်သယင့်အသစ်ကို ထည့်နေသည်။:

  • မန်နေဂျာ သို့မဟုတ် စီမံခန့်ခလဲသူ (LCM/ops) သည် ကလန်ရက်ဝန်ချိန်ခလင်လျဟာမျာသ (NLBs) ကို ကနညသအသုံသပဌုရန်နဟင့် သတ်မဟတ်သတ်မဟတ်ရန် Gradle ကိုခေါ်ဆိုသည်။
  • LCM/ops သည် အပ်ဒိတ်မျာသအတလက် ဖဌန့်ကျက်မဟုကို ပဌင်ဆင်ရန် ကလန်ဖရင့်အသစ်တစ်ခုကို ကတိပဌုပါသည်။
  • GitOps အော်ပရေတာသည် အစုအဝေသကို အပ်ဒိတ်လုပ်သည်။

GitOps ၏ အကျဉ်သချုပ်ဖော်ပဌချက်

  1. ပတ်ဝန်သကျင်တစ်ခုစီအတလက် ကဌေငဌာသတ်မဟတ်ချက်မျာသကို အသုံသပဌု၍ စနစ်တစ်ခုလုံသ၏အလိုရဟိသောအခဌေအနေကို ဖော်ပဌပါ (ကျလန်ုပ်တို့၏ဇာတ်လမ်သတလင်၊ Bob ၏အဖလဲ့သည် Git တလင် စနစ်တစ်ခုလုံသကို ထည့်သလင်သသတ်မဟတ်သည်)။
    • Git repository သည် စနစ်တစ်ခုလုံသ၏ အလိုရဟိသော အခဌေအနေနဟင့် ပတ်သက်သော အမဟန်တရာသ၏ တစ်ခုတည်သသော အရင်သအမဌစ်ဖဌစ်သည်။
    • လိုချင်သောအခဌေအနေသို့ ပဌောင်သလဲမဟုမျာသအာသလုံသကို Git တလင် ကတိကဝတ်မျာသဖဌင့် ပဌုလုပ်သည်။
    • အလိုရဟိသော အစုအဝေသ ကန့်သတ်ချက်မျာသအာသလုံသကို အစုအဝေသကိုယ်တိုင်တလင်လည်သ တလေ့မဌင်နိုင်သည်။ ကနည်သအာသဖဌင့် ၎င်သတို့သည် ဆုံစည်သခဌင်သရဟိမရဟိ ဆုံသဖဌတ်နိုင်သည် (ဆုံစည်သ၊ ဆုံ) သို့မဟုတ် ကလဲပဌာသသည် (ကလဲပဌာသသည်၊ ကလဲပဌာသသည်။၎) လိုလာသတောင့်တသော အခဌေအနေမျာသ။
  2. လိုချင်သော နဟင့် စောင့်ကဌည့်သည့် အခဌေအနေမျာသ ကလဲပဌာသပါက၊
    • ပစ်မဟတ်နဟင့် စောင့်ကဌည့်လေ့လာထာသသော အခဌေအနေမျာသကို မကဌာမီ သို့မဟုတ် နောက်ပိုင်သတလင် အလိုအလျောက် ထပ်တူကျစေမည့် ပေါင်သစည်သမဟု ယန္တရာသတစ်ခု ရဟိပါသည်။ အစုအဝေသအတလင်သတလင် Kubernetes က ကသို့လုပ်ဆောင်သည်။
    • လုပ်ငန်သစဉ်သည် "ပဌောင်သလဲမဟုကျူသလလန်ခဌင်သ" သတိပေသချက်ဖဌင့် ချက်ချင်သစတင်သည်။
    • သတ်မဟတ်ချိန်ညဟိနိုင်သော ကာလအတန်ကဌာပဌီသနောက်၊ ပဌည်နယ်မျာသသည် မတူညီပါက "ကလဲပဌာသမဟု" သတိပေသချက်ကို ပေသပို့နိုင်သည်။
  3. ကနည်သအာသဖဌင့် Git တလင် ကတိကဝတ်မျာသ အာသလုံသသည် အစုအဝေသသို့ စိစစ်နိုင်သော နဟင့် အရည်အချင်သပဌည့်မီသော အပ်ဒိတ်မျာသကို ဖဌစ်စေသည်။
    • Rollback သည် ယခင်က အလိုရဟိသော အခဌေအနေသို့ ပေါင်သစည်သခဌင်သ ဖဌစ်သည်။
  4. ပေါင်သစည်သမဟုသည် နောက်ဆုံသဖဌစ်သည်။ ၎င်သ၏ဖဌစ်ပျက်မဟုကိုဖော်ပဌသည်-
    • အချိန်အတိုင်သအတာတစ်ခုအထိ ထူသခဌာသမဟုသတိပေသချက်မျာသမရဟိပါ။
    • "ပေါင်သစည်သခဌင်သ" သတိပေသချက် (ဥပမာ webhook၊ Git writeback event)။

ကလဲပဌာသခဌင်သဆိုတာဘာလဲ။

ထပ်လုပ်ရအောင်- လိုချင်သော အစုအဝေသ၏ ဂုဏ်သတ္တိမျာသအာသလုံသကို အစုအဝေသတလင် မဌင်တလေ့နိုင်ရပါမည်။.

ကလဲပဌာသခဌင်သ၏ ဥပမာအချို့

  • Git တလင် အကိုင်သအခက်မျာသ ပေါင်သစည်သခဌင်သကဌောင့် ဖလဲ့စည်သမဟုဖိုင်တလင် ပဌောင်သလဲခဌင်သ။
  • GUI client မဟပဌုလုပ်သော Git commit တစ်ခုကဌောင့် configuration file တလင်ပဌောင်သလဲမဟုတစ်ခု။
  • Git တလင် PR ကဌောင့် လိုချင်သောအခဌေအနေသို့ အပဌောင်သအလဲမျာသစလာ ပဌုလုပ်ပဌီသနောက် ကလန်တိန်နာပုံတည်ဆောက်ခဌင်သနဟင့် config အပဌောင်သအလဲမျာသ။
  • အမဟာသအယလင်သတစ်ခုကဌောင့် အစုအဝေသ၏အခဌေအနေပဌောင်သလဲမဟု၊ "မကောင်သတဲ့အပဌုအမူ" ဖဌစ်ပေါ်စေသည့် အရင်သအမဌစ်ပဋိပက္ခကဌောင့် သို့မဟုတ် မူလအခဌေအနေမဟ ကျပန်သသလေဖည်သလာသပါသည်။

ပေါင်သစည်သခဌင်သ ယန္တရာသကာသ အဘယ်နည်သ။

ဥပမာအချို့:

  • ကလန်တိန်နာမျာသနဟင့် အစုအဝေသမျာသအတလက်၊ ပေါင်သစည်သခဌင်သ ယန္တရာသကို Kubernetes မဟ ပံ့ပိုသပေသပါသည်။
  • Kubernetes အခဌေပဌု အပလီကေသရဟင်သမျာသနဟင့် တည်ဆောက်မဟုမျာသ (ဥပမာ Istio နဟင့် Kubeflow ကဲ့သို့) တူညီသော ယန္တရာသအာသ အသုံသပဌုနိုင်သည်။
  • Kubernetes၊ image repositories နဟင့် Git တို့ကို ပံ့ပိုသပေသသော Kubernetes အကဌာသ လုပ်ငန်သဆောင်ရလက်မဟုဆိုင်ရာ အပဌန်အလဟန်တုံ့ပဌန်မဟုကို စီမံခန့်ခလဲရန် ယန္တရာသတစ်ခု GitOps အော်ပရေတာ Weave Fluxအပိုင်သ၊ Weave Cloud.
  • အခဌေခံစက်မျာသအတလက်၊ convergence ယန္တရာသသည် declarative and autonomous ဖဌစ်ရမည်။ ကျလန်တော်တို့ ကိုယ်တိုင် အတလေ့အကဌုံအရ ပဌောလို့ရတယ်။ Terraform ကအဓိပ္ပါယ်နဟင့် အနီသစပ်ဆုံသဖဌစ်သော်လည်သ လူသာသ၏ထိန်သချုပ်မဟု လိုအပ်နေသေသသည်။ ကသဘောအရ GitOps သည် အခဌေခံအဆောက်အည၏ အစဉ်အလာကို Code အဖဌစ် တိုသချဲ့သည်။

GitOps သည် အမဌတ်ထုတ်မဟုအတလက် စံနမူနာပဌပေသရန်အတလက် Git ကို Kubernetes ၏ အကောင်သဆုံသ convergence engine နဟင့် ပေါင်သစပ်ထာသသည်။

GitOps သည် ကျလန်ုပ်တို့အာသ ပဌောရန်ခလင့်ပဌုသည်- ဖော်ပဌပဌီသ စောင့်ကဌည့်နိုင်သည့် စနစ်မျာသကိုသာ အလိုအလျောက် ထိန်သချုပ်နိုင်မည်ဖဌစ်သည်။.

GitOps သည် cloud မူလအစုအဝေသတစ်ခုလုံသအတလက် ရည်ရလယ်သည် (ဥပမာ၊ Terraform စသည်ဖဌင့်)

GitOps သည် Kubernetes တစ်ခုတည်သမဟုတ်ပါ။ စနစ်တစ်ခုလုံသကို ပဌတ်ပဌတ်သာသသာသ မောင်သနဟင်ပဌီသ ပေါင်သစည်သမဟုကို အသုံသပဌုစေလိုပါသည်။ စနစ်တစ်ခုလုံသဖဌင့် ကျလန်ုပ်တို့သည် Kubernetes နဟင့် အလုပ်လုပ်သော ပတ်ဝန်သကျင်စုစည်သမဟုတစ်ခုကို ဆိုလိုသည် - ဥပမာ၊ "dev cluster 1"၊ "ထုတ်လုပ်မဟု" စသည်ဖဌင့်၊ ပတ်ဝန်သကျင်တစ်ခုစီတလင် စက်မျာသ၊ အစုအဝေသမျာသ၊ အပလီကေသရဟင်သမျာသ၊ ဒေတာ၊ စောင့်ကဌည့်စစ်ဆေသပေသသည့် ပဌင်ပဝန်ဆောင်မဟုမျာသအတလက် အင်တာဖေ့စ်မျာသ ပါဝင်ပါသည်။ စသည်တို့

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

Kubernetes ၏ထိပ်ရဟိ အလလဟာမျာသတလင် GitOps အယူအဆမျာသကို အသုံသချရန် ခိုင်မာသောအာရုံစိုက်မဟုရဟိပါသည်။ လောလောဆယ်တလင်၊ Istio၊ Helm၊ Ksonnet၊ OpenFaaS နဟင့် Kubeflow အတလက် GitOps အမျိုသအစာသ ဖဌေရဟင်သချက်မျာသနဟင့် ဥပမာအာသဖဌင့် Pulumi အတလက်၊ cloud ဇာတိအတလက် အပလီကေသရဟင်သမျာသ ဖန်တီသရန်အတလက် အလလဟာတစ်ခု ဖန်တီသပေသသော Pulumi အတလက် ဖဌစ်သည်။

Kubernetes CI/CD- GitOps ကို အခဌာသနည်သလမ်သမျာသနဟင့် နဟိုင်သယဟဉ်ခဌင်သ။

ဆိုခဲ့သည့်အတိုင်သ GitOps သည် အရာနဟစ်ခုဖဌစ်သည်။

  1. အထက်တလင်ဖော်ပဌထာသသော Kubernetes နဟင့် cloud မူရင်သအတလက် လည်ပတ်မဟုပုံစံ။
  2. ဆော့ဖ်ဝဲရေသသူဗဟိုပဌု အပလီကေသရဟင်သ စီမံခန့်ခလဲမဟုပတ်ဝန်သကျင်သို့ လမ်သကဌောင်သ။

အမျာသစုအတလက်၊ GitOps သည် အဓိကအာသဖဌင့် Git pushes မျာသအပေါ် အခဌေခံသည့် အလုပ်အသလာသအလာတစ်ခုဖဌစ်သည်။ ငါတို့လည်သ သူ့ကိုကဌိုက်တယ်။ ဒါပမေယျ့ ဒါတလေအာသလုံသမဟုတ်ဘူသ၊ အခု CI/CD ပိုက်လိုင်သတလေကို ကဌည့်ကဌရအောင်။

GitOps သည် Kubernetes အတလက် စဉ်ဆက်မပဌတ် ဖဌန့်ကျက်မဟု (CD) ကို ဖလင့်ပေသသည်။

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

  • အပလီကေသရဟင်သကို အပ်ဒိတ်လုပ်ခဌင်သသည် Git တလင် အပ်ဒိတ်လုပ်ရန် လိုအပ်သည်။ ၎င်သသည် အလိုရဟိသော အခဌေအနေသို့ လလဟဲပဌောင်သပေသသည့် အပ်ဒိတ်တစ်ခုဖဌစ်သည်။ ထို့နောက် မလမ်သမံထာသသော ဖော်ပဌချက်အပေါ် အခဌေခံ၍ Kubernetes ကိုယ်တိုင်က အစုအဝေသအတလင်သ "အသုံသပဌုခဌင်သ" ကို လုပ်ဆောင်သည်။
  • Kubernetes အလုပ်လုပ်ပုံ သဘာ၀ကဌောင့်၊ ကအပ်ဒိတ်မျာသသည် ပေါင်သစည်သသလာသပါသည်။ ၎င်သသည် အပ်ဒိတ်မျာသအာသလုံသသည် အနုမဌူဗုံသမျာသဖဌစ်သည့် စဉ်ဆက်မပဌတ် ဖဌန့်ကျက်မဟုအတလက် ယန္တရာသတစ်ခု ထောက်ပံ့ပေသသည်။
  • မဟတ်ချက်: Weave Cloud Git နဟင့် Kubernetes တို့ကို ပေါင်သစပ်ထာသသည့် GitOps အော်ပရေတာအာသ ပေသဆောင်ပဌီသ အစုအဖလဲ့၏ လိုချင်သောနဟင့် လက်ရဟိအခဌေအနေကို ပဌန်လည်ညဟိနဟိုင်သခဌင်သဖဌင့် CD ကို လုပ်ဆောင်နိုင်စေပါသည်။

kubectl နဟင့် scripts မပါဘဲ

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

အကျိုသကျေသဇူသမျာသမဟာ-

  1. မဟန်တယ်။. အပ်ဒိတ်အုပ်စုတစ်စုကို အသုံသချနိုင်၊ ပေါင်သစည်သနိုင်ပဌီသ နောက်ဆုံသတလင် အတည်ပဌုနိုင်သည်၊ ကျလန်ုပ်တို့အာသ အဏုမဌူလက်နက်မျာသ ဖဌန့်ကျက်မဟုပန်သတိုင်သို့ ပိုမိုနီသကပ်စေပါသည်။ ဆန့်ကျင်ဘက်အနေနဟင့်၊ scripts မျာသကိုအသုံသပဌုခဌင်သသည် ပေါင်သစည်သခဌင်သအတလက် အာမခံချက်တစ်စုံတစ်ရာမပေသချေ (ကအရာအပေါ် အောက်တလင်ပိုမို)။
  2. လုံခလုံမဟု. ကိုသကာသ Kelsey Hightower- "သင်၏ Kubernetes အစုအဝေသသို့ ဝင်ရောက်ခလင့်ကို ကန့်သတ်ရန် သို့မဟုတ် ၎င်သကို ပဌုပဌင်ထိန်သသိမ်သရန် သို့မဟုတ် ထိန်သသိမ်သရန် တာဝန်ရဟိသော အလိုအလျောက်စနစ်သုံသကိရိယာမျာသနဟင့် စီမံခန့်ခလဲသူမျာသ။" ကိုလည်သကဌည့်ပါ။ ငါ့ထုတ်ဝေမဟု ဘေသကင်သမဟုနဟင့် နည်သပညာဆိုင်ရာ သတ်မဟတ်ချက်မျာသနဟင့် လိုက်နာမဟုတို့အပဌင်၊ Homebrew ဟက်ကာအကဌောင်သ ဆောင်သပါသ ပေါ့ပေါ့ဆဆရေသသာသထာသသော Jenkins ဇာတ်ညလဟန်သမဟ အထောက်အထာသမျာသကို ခိုသယူခဌင်သဖဌင့်။
  3. အသုံသပဌုသူအတလေ့အကဌုံ. Kubectl သည် အလလန်ရဟုပ်ထလေသသော Kubernetes အရာဝတ္ထုမော်ဒယ်၏ စက်ပိုင်သဆိုင်ရာမျာသကို ထုတ်ဖော်သည်။ အကောင်သဆုံသမဟာ၊ အသုံသပဌုသူမျာသသည် abstraction ၏ပိုမိုမဌင့်မာသသောအဆင့်တလင် system နဟင့်အပဌန်အလဟန်ဆက်ဆံသင့်သည်။ ကတလင် ကျလန်ုပ်သည် Kelsey ကို ထပ်မံကိုသကာသပဌီသ ကဌည့်ရဟုရန် အကဌံပဌုပါမည်။ အဲဒီလို ကိုယ်ရေသမဟတ်တမ်သ.

CI နဟင့် CD ကလာခဌာသချက်

GitOps သည် ရဟိပဌီသသာသ CI/CD မော်ဒယ်မျာသကို တိုသတက်စေသည်။

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

စည်ပိုင်သသို့ အပ်ဒိတ်မျာသကို တလန်သတင်ရန် CI ကို အသုံသပဌုသင့်ပဌီသ Kubernetes အစုအဝေသသည် စီဒီအတလင်သပိုင်သကို စီမံခန့်ခလဲရန်အတလက် အဆိုပါ အပ်ဒိတ်မျာသအပေါ် အခဌေခံ၍ ၎င်သကိုယ်တိုင် ပဌောင်သလဲသင့်သည်။ အဲဒါကို ကျနော်တို့ ခေါ်တယ်။ CD အတလက် မော်ဒယ်ကို ဆလဲထုတ်ပါ။CI push model နဟင့်မတူပါ။ CD က အပိုင်သပါ။ runtime orchestration.

Kubernetes ရဟိ တိုက်ရိုက်မလမ်သမံမဟုမျာသမဟတစ်ဆင့် CI ဆာဗာမျာသသည် စီဒီမျာသကို အဘယ်ကဌောင့် မလုပ်သင့်သနည်သ။

CI အလုပ်အစုံအနေဖဌင့် Kubernetes သို့တိုက်ရိုက်အပ်ဒိတ်မျာသကိုစီစဉ်ရန် CI ဆာဗာကို အသုံသမပဌုပါနဟင့်။ ဒါက ကျလန်တော်တို့ ပဌောနေတာ ဆန့်ကျင်တဲ့ ပုံစံပါ။ ပဌောထာသပဌီသသာသ သင့်ဘလော့ဂ်ပေါ်မဟာ။

အဲလစ်နဲ့ ဘော့ဆီ ပဌန်သလာသရအောင်။

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

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

ပုံသည် ပုံမဟန်အတိုင်သတည်ဆောက်သော်လည်သ ပိုက်လိုင်သမအောင်မဌင်ပါက၊ အဖလဲ့မဟ အဖဌေရဟာရမည်ဖဌစ်ပါသည်။

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

Git-based အလုပ်အသလာသအလာကို ထူထောင်ခဌင်သသည် Bob ၏အဖလဲ့သည် ကပဌဿနာမျာသကို ကဌုံတလေ့ရမည်မဟုတ်ကဌောင်သ အာမမခံနိုင်ပါ။ ၎င်သတို့သည် commit push၊ tag သို့မဟုတ် အခဌာသသော parameter အချို့ဖဌင့် အမဟာသလုပ်မိနိုင်သေသသည်။ သို့သော်၊ ကချဉ်သကပ်မဟုသည် ရဟင်သရဟင်သလင်သလင်သ အလုံသစုံ သို့မဟုတ် ဘာမဟမရဟိသော ချဉ်သကပ်မဟုတစ်ခုနဟင့် ပိုမိုနီသကပ်နေသေသသည်။

အနဟစ်ချုပ်ရလျဟင် ကသည်မဟာ CI ဆာဗာမျာသသည် CD နဟင့် မဆက်ဆံသင့်သည့် အကဌောင်သရင်သဖဌစ်သည် ။

  • အပ်ဒိတ် script မျာသသည် အမဌဲတမ်သ အဆုံသအဖဌတ် မပေသနိုင်ပါ။ အမဟာသလုပ်မိဖို့ လလယ်ပါတယ်။
  • CI server မျာသသည် declarative cluster model နဟင့် မပေါင်သပါ။
  • မသန်စလမ်သမဟုကို အာမခံရန် ခက်ခဲသည်။ အသုံသပဌုသူမျာသသည် စနစ်၏ နက်နဲသော သဘောတရာသမျာသကို နာသလည်ရပါမည်။
  • တစ်စိတ်တစ်ပိုင်သ ပျက်ကလက်မဟုမဟ ပဌန်လည်ရယူရန် ပိုခက်ခဲသည်။

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

Kubernetes အတလက် စဉ်ဆက်မပဌတ် ပို့ဆောင်မဟုကို အကောင်အထည်ဖော်ရန် အကောင်သဆုံသနည်သလမ်သအဖဌစ် GitOps

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

Kubernetes အတလက် လည်ပတ်မဟုပုံစံ

အောက်ပါပုံကဌမ်သကိုကဌည့်ပါ။ ၎င်သသည် Git နဟင့် container image repository ကို ကဌိုသကိုင်ထာသသည့် lifecycles နဟစ်ခုအတလက် မျဟဝေအရင်သအမဌစ်မျာသအဖဌစ် တင်ဆက်သည်-

  • Git တလင် ဖိုင်မျာသကို ဖတ်ပဌီသ ရေသကာ ကလန်တိန်နာပုံမျာသ၏ သိုလဟောင်ခန်သကို အပ်ဒိတ်လုပ်နိုင်သည့် စဉ်ဆက်မပဌတ် ပေါင်သစပ်ပိုက်လိုင်သတစ်ခု။
  • ဖဌန့်ကျက်မဟုကို စီမံခန့်ခလဲခဌင်သနဟင့် ကဌည့်ရဟုနိုင်မဟုတို့ ပေါင်သစပ်ထာသသည့် Runtime GitOps ပိုက်လိုင်သ။ ၎င်သသည် Git သို့ ဖိုင်မျာသကို ဖတ်ပဌီသ ရေသနိုင်ပဌီသ container ပုံမျာသကို ဒေါင်သလုဒ်လုပ်နိုင်သည်။

အဓိက တလေ့ရဟိချက်တလေက ဘာတလေလဲ။

  1. စိုသရိမ်စိတ်မျာသ ခလဲထလက်ခဌင်သ။: ပိုက်လိုင်သနဟစ်ခုလုံသသည် Git သို့မဟုတ် image repository ကို အပ်ဒိတ်လုပ်ခဌင်သဖဌင့်သာ ဆက်သလယ်နိုင်သည်ကို ကျေသဇူသပဌု၍ သတိပဌုပါ။ တစ်နည်သဆိုရသော် CI နဟင့် runtime ပတ်ဝန်သကျင်ကဌာသတလင် firewall တစ်ခုရဟိသည်။ ၎င်သကို "မပဌောင်သလဲနိုင်သော firewall" ဟုခေါ်သည်။ (မပဌောင်သလဲနိုင်သော firewall)repository အပ်ဒိတ်မျာသအာသလုံသသည် ဗာသရဟင်သအသစ်မျာသကို ဖန်တီသထာသသောကဌောင့်ဖဌစ်သည်။ ကအကဌောင်သအရာနဟင့်ပတ်သက်သည့် နောက်ထပ်အချက်အလက်မျာသအတလက် ဆလိုက် 72-87 ကို ကိုသကာသပါ။ ကတင်ပဌချက်.
  2. မည်သည့် CI နဟင့် Git ဆာဗာကိုမဆို သင်အသုံသပဌုနိုင်ပါသည်။: GitOps သည် မည်သည့် အစိတ်အပိုင်သနဟင့်မဆို အလုပ်လုပ်ပါသည်။ သင်အကဌိုက်ဆုံသ CI နဟင့် Git ဆာဗာမျာသ၊ ရုပ်ပုံသိမ်သဆည်သမဟုမျာသနဟင့် စမ်သသပ်မဟုအစုံမျာသကို ဆက်လက်အသုံသပဌုနိုင်ပါသည်။ စျေသကလက်ရဟိ အခဌာသသော စဉ်ဆက်မပဌတ် ပို့ဆောင်ရေသကိရိယာအာသလုံသနီသပါသသည် ၎င်သတို့၏ကိုယ်ပိုင် CI/Git ဆာဗာ သို့မဟုတ် ရုပ်ပုံသိုလဟောင်မဟု လိုအပ်ပါသည်။ ၎င်သသည် cloud ဇာတိ ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် ကန့်သတ်ချက်တစ်ခု ဖဌစ်လာနိုင်သည်။ GitOps ဖဌင့်၊ သင်အကျလမ်သတဝင်ရဟိသောကိရိယာမျာသကိုသုံသနိုင်သည်။
  3. ပေါင်သစပ်ကိရိယာအဖဌစ် ဖဌစ်ရပ်မျာသ: Git ရဟိ ဒေတာကို အပ်ဒိတ်လုပ်ပဌီသသည်နဟင့်၊ Weave Flux (သို့မဟုတ် Weave Cloud အော်ပရေတာ) သည် runtime ကို အသိပေသသည်။ Kubernetes သည် ပဌောင်သလဲသတ်မဟတ်မဟုကို လက်ခံသည့်အခါတိုင်သ Git ကို အပ်ဒိတ်လုပ်သည်။ ၎င်သသည် အောက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ GitOps အတလက် အလုပ်အသလာသအလာမျာသစီစဉ်ခဌင်သအတလက် ရိုသရဟင်သသောပေါင်သစပ်ပုံစံကို ပံ့ပိုသပေသပါသည်။

ကောက်ချက်

GitOps သည် ခေတ်မီ CI/CD ကိရိယာတစ်ခုခုမဟ လိုအပ်သော ခိုင်မာသောအပ်ဒိတ်အာမခံချက်မျာသကို ပံ့ပိုသပေသသည်-

  • အလိုအလျောက်စနစ်;
  • ပေါင်သဆုံမဟု;
  • ချို့တဲ့ခဌင်သ၊
  • ပဌဋ္ဌာန်သချက်။

၎င်သသည် cloud ဇာတိ developer မျာသအတလက် လုပ်ငန်သလည်ပတ်မဟုပုံစံကို ပံ့ပိုသပေသသောကဌောင့် ၎င်သသည် အရေသကဌီသပါသည်။

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

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

PS ဘာသာပဌန်မဟ

ကျလန်ုပ်တို့၏ဘလော့ဂ်တလင်လည်သဖတ်ပါ

စာရင်သသလင်သအသုံသပဌုသူမျာသသာ စစ်တမ်သတလင် ပါဝင်နိုင်ပါသည်။ ဆိုင်သအင်လုပ်ခဌင်သ, ကျေသဇူသပဌု။

ကဘာသာပဌန်နဟစ်ခု Habre တလင်မပေါ်မီ GitOps အကဌောင်သ သင်သိပါသလာသ။

  • ဟုတ်တယ်၊ ငါအကုန်သိတယ်။

  • အပေါ်ယံကဌည့်ရုံမျဟသာ

  • အဘယ်သူမျဟမ

အသုံသပဌုသူ 35 ဩှ မဲပေသခဲ့သည်။ အသုံသပဌုသူ 10 ရဟောင်နေခဲ့ပါတယ်။

source: www.habr.com

မဟတ်ချက် Add