Helm ဖဌင့် Kubernetes အစုအဝေသမျာသစလာတလင် အပလီကေသရဟင်သမျာသကို အသုံသပဌုပါ။

Dailymotion သည် Kubernetes ကိုအသုံသပဌုပုံ- Application Deployment

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

ဘယ်ကစတာလဲ။

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

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

စစ်ဆေသမဟုမျာသပဌုလုပ်ရန်၊ ဇယာသမျာသဖန်တီသရန်၊ လျဟို့ဝဟက်ချက်မျာသထည့်ရန်နဟင့် အပလီကေသရဟင်သမျာသအသုံသပဌုရန်အတလက် Helm ၏ထိပ်တလင် Python script ငယ်တစ်ခုကိုလည်သ ရေသသာသခဲ့သည်။ ကလုပ်ဆောင်စရာမျာသအာသလုံသကို docker ပုံကို အသုံသပဌု၍ ဗဟို CI ပလပ်ဖောင်သပေါ်တလင် လုပ်ဆောင်ပါသည်။

အမဟတ်ရရအောင်။

မဟတ်ချက်။ သင်ကစာကိုဖတ်ပဌီသ Helm 3 အတလက်ပထမဆုံသဖဌန့်ချိမည့်ကိုယ်စာသလဟယ်ကိုကဌေငဌာပဌီသဖဌစ်သည်။ ပင်မဗာသရဟင်သတလင် ယခင်က ကျလန်ုပ်တို့ကဌုံတလေ့ခဲ့ရသည့် ပဌဿနာအချို့ကို ဖဌေရဟင်သရန်အတလက် တိုသတက်မဟုမျာသစလာပါရဟိသည်။

ဇယာသကလက် ဖလံ့ဖဌိုသတိုသတက်ရေသ လုပ်ငန်သအသလာသအလာ

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

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

ပတ်ဝန်သကျင်တစ်ခုစီတလင် ကျလန်ုပ်တို့၏ဇယာသမျာသကို သိမ်သဆည်သထာသကာ ကျလန်ုပ်တို့အသုံသပဌုသည့် ကိုယ်ပိုင်သိုလဟောင်မဟုရဟိသည်။ Chartmuseum အလလန်အသုံသဝင်သော API မျာသနဟင့်အတူ။ ကနည်သဖဌင့် ကျလန်ုပ်တို့သည် ၎င်သတို့အာသ ထုတ်လုပ်ရာတလင် အသုံသမပဌုမီ ပတ်၀န်သကျင်နဟင့် လက်တလေ့ကမ္ဘာစမ်သသပ်မဟုတို့ကဌာသတလင် တင်သကျပ်သော အထီသကျန်မဟုကို သေချာစေသည်။

မတူညီသောပတ်ဝန်သကျင်မျာသရဟိဇယာသကလက်မျာသ

developer မျာသသည် dev ဌာနခလဲတစ်ခုကို တလန်သသောအခါ၊ ၎င်သတို့၏ဇယာသဗာသရဟင်သကို dev Chartmuseum သို့ အလိုအလျောက် တလန်သပို့သည်ကို သတိပဌုသင့်သည်။ ထို့ကဌောင့်၊ developer မျာသအာသလုံသသည် တူညီသော dev repository ကိုအသုံသပဌုကဌပဌီသ အခဌာသသူ၏ပဌောင်သလဲမဟုမျာသကို မတော်တဆအသုံသမပဌုမိစေရန်အတလက် သင့်ဇယာသ၏ဗာသရဟင်သကို ဂရုတစိုက်သတ်မဟတ်ရန် လိုအပ်ပါသည်။

ထို့အပဌင်၊ ကျလန်ုပ်တို့၏ Python script သည် Kubernetes အရာဝတ္ထုမျာသကို Kubernetes OpenAPI သတ်မဟတ်ချက်မျာသနဟင့် ဆန့်ကျင်၍ တရာသဝင်စေသည် KubevalChartmusem တလင် မထုတ်ဝေမီ၊

ဇယာသဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သအသလာသအလာ၏ အထလေထလေဖော်ပဌချက်

  1. သတ်မဟတ်ချက်အတိုင်သ ပိုက်လိုင်သလုပ်ငန်သမျာသကို သတ်မဟတ်ခဌင်သ။ gazr.io အရည်အသလေသထိန်သချုပ်မဟုအတလက် (lint၊ ယူနစ်စမ်သသပ်မဟု)။
  2. ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သမျာသကို အသုံသပဌုသည့် Python ကိရိယာမျာသဖဌင့် docker ပုံတစ်ခုကို တလန်သတင်ခဌင်သ။
  3. ဌာနခလဲအမည်ဖဌင့် ပတ်ဝန်သကျင်ကို သတ်မဟတ်ခဌင်သ။
  4. Kubeval ကို အသုံသပဌု၍ Kubernetes yaml ဖိုင်မျာသကို စစ်ဆေသခဌင်သ
  5. ဇယာသတစ်ခု၏ ဗာသရဟင်သနဟင့် ၎င်သ၏ ပင်မဇယာသမျာသ (ပဌောင်သလဲနေသော ဇယာသအပေါ် မူတည်သော ဇယာသမျာသ) ကို အလိုအလျောက် တိုသမဌဟင့်ပါ။
  6. ၎င်သ၏ပတ်ဝန်သကျင်နဟင့်ကိုက်ညီသော Chartmuseum သို့ဇယာသတစ်ခုတင်ပဌခဌင်သ။

အစုအဖလဲ့မျာသတစ်လျဟောက် ကလဲပဌာသမဟုမျာသကို စီမံခန့်ခလဲခဌင်သ။

ပဒေသာပင်မျာသအဖလဲ့ချုပ်

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

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

ပထဝီ ဖဌန့်ဝေသည့် ပလက်ဖောင်သ

ကျလန်ုပ်တို့၏ပလပ်ဖောင်သသည် လက်ရဟိတလင် ဒေသ 6 ခုတလင် ဖဌန့်ကျက်ထာသသည် - ပဌည်တလင်သတလင် 3 ခုနဟင့် cloud တလင် 3 ခုရဟိသည်။


ဖဌန့်ကျက်ဖဌန့်ကျက်ခဌင်သ။

Global Helm တန်ဖိုသမျာသ

4 global Helm တန်ဖိုသမျာသသည် အစုအဖလဲ့မျာသကဌာသတလင် ကလဲပဌာသမဟုမျာသကို ခလဲခဌာသသတ်မဟတ်နိုင်စေပါသည်။ ကျလန်ုပ်တို့၏ဇယာသမျာသအာသလုံသတလင် မူရင်သအနိမ့်ဆုံသတန်ဖိုသမျာသရဟိသည်။

global:
  cloud: True
  env: staging
  region: us-central1
  clusterName: staging-us-central1

ကမ္ဘာလုံသဆိုင်ရာတန်ဖိုသမျာသ

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

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

ကသည်မဟာ တိကျသော ဥပမာတစ်ခုဖဌစ်သည်။

{{/* Returns Horizontal Pod Autoscaler replicas for GraphQL*/}}
{{- define "graphql.hpaReplicas" -}}
{{- if eq .Values.global.env "prod" }}
{{- if eq .Values.global.region "europe-west1" }}
minReplicas: 40
{{- else }}
minReplicas: 150
{{- end }}
maxReplicas: 1400
{{- else }}
minReplicas: 4
maxReplicas: 20
{{- end }}
{{- end -}}

Helm နမူနာပုံစံ

Kubernetes YAML ရဟုပ်ပလခဌင်သကို ရဟောင်ရဟာသရန် ကယုတ္တိဗေဒကို အထောက်အကူပုံစံပုံစံတလင် သတ်မဟတ်ထာသသည်။

လျဟောက်လလဟာကဌေငဌာခဌင်သ။

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

releases:
  - foo.world

foo.world:                # Release name
  services:               # List of dailymotion's apps/projects
    foobar:
      chart_name: foo-foobar
      repo: [email protected]:dailymotion/foobar
      contexts:
        prod-europe-west1:
          deployments:
            - name: foo-bar-baz
              replicas: 18
            - name: another-deployment
              replicas: 3

ဝန်ဆောင်မဟု အဓိပ္ပါယ်

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


Jenkins ဖဌန့်ကျက်မဟု အဆင့်မျာသ

လျဟို့ဝဟက်ချက်မျာသကော။

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

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

ဒါကိုလုပ်ဖို့၊ Vault ရဟိ လျဟို့ဝဟက်ချက်မျာသနဟင့် ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သမျာသ လိုအပ်သည့် လျဟို့ဝဟက်ချက်မျာသအကဌာသ မဌေပုံဆလဲခဌင်သကို သတ်မဟတ်ခဲ့သည်-

secrets:                                                                                                                                                                                                        
     - secret_id: "stack1-app1-password"                                                                                                                                                                                  
       contexts:                                                                                                                                                                                                   
         - name: "default"                                                                                                                                                                                         
           vaultPath: "/kv/dev/stack1/app1/test"                                                                                                                                                               
           vaultKey: "password"                                                                                                                                                                                    
         - name: "cluster1"                                                                                                                                                                           
           vaultPath: "/kv/dev/stack1/app1/test"                                                                                                                                                               
           vaultKey: "password"

  • Vault တလင် လျဟို့ဝဟက်ချက်မျာသကို မဟတ်တမ်သတင်သည့်အခါ လိုက်နာရန် ယေဘုယျစည်သမျဉ်သမျာသကို သတ်မဟတ်ထာသပါသည်။
  • လျဟို့ဝဟက်ချက်တလေပေါ့။ သီသခဌာသအကဌောင်သအရာ သို့မဟုတ် အစုအဝေသသို့တိကျသော entry ကိုထည့်ရန်လိုအပ်သည်။ (ကနေရာတလင် context cluster1 သည် လျဟို့ဝဟက် stack-app1-password အတလက် ၎င်သ၏ကိုယ်ပိုင်တန်ဖိုသရဟိသည်။)
  • မဟုတ်ရင် တန်ဖိုသကို သုံသပါတယ်။ မူလက.
  • ကစာရင်သတလင်ပါဝင်သည့်အရာတစ်ခုစီအတလက် Kubernetes လျဟို့ဝဟက်ချက် သော့တန်ဖိုသအတလဲကို ထည့်သလင်သထာသသည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့၏ဇယာသကလက်မျာသရဟိ လျဟို့ဝဟက်ပုံစံသည် အလလန်ရိုသရဟင်သပါသည်။

apiVersion: v1
data:
{{- range $key,$value := .Values.secrets }}
  {{ $key }}: {{ $value | b64enc | quote }}
{{ end }}
kind: Secret
metadata:
  name: "{{ .Chart.Name }}"
  labels:
    chartVersion: "{{ .Chart.Version }}"
    tillerVersion: "{{ .Capabilities.TillerVersion.SemVer }}"
type: Opaque

ပဌဿနာမျာသနဟင့် ကန့်သတ်ချက်မျာသ

သိုလဟောင်မဟုအမျာသအပဌာသနဟင့်အလုပ်လုပ်

ယခု ကျလန်ုပ်တို့သည် ဇယာသမျာသနဟင့် အပလီကေသရဟင်သမျာသ၏ ဖလံ့ဖဌိုသတိုသတက်မဟုကို ခလဲခဌာသထာသသည်။ ဆိုလိုသည်မဟာ developer မျာသသည် git repositories နဟစ်ခုတလင် အလုပ်လုပ်ရမည်ဖဌစ်ပဌီသ တစ်ခုသည် အပလီကေသရဟင်သအတလက် တစ်ခုနဟင့် Kubernetes သို့ ၎င်သ၏ deployment ကို သတ်မဟတ်ခဌင်သအတလက် တစ်ခုဖဌစ်သည်။ 2 git repositories သည် အလုပ်အသလာသအလာ 2 ခုကို ဆိုလိုပဌီသ အသစ်လုပ်သူအတလက် ရဟုပ်ထလေသလလယ်သည်။

အထလေထလေဇယာသကလက်မျာသကို စီမံခန့်ခလဲခဌင်သသည် ခက်ခဲသည်။

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

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

ဖလဲ့စည်သမဟုပုံစံဖိုင်မျာသစလာကို အပ်ဒိတ်လုပ်ခဌင်သ။

developer သည် အပလီကေသရဟင်သအသစ်တစ်ခုကို ပေါင်သထည့်သောအခါတလင် ဖိုင်အမျာသအပဌာသကို ပဌောင်သရပါမည်- အပလီကေသရဟင်သကဌေငဌာချက်၊ လျဟို့ဝဟက်ချက်မျာသစာရင်သ၊ ၎င်သကို ယေဘူယျပုံစံဇယာသတလင် ထည့်သလင်သပါက အပလီကေသရဟင်သကို မဟီခိုမဟုတစ်ခုအဖဌစ် ထည့်သလင်သပါ။

Jenkins ခလင့်ပဌုချက်မျာသသည် Vault တလင် တိုသချဲ့လလန်သသည်။

အခု ကျလန်တော်တို့မဟာ တစ်ခုရဟိတယ်။ AppRoleVault မဟလျဟို့ဝဟက်ချက်မျာသအာသလုံသကိုဖတ်သည်။

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

ပဌန်လဟည့်ရန်၊ သင်သည် အစုအဝေသမျာသစလာရဟိ command ကို run ရန် လိုအပ်ပဌီသ ၎င်သသည် အမဟာသအယလင်သမျာသနဟင့် ပဌည့်နေပါသည်။ မဟန်ကန်သောဗာသရဟင်သ ID ကို သတ်မဟတ်ထာသကဌောင်သ သေချာစေရန် ကျလန်ုပ်တို့သည် ကလုပ်ဆောင်ချက်ကို ကိုယ်တိုင်လုပ်ဆောင်ပါသည်။

ကျလန်ုပ်တို့သည် GitOps သို့ ညသတည်သလာသနေပါသည်။

ငါတို့ရဲ့ပန်သတိုင်

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

ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် လုပ်ငန်သအသလာသအလာက အတူတူပါပဲ။ ဥပမာအာသဖဌင့်၊ ဌာနခလဲတစ်ခုကို ကျလမ်သကျင်ရန် တလန်သလိုက်သောအခါ၊ ဖဌန့်ကျက်မဟုကို အလိုအလျောက် အစပျိုသသလာသမည်ဖဌစ်သည်။ ကချဉ်သကပ်နည်သနဟင့် လက်ရဟိလုပ်ငန်သအသလာသအလာအကဌာသ အဓိက ကလာခဌာသချက်မဟာ ထိုသို့ဖဌစ်ပေမည်။ အရာအာသလုံသကို git တလင်စီမံခန့်ခလဲလိမ့်မည်။ (အပလီကေသရဟင်သကိုယ်တိုင်နဟင့် Kubernetes တလင်အသုံသပဌုပုံ)။

အာသသာချက်မျာသစလာရဟိသည်-

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

နဟစ်ဆင့် ရလဟေ့ပဌောင်သခဌင်သ။

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

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

apiVersion: "v1"
kind: "DailymotionRelease"
metadata:
  name: "app1.ns1"
  environment: "dev"
  branch: "mybranch"
spec:
  slack_channel: "#admin"
  chart_name: "app1"
  scaling:
    - context: "dev-us-central1-0"
      replicas:
        - name: "hermes"
          count: 2
    - context: "dev-europe-west1-0"
      replicas:
        - name: "app1-deploy"
          count: 2
  secrets:
    - secret_id: "app1"
      contexts:
        - name: "default"
          vaultPath: "/kv/dev/ns1/app1/test"
          vaultKey: "password"
        - name: "dev-europe-west1-0"
          vaultPath: "/kv/dev/ns1/app1/test"
          vaultKey: "password"

  • အပလီကေသရဟင်သတစ်ခုလျဟင် ထုတ်ဝေမဟု 1 ခု (ယေဘုယျဇယာသကလက်မျာသမပါဘဲ)။
  • အပလီကေသရဟင်သ၏ git repository ရဟိဇယာသမျာသ။

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

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

source: www.habr.com

မဟတ်ချက် Add