GitLab.com ကို Kubernetes သို့ ပဌောင်သရလဟေ့ပဌီသ တစ်နဟစ်အတလင်သ ကျလန်ုပ်တို့၏ တလေ့ရဟိချက်မျာသ

မဟတ်ချက်။ ဘာသာပဌန်: GitLab တလင် Kubernetes မလေသစာသခဌင်သကို ကုမ္ပဏီ၏တိုသတက်မဟုအတလက် အထောက်အကူဖဌစ်စေသော အဓိကအကဌောင်သရင်သနဟစ်ခုထဲမဟ တစ်ခုဟု ယူဆပါသည်။ သို့သော်လည်သ မကဌာသေသမီအထိ၊ GitLab.com အလန်လိုင်သဝန်ဆောင်မဟု၏ အခဌေခံအဆောက်အအုံကို virtual machines မျာသပေါ်တလင် တည်ဆောက်ခဲ့ပဌီသ ပဌီသခဲ့သောတစ်နဟစ်ခန့်ကမဟ K8s သို့ ပဌောင်သရလဟေ့ခဌင်သစတင်ခဲ့ပဌီသ ယင်သသည် မပဌီသပဌတ်သေသပါ။ GitLab SRE အင်ဂျင်နီယာတစ်ညသမဟ မကဌာသေသမီက ဆောင်သပါသတစ်ပုဒ်၏ ဘာသာပဌန်ချက်ကို ကျလန်ုပ်တို့ ကျေနပ်စလာ တင်ဆက်လိုက်ရပါသည်။

GitLab.com ကို Kubernetes သို့ ပဌောင်သရလဟေ့ပဌီသ တစ်နဟစ်အတလင်သ ကျလန်ုပ်တို့၏ တလေ့ရဟိချက်မျာသ

ယခုတစ်နဟစ်ခန့်ရဟိပဌီ၊ ကျလန်ုပ်တို့၏ အခဌေခံအဆောက်အအုံဌာနခလဲသည် GitLab.com တလင် လုပ်ဆောင်နေသည့် ဝန်ဆောင်မဟုအာသလုံသကို Kubernetes သို့ ပဌောင်သရလဟေ့နေပါသည်။ ကအချိန်အတောအတလင်သ၊ ကျလန်ုပ်တို့သည် Kubernetes သို့ ပဌောင်သရလဟေ့ဝန်ဆောင်မဟုမျာသသာမက အကူသအပဌောင်သကာလအတလင်သ ပေါင်သစပ်ဖဌန့်ကျက်မဟုကို စီမံခန့်ခလဲခဌင်သနဟင့် သက်ဆိုင်သည့် စိန်ခေါ်မဟုမျာသနဟင့် ကဌုံတလေ့ခဲ့ရသည်။ အဖိုသတန်သင်ခန်သစာမျာသကို ကဆောင်သပါသတလင် ဆလေသနလေသပါမည်။

GitLab.com ၏အစကတည်သက၊ ၎င်သ၏ဆာဗာမျာသသည် virtual machines မျာသပေါ်တလင် cloud တလင်လည်ပတ်ခဲ့သည်။ က virtual machines မျာသကို Chef မဟ စီမံခန့်ခလဲပဌီသ ကျလန်ုပ်တို့ကို အသုံသပဌု၍ ထည့်သလင်သထာသပါသည်။ တရာသဝင် Linux အထုပ်. ဖဌန့်ကျက်ဗျူဟာ အပလီကေသရဟင်သကို အပ်ဒိတ်လုပ်ရန် လိုအပ်ပါက၊ CI ပိုက်လိုင်သကို အသုံသပဌု၍ ပေါင်သစပ်ထာသသော၊ ဆင့်ကဲပုံစံဖဌင့် ဆာဗာတပ်စုကို ရိုသရဟင်သစလာ အဆင့်မဌဟင့်တင်ခဌင်သ ပါဝင်သည်။ ကနည်သလမ်သ - အနည်သငယ်နဟေသကလေသသော်လည်သ၊ မဟိုင်သ - GitLab.com သည် အော့ဖ်လိုင်သအသုံသပဌုသူမျာသကဲ့သို့ တူညီသောတပ်ဆင်မဟုနဟင့် ဖလဲ့စည်သမဟုပုံစံမျာသကို အသုံသပဌုကဌောင်သ သေချာစေပါသည်။ (ကိုယ်တိုင် စီမံခန့်ခလဲခဌင်သ) ကအတလက် ကျလန်ုပ်တို့၏ Linux ပက်ကေ့ဂျ်မျာသကို အသုံသပဌု၍ GitLab တပ်ဆင်မဟုမျာသ။

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

Kubernetes နဟင့် cloud-native GitLab သို့ ပထမဆုံသခဌေလဟမ်သမျာသ

အဆိုပါပရောဂျက်ကို 2017 ခုနဟစ်တလင်ဖန်တီသခဲ့သည်။ GitLab ဇယာသမျာသ cloud ဖဌန့်ကျက်မဟုအတလက် GitLab ကို ပဌင်ဆင်ရန်နဟင့် Kubernetes အစုအဝေသမျာသတလင် GitLab ကို ထည့်သလင်သရန် အသုံသပဌုသူမျာသကို ဖလင့်ရန်။ GitLab ကို Kubernetes သို့ ရလဟေ့ခဌင်သသည် SaaS ပလပ်ဖောင်သ၏ အရလယ်အစာသကို တိုသမဌင့်စေမည်ဖဌစ်ပဌီသ၊ အသုံသချမဟုမျာသကို ရိုသရဟင်သစေပဌီသ ကလန်ပျူတာအရင်သအမဌစ်မျာသ၏ စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ပေသမည်ကို ကျလန်ုပ်တို့ သိရဟိပါသည်။ တစ်ချိန်တည်သမဟာပင်၊ ကျလန်ုပ်တို့၏အပလီကေသရဟင်သ၏လုပ်ဆောင်ချက်အမျာသအပဌာသသည် virtual machines မျာသမဟအကူသအပဌောင်သကိုနဟေသကလေသစေသည့်တပ်ဆင်ထာသသော NFS partitions မျာသပေါ်တလင်မူတည်သည်။

cloud ဇာတိနဟင့် Kubernetes ဆီသို့ တလန်သအာသပေသခဌင်သဖဌင့် ကျလန်ုပ်တို့၏အင်ဂျင်နီယာမျာသအာသ အသလင်ကူသပဌောင်သမဟုအစီအစဉ်ကို တဖဌည်သဖဌည်သချင်သ စီစဉ်နိုင်စေခဲ့ပဌီသ ဝန်ဆောင်မဟုအသစ်မျာသကို ဆက်လက်လုပ်ဆောင်နေစဉ်တလင် ကလန်ရက်သိုလဟောင်မဟုအပေါ် အပလီကေသရဟင်သ၏မဟီခိုမဟုအချို့ကို စလန့်လလဟတ်ခဲ့သည်။ 2019 ခုနဟစ် နလေရာသီတလင် ရလဟေ့ပဌောင်သခဌင်သအာသ ကျလန်ုပ်တို့ စတင်စီစဉ်ကတည်သက၊ ကကန့်သတ်ချက်မျာသ အမျာသအပဌာသကို ဖဌေရဟင်သပဌီသဖဌစ်ပဌီသ၊ GitLab.com သို့ Kubernetes သို့ ပဌောင်သရလဟေ့ခဌင်သလုပ်ငန်သစဉ်သည် ယခုအခါ ကောင်သမလန်စလာ လုပ်ဆောင်နေပဌီဖဌစ်သည်။

Kubernetes ရဟိ GitLab.com ၏အင်္ဂါရပ်မျာသ

GitLab.com အတလက်၊ ကျလန်ုပ်တို့သည် အပလီကေသရဟင်သအသလာသအလာအာသလုံသကို ကိုင်တလယ်ပေသသည့် ဒေသဆိုင်ရာ GKE အစုအဝေသတစ်ခုတည်သကို အသုံသပဌုပါသည်။ (ရဟုပ်ထလေသပဌီသသာသ) ရလဟေ့ပဌောင်သခဌင်သ၏ ရဟုပ်ထလေသမဟုကို လျဟော့ချရန်၊ ကျလန်ုပ်တို့သည် ဒေသတလင်သ သိုလဟောင်မဟု သို့မဟုတ် NFS ကို အာသကိုသခဌင်သမရဟိသော ဝန်ဆောင်မဟုမျာသကို အာရုံစိုက်ပါသည်။ GitLab.com သည် အမျာသအာသဖဌင့် monolithic Rails ကုဒ်ဘေ့စ်ကို အသုံသပဌုပဌီသ ၎င်သတို့ကိုယ်ပိုင် node pool မျာသအတလင်သ သီသခဌာသခလဲထာသသော မတူညီသော အဆုံသမဟတ်မျာသဆီသို့ အလုပ်ဝန်လက္ခဏာမျာသပေါ်မူတည်၍ လမ်သကဌောင်သအသလာသအလာကို လမ်သကဌောင်သပေသပါသည်။

Frontend ကိစ္စတလင်၊ ကအမျိုသအစာသမျာသကို ဝဘ်၊ API၊ Git SSH/HTTPS နဟင့် Registry သို့ တောင်သဆိုမဟုမျာသအဖဌစ် ပိုင်သခဌာသထာသသည်။ backend ၏အခဌေအနေတလင်၊ ကျလန်ုပ်တို့သည် မတူညီသောဝိသေသလက္ခဏာမျာသအလိုက် တန်သစီနေသောအလုပ်မျာသကို ပိုင်သခဌာသထာသသည်။ ကဌိုတင်သတ်မဟတ်ထာသသော အရင်သအမဌစ်နယ်နိမိတ်မျာသအလုပ်တာဝန်အမျိုသမျိုသအတလက် Service-Level Objectives (SLOs) ကို သတ်မဟတ်ခလင့်ပဌုသည်။

က GitLab.com ဝန်ဆောင်မဟုမျာသအာသလုံသသည် မလမ်သမံထာသသော GitLab Helm ဇယာသကို အသုံသပဌု၍ ပဌင်ဆင်သတ်မဟတ်ထာသပါသည်။ ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုမျာသကို အစုအဝေသသို့ ဖဌည်သဖဌည်သချင်သ ပဌောင်သရလဟေ့ခဌင်သဖဌင့် ရလေသချယ်လုပ်ဆောင်နိုင်သောကဌောင့် ဖလဲ့စည်သမဟုပုံစံကို ဇယာသကလက်ခလဲမျာသတလင် လုပ်ဆောင်ပါသည်။ Redis၊ Postgres၊ GitLab Pages နဟင့် Gitaly ကဲ့သို့သော ရလဟေ့ပဌောင်သနေထိုင်မဟုတလင် ကျလန်ုပ်တို့၏နိုင်ငံပိုင်ဝန်ဆောင်မဟုအချို့ကို မထည့်သလင်သရန် ကျလန်ုပ်တို့ ဆုံသဖဌတ်ထာသသော်လည်သ Kubernetes ကိုအသုံသပဌုခဌင်သဖဌင့် ကျလန်ုပ်တို့အာသ လက်ရဟိစာသဖိုမဟူသစီမံခန့်ခလဲသည့် VM အရေအတလက်ကို သိသိသာသာလျဟော့ချနိုင်စေပါသည်။

Kubernetes ဖလဲ့စည်သမဟုမဌင်နိုင်မဟုနဟင့် စီမံခန့်ခလဲမဟု

ဆက်တင်အာသလုံသကို GitLab ကိုယ်တိုင်က စီမံခန့်ခလဲပါသည်။ ယင်သအတလက်၊ Terraform နဟင့် Helm ကို အခဌေခံ၍ ဖလဲ့စည်သမဟုဆိုင်ရာ ပရောဂျက်သုံသခုကို အသုံသပဌုထာသသည်။ ကျလန်ုပ်တို့သည် GitLab ကိုလည်ပတ်ရန် ဖဌစ်နိုင်သည့်အခါတိုင်သ GitLab ကိုယ်တိုင်အသုံသပဌုရန် ကဌိုသစာသသော်လည်သ လုပ်ငန်သလည်ပတ်မဟုဆိုင်ရာလုပ်ငန်သမျာသအတလက် သီသခဌာသ GitLab တပ်ဆင်မဟုတစ်ခုရဟိသည်။ GitLab.com ဖဌန့်ကျက်မဟုမျာသနဟင့် အပ်ဒိတ်မျာသကို လုပ်ဆောင်သောအခါတလင် သင်သည် GitLab.com ၏ရရဟိနိုင်မဟုအပေါ်တလင် မဟီခိုနေခဌင်သမရဟိကဌောင်သ သေချာစေရန် ၎င်သသည် လိုအပ်ပါသည်။

Kubernetes အစုအဝေသအတလက် ကျလန်ုပ်တို့၏ပိုက်လိုင်သမျာသသည် သီသခဌာသ GitLab တပ်ဆင်မဟုတလင် လုပ်ဆောင်နေသော်လည်သ၊ အောက်ပါလိပ်စာမျာသတလင် လူသိရဟင်ကဌာသရရဟိနိုင်သည့် ကုဒ်သိုလဟောင်နေရာမျာသ၏ မဟန်မျာသရဟိပါသည်။

  • k8s-workloads/gitlab-com — GitLab Helm ဇယာသအတလက် GitLab.com ဖလဲ့စည်သမဟုဘောင်၊
  • k8s-workloads/gitlab-helmfiles - GitLab အပလီကေသရဟင်သနဟင့် တိုက်ရိုက်မသက်ဆိုင်သော ဝန်ဆောင်မဟုမျာသအတလက် ဖလဲ့စည်သမဟုပုံစံမျာသ ပါရဟိသည်။ ၎င်သတို့တလင် သစ်ခုတ်ခဌင်သနဟင့် အစုအဝေသစောင့်ကဌည့်ခဌင်သအတလက် ဖလဲ့စည်သမဟုပုံစံမျာသအပဌင် PlantUML ကဲ့သို့ ပေါင်သစပ်ကိရိယာမျာသ ပါဝင်သည်။
  • Gitlab-com-အခဌေခံအဆောက်အအုံ - Kubernetes နဟင့် အမလေအနဟစ် VM အခဌေခံအဆောက်အညအတလက် Terraform ဖလဲ့စည်သမဟု။ ကတလင် သင်သည် အစုအဝေသကိုလည်ပတ်ရန် လိုအပ်သောအရင်သအမဌစ်မျာသအာသလုံသကို အစုအဝေသကိုယ်တိုင်၊ node pools၊ ဝန်ဆောင်မဟုအကောင့်မျာသနဟင့် IP လိပ်စာကဌိုတင်မဟာယူမဟုမျာသအပါအဝင် အရင်သအမဌစ်အာသလုံသကို configure လုပ်ပါ။

GitLab.com ကို Kubernetes သို့ ပဌောင်သရလဟေ့ပဌီသ တစ်နဟစ်အတလင်သ ကျလန်ုပ်တို့၏ တလေ့ရဟိချက်မျာသ
အပဌောင်သအလဲမျာသ ပဌုလုပ်သည့်အခါ အမျာသသူငဟာ ကဌည့်ရဟုမဟုကို ပဌသသည်။ အတိုချုပ် အစုအဝေသသို့မပဌောင်သလဲမီ SRE ခလဲခဌမ်သစိတ်ဖဌာသည့်အသေသစိတ်ကလဲပဌာသမဟုထံသို့ လင့်ခ်တစ်ခုနဟင့်အတူ။

SRE အတလက်၊ လင့်ခ်သည် အကန့်အသတ်ရဟိသော ထုတ်လုပ်ခဌင်သနဟင့် အသုံသပဌုခလင့်အတလက် အသုံသပဌုသည့် GitLab တပ်ဆင်မဟုတလင် အသေသစိတ်ကလဲပဌာသမဟုကို ညသတည်စေသည်။ ၎င်သသည် ဝန်ထမ်သမျာသနဟင့် အသိုက်အဝန်သအာသ လုပ်ငန်သလည်ပတ်မဟုပရောဂျက် (SREs မျာသအတလက်သာဖလင့်ထာသသည့်) သို့ဝင်ရောက်ခလင့်မရဟိဘဲ အဆိုပဌုထာသသောဖလဲ့စည်သပုံအပဌောင်သအလဲမျာသကိုကဌည့်ရဟုရန်ခလင့်ပဌုသည်။ CI ပိုက်လိုင်သမျာသအတလက် သီသသန့်ဥပမာတစ်ခုနဟင့် ကုဒ်အတလက် အမျာသသူငဟာ GitLab instance ကို ပေါင်သစပ်ခဌင်သဖဌင့်၊ configuration updates မျာသအတလက် GitLab.com မဟ အမဟီအခိုကင်သကဌောင်သ သေချာစေပဌီသ၊ ကျလန်ုပ်တို့သည် တစ်ခုတည်သသော အလုပ်အသလာသအလာကို ထိန်သသိမ်သထာသပါသည်။

ရလဟေ့ပဌောင်သနေထိုင်စဉ်အတလင်သ ကျလန်ုပ်တို့ တလေ့ရဟိခဲ့သမျဟ

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

1. ရရဟိနိုင်မဟုဇုန်မျာသကဌာသတလင် ယာဉ်ကဌောပိတ်ဆို့မဟုကဌောင့် ကုန်ကျစရိတ်မျာသ တိုသလာသည်။

GitLab.com ကို Kubernetes သို့ ပဌောင်သရလဟေ့ပဌီသ တစ်နဟစ်အတလင်သ ကျလန်ုပ်တို့၏ တလေ့ရဟိချက်မျာသ
Git သိုလဟောင်ရေယာဉ်စုအတလက် GitLab.com ရဟိ Git repository fleet အတလက် နေ့စဉ်ထလက်ပေါက်စာရင်သအင်သမျာသ (တစ်နေ့လျဟင် bytes)

Google သည် ၎င်သ၏ကလန်ရက်ကို ဒေသမျာသအဖဌစ် ပိုင်သခဌာသထာသသည်။ တစ်ဖန် ၎င်သတို့ကို သုံသစလဲနိုင်မဟုဇုန်မျာသ (AZ) ဟူ၍ ခလဲခဌာသထာသသည်။ Git hosting သည် ဒေတာအမဌောက်အမဌာသနဟင့် ဆက်စပ်နေသောကဌောင့် ကလန်ရက်မဟ ထလက်ခလာမဟုကို ထိန်သချုပ်ရန် အရေသကဌီသပါသည်။ အတလင်သအသလာသအလာအတလက်၊ တူညီသောရရဟိနိုင်မဟုဇုန်အတလင်သရဟိနေပါက egress သည် အခမဲ့ဖဌစ်သည်။ ကရေသသာသမဟုအရ၊ ကျလန်ုပ်တို့သည် ပုံမဟန်အလုပ်နေ့တလင် ဒေတာ 100 TB ခန့်ကို ဝန်ဆောင်မဟုပေသနေသည် (၎င်သသည် Git repositories အတလက်သာဖဌစ်သည်)။ ကျလန်ုပ်တို့၏ VM-based topology ဟောင်သရဟိ တူညီသော virtual machines မျာသတလင် နေထိုင်သည့် ဝန်ဆောင်မဟုမျာသသည် ယခု မတူညီသော Kubernetes pods မျာသတလင် လုပ်ဆောင်နေပါသည်။ ဆိုလိုသည်မဟာ VM သို့ယခင်ကပဌည်တလင်သရဟိအသလာသအလာအချို့သည်ရရဟိနိုင်မဟုဇုန်မျာသအပဌင်ဘက်သို့သလာသလာနိုင်သည်ဟုဆိုလိုသည်။

ဒေသဆိုင်ရာ GKE အစုအဝေသမျာသသည် သင့်အာသ အကဌိမ်ရေအတလက် ရရဟိနိုင်မဟုဇုန်မျာသစလာကို ချဲ့ထလင်နိုင်စေပါသည်။ ဖဌစ်နိုင်ချေကို ကျလန်တော်တို့ စဉ်သစာသနေပါတယ်။ ဒေသဆိုင်ရာ GKE အစုအဝေသကို ဇုန်တစ်ခုတည်သ အစုအဝေသမျာသအဖဌစ် ပိုင်သခဌာသပါ။ အသလာသအလာမျာသပဌာသသော ဝန်ဆောင်မဟုမျာသအတလက် ၎င်သသည် အစုအစည်သအဆင့် ထပ်နေမဟုကို ထိန်သသိမ်သထာသစဉ်တလင် ထလက်ခလာစရိတ်မျာသကို လျဟော့ချပေသမည်ဖဌစ်သည်။

2. ကန့်သတ်ချက်မျာသ၊ အရင်သအမဌစ်တောင်သဆိုမဟုမျာသနဟင့် အတိုင်သအတာမျာသ

GitLab.com ကို Kubernetes သို့ ပဌောင်သရလဟေ့ပဌီသ တစ်နဟစ်အတလင်သ ကျလန်ုပ်တို့၏ တလေ့ရဟိချက်မျာသ
registry.gitlab.com တလင် ထုတ်လုပ်မဟုလမ်သကဌောင်သကို လုပ်ဆောင်နေသည့် ပုံတူအရေအတလက်။ ~ 15:00 UTC တလင် ယာဉ်အသလာသအလာ အမဌင့်ဆုံသ။

ကျလန်ုပ်တို့၏ပထမဆုံသဝန်ဆောင်မဟုဖဌစ်သော GitLab ကလန်တိန်နာမဟတ်ပုံတင်ခဌင်သကို Kubernetes သို့ ပဌောင်သရလဟေ့သောအခါ ကျလန်ုပ်တို့၏ရလဟေ့ပဌောင်သခဌင်သဇာတ်လမ်သသည် 2019 ခုနဟစ် သဌဂုတ်လတလင် စတင်ခဲ့သည်။ ကမစ်ရဟင်အရေသပါသော၊ အသလာသအလာမျာသသောဝန်ဆောင်မဟုသည် နိုင်ငံမဲ့အပလီကေသရဟင်သဖဌစ်သောကဌောင့် ပဌင်ပမဟီခိုမဟုအနည်သငယ်ရဟိသော နိုင်ငံမဲ့အက်ပလီကေသရဟင်သဖဌစ်သောကဌောင့် ပထမဆုံသရလဟေ့ပဌောင်သခဌင်သအတလက် ကောင်သသောရလေသချယ်မဟုဖဌစ်သည်။ ကျလန်ုပ်တို့ ပထမဆုံသကဌုံတလေ့ရသည့် ပဌဿနာမဟာ node မျာသတလင် memory မရဟိခဌင်သကဌောင့် နဟင်ထုတ်ခံရသော pods အမျာသအပဌာသဖဌစ်သည်။ ထို့အတလက်ကဌောင့် ကျလန်ုပ်တို့သည် တောင်သဆိုမဟုမျာသနဟင့် ကန့်သတ်ချက်မျာသကို ပဌောင်သလဲခဲ့ရသည်။

အချိန်ကဌာလာသည်နဟင့်အမျဟ မဟတ်ဉာဏ်သုံသစလဲမဟု တိုသလာနေသည့် အက်ပလီကေသရဟင်သတစ်ခုတလင်၊ အသုံသပဌုမဟုအပေါ် "ရက်ရောသော" ခက်ခဲသောကန့်သတ်ချက်ဖဌင့် တလဲလျက် တောင်သဆိုမဟုမျာသအတလက် တန်ဖိုသမျာသ (pod တစ်ခုစီအတလက် မဟတ်ဉာဏ်ကို သိမ်သဆည်သခဌင်သ) နည်သပါသသည်ကို ရဟာဖလေတလေ့ရဟိခဲ့သည်။ (ရလဟဲ) nodes မျာသနဟင့် နဟင်ထုတ်ခဌင်သ အဆင့်မဌင့်မာသသည်။ ဒီပဌဿနာကို ဖဌေရဟင်သဖို့၊ တောင်သဆိုမဟုမျာသကို တိုသမဌဟင့်ရန်နဟင့် ကန့်သတ်ချက်မျာသကို လျဟော့ချရန် ဆုံသဖဌတ်ခဲ့သည်။. ၎င်သသည် node မျာသပေါ်မဟ ဖိအာသမျာသကို ဖယ်ထုတ်ပဌီသ pods မျာသတလင် node တလင် ဖိအာသအလလန်အကျလံမဖဌစ်စေသော lifecycle ရဟိကဌောင်သသေချာစေသည်။ ယခု ကျလန်ုပ်တို့သည် ရက်ရောသော (တူညီလုနီသပါသ) တောင်သဆိုချက်နဟင့် ကန့်သတ်တန်ဖိုသမျာသဖဌင့် ရလဟေ့ပဌောင်သခဌင်သကို စတင်ပဌီသ ၎င်သတို့ကို လိုအပ်သလို ချိန်ညဟိပါ။

3. မက်ထရစ်မျာသနဟင့် မဟတ်တမ်သမျာသ

GitLab.com ကို Kubernetes သို့ ပဌောင်သရလဟေ့ပဌီသ တစ်နဟစ်အတလင်သ ကျလန်ုပ်တို့၏ တလေ့ရဟိချက်မျာသ
အခဌေခံအဆောက်အညဌာနခလဲသည် တပ်ဆင်ထာသသည့်အချိန်၊ အမဟာသအယလင်သနဟုန်သမျာသနဟင့် ရလဟဲရလဟဲစိုစလတ်မဟုအပေါ် အာရုံစိုက်သည်။ ဝန်ဆောင်မဟုအဆင့် ရည်မဟန်သချက်မျာသ (SLO) မဟ ချိတ်ဆက်ထာသသည်။ ကျလန်ုပ်တို့၏စနစ်၏အထလေထလေရရဟိနိုင်မဟု.

ပဌီသခဲ့သောနဟစ်တလင်၊ အခဌေခံအဆောက်အအုံဌာနခလဲရဟိ အဓိကဖဌစ်ရပ်မျာသထဲမဟတစ်ခုမဟာ SLO မျာသစောင့်ကဌည့်ခဌင်သနဟင့် လက်တလဲလုပ်ဆောင်ခဌင်သတလင် တိုသတက်မဟုမျာသဖဌစ်သည်။ SLO မျာသသည် ပဌောင်သရလဟေ့မဟုအတလင်သ ကျလန်ုပ်တို့အနီသကပ်စောင့်ကဌည့်ခဲ့သည့် တစ်ညသချင်သဝန်ဆောင်မဟုမျာသအတလက် ပန်သတိုင်မျာသချမဟတ်နိုင်စေခဲ့သည်။ သို့သော် ကတိုသတက်လာသော ရဟုမဌင်နိုင်စလမ်သဖဌင့်ပင်၊ မက်ထရစ်မျာသနဟင့် သတိပေသချက်မျာသကို အသုံသပဌု၍ ပဌဿနာမျာသကို ချက်ခဌင်သမဌင်ရန် အမဌဲတမ်သမဖဌစ်နိုင်ပါ။ ဥပမာအာသဖဌင့်၊ ကဌာမဌင့်ချိန်နဟင့် အမဟာသအယလင်သနဟုန်သမျာသကို အာရုံစိုက်ခဌင်သဖဌင့်၊ ရလဟေ့ပဌောင်သခဌင်သလုပ်ဆောင်နေသည့် ဝန်ဆောင်မဟုအတလက် အသုံသပဌုမဟုကိစ္စအာသလုံသကို ကျလန်ုပ်တို့ အပဌည့်အဝ အကျုံသမဝင်ပါ။

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

တူညီသောတောင်သဆိုမဟုမျာသကို VM အခဌေခံအဆောက်အအုံဟောင်သနဟင့် Kubernetes အခဌေပဌုအခဌေခံအဆောက်အအုံအသစ်တလင် ပဌိုင်တူဆောင်ရလက်ပေသခဌင်သသည် ထူသခဌာသသောစိန်ခေါ်မဟုကိုတင်ပဌသည်။ lift-and-shift ရလဟေ့ပဌောင်သခဌင်သနဟင့် မတူပါ။ (အပလီကေသရဟင်သမျာသကို အခဌေခံအဆောက်အအုံအသစ်တစ်ခုသို့ “အတိုင်သ” အမဌန်လလဟဲပဌောင်သခဌင်သ၊ အသေသစိတ်အချက်အလက်မျာသကို ဖတ်ရဟုနိုင်သည် ဥပမာ၊ ဒီမဟာ - ခန့်မဟန်သခဌေ ဘာသာပဌန်။)"အဟောင်သ" VM နဟင့် Kubernetes တလင် အပဌိုင်လုပ်ဆောင်ခဌင်သသည် စောင့်ကဌည့်ရေသကိရိယာမျာသသည် ပတ်ဝန်သကျင်နဟစ်ခုလုံသနဟင့် တလဲဖက်အသုံသပဌုနိုင်ပဌီသ မက်ထရစ်မျာသကို မဌင်ကလင်သတစ်ခုတည်သအဖဌစ် ပေါင်သစပ်နိုင်ရန်လိုအပ်ပါသည်။ အကူသအပဌောင်သကာလအတလင်သ တသမတ်တည်သကဌည့်ရဟုနိုင်မဟုရရဟိရန် တူညီသော ဒက်ရဟ်ဘုတ်မျာသနဟင့် မဟတ်တမ်သမေသခလန်သမျာသကို အသုံသပဌုရန် အရေသကဌီသပါသည်။

4. ယာဉ်အသလာသအလာကို အစုအဝေသအသစ်သို့ ပဌောင်သခဌင်သ။

GitLab.com အတလက်၊ ဆာဗာမျာသ၏ တစ်စိတ်တစ်ပိုင်သကို ရည်ရလယ်ပါသည်။ ကိန္နရီအဆင့်. Canary Park သည် ကျလန်ုပ်တို့၏ အတလင်သပိုင်သ ပရောဂျက်မျာသကို ဆောင်ရလက်ပေသပဌီသ လုပ်ဆောင်နိုင်သည်။ အသုံသပဌုသူမျာသမဟဖလင့်ထာသသည်။. သို့သော် အခဌေခံအဆောက်အအုံနဟင့် အက်ပ်လီကေသရဟင်သတလင် ပဌုလုပ်ထာသသော အပဌောင်သအလဲမျာသကို စမ်သသပ်ရန် အဓိက ဒီဇိုင်သထုတ်ထာသသည်။ အကန့်အသတ်ရဟိသော အတလင်သအသလာသအလာပမာဏကို လက်ခံခဌင်သဖဌင့် ပထမဆုံသ ရလဟေ့ပဌောင်သခဌင်သဝန်ဆောင်မဟုကို စတင်ခဲ့ပဌီသ SLO မျာသကို လမ်သကဌောင်သအာသလုံသကို အစုအဝေသသို့ မပို့မီ သေချာစေရန် ကနည်သလမ်သကို ကျလန်ုပ်တို့ ဆက်လက်အသုံသပဌုပါသည်။

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

5. အစေ့မျာသ၏ စလမ်သဆောင်ရည်နဟင့် ၎င်သတို့၏ အသုံသပဌုမဟုကို သိမ်သဆည်သပါ။

ချက်ချင်သဆိုသလိုပင် အောက်ပါပဌဿနာကို ဖော်ထုတ်တလေ့ရဟိခဲ့သည်- Registry ဝန်ဆောင်မဟုအတလက် pods မျာသသည် လျင်မဌန်စလာစတင်ခဲ့ပဌီသ၊ သို့သော် Sidekiq အတလက် စတင်သည့် pods မျာသသည် အချိန်ကဌာမဌင့်ခဲ့သည်။ နဟစ်မိနစ်. Sidekiq pods မျာသအတလက် ကဌာမဌင့်သော စတင်ချိန်သည် အလုပ်အကိုင်မျာသကို လျင်မဌန်စလာ စီမံဆောင်ရလက်ပေသရန် လိုအပ်သော အလုပ်သမာသမျာသအတလက် Kubernetes သို့ အလုပ်မျာသစတင်ပဌောင်သရလဟေ့သောအခါ ပဌဿနာဖဌစ်လာပါသည်။

ကကိစ္စတလင်၊ သင်ခန်သစာမဟာ Kubernetes ၏ Horizontal Pod Autoscaler (HPA) သည် ယာဉ်အသလာသအလာတိုသတက်မဟုကို ကောင်သမလန်စလာကိုင်တလယ်နိုင်သော်လည်သ၊ အလုပ်ဝန်မျာသ၏ဝိသေသလက္ခဏာမျာသကို ထည့်သလင်သစဉ်သစာသရန်နဟင့် pods မျာသသို့ အာသလပ်ချိန်ပမာဏကို ခလဲဝေသတ်မဟတ်ရန် အရေသကဌီသသည်မဟာ (အထူသသဖဌင့် ဝယ်လိုအာသ မညီမညာဖဌစ်နေသောအခါ)။ ကျလန်ုပ်တို့၏အခဌေအနေတလင်၊ အလုပ်မျာသရုတ်တရက်မဌင့်တက်လာပဌီသ လျင်မဌန်သောစကေသချဲ့ခဌင်သကိုဖဌစ်ပေါ်စေပဌီသ node pool ကိုစကေသချိန်မရမီတလင် CPU ရင်သမဌစ်မျာသ ရလဟဲလာစေသည်။

အစုအဖလဲ့တစ်ခုမဟ တတ်နိုင်သမျဟ ညဟစ်ထုတ်ရန် သလေသဆောင်မဟု အမဌဲရဟိနေသည်၊ သို့သော် အစပိုင်သတလင် စလမ်သဆောင်ရည် ပဌဿနာမျာသ ကဌုံတလေ့ခဲ့ရပဌီသ ယခုအခါ ကျလန်ုပ်တို့သည် ရက်ရောသော ဘတ်ဂျက်ဖဌင့် စတင်ကာ နောက်ပိုင်သတလင် ၎င်သကို လျဟော့ချကာ SLO မျာသကို အနီသကပ် စောင့်ကဌည့်နေပါသည်။ Sidekiq ဝန်ဆောင်မဟုအတလက် စတင်အသုံသပဌုသည့် pods မျာသသည် သိသိသာသာ အရဟိန်မဌဟင့်ခဲ့ပဌီသ ယခုအခါ ပျမ်သမျဟ စက္ကန့် 40 ခန့် ကဌာပါသည်။ pods မျာသ၏ပစ်လလဟတ်ချိန်ကိုလျဟော့ချမဟ GitLab.com နဟင့်တရာသဝင် GitLab Helm ဇယာသဖဌင့်လုပ်ဆောင်သော ကျလန်ုပ်တို့၏အသုံသပဌုသူမျာသသည် ကိုယ်တိုင်စီမံခန့်ခလဲသည့်တပ်ဆင်မဟုမျာသကို ရရဟိခဲ့သည်။

ကောက်ချက်

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

ကျလန်ုပ်တို့၏ Kubernetes ရလဟေ့ပဌောင်သခဌင်သစလန့်စာသခန်သဇာတ်လမ်သကို သင်နဟစ်သက်မည်ဟု မျဟော်လင့်ပါသည်။ ကျလန်ုပ်တို့သည် ဝန်ဆောင်မဟုအသစ်အာသလုံသကို အစုအဝေသသို့ ဆက်လက်ပဌောင်သရလဟေ့ပါသည်။ နောက်ထပ်အချက်အလက်မျာသကို အောက်ပါထုတ်ဝေမဟုမျာသတလင် တလေ့ရဟိနိုင်သည်-

PS ဘာသာပဌန်မဟ

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

source: www.habr.com

မဟတ်ချက် Add