Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

Red Hat OpenShift နှင့် Kubernetes တို့နှင့် ပေါင်းစပ်လိုက်သောအခါ Istio Service Mesh ၏ စွမ်းဆောင်ရည်များစွာကို ပြသသည့် ပို့စ်များစွာကို ကျွန်ုပ်တို့ စတင်လုပ်ဆောင်နေပါသည်။

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

အပိုင်းတစ်၊ ယနေ့

  • Kubernetes ဘေးတွဲကွန်တိန်နာများ၏ သဘောတရားကို ရှင်းပြပြီး ဤစီးရီး၏ ပို့စ်များ၏ အဓိပ္ပါယ်ကို ပုံဖော်ကြပါစို့။ "မင်းရဲ့ကုဒ်မှာ ဘာမှပြောင်းစရာ မလိုဘူး".
  • Istio - လမ်းကြောင်းသတ်မှတ်ခြင်းစည်းမျဉ်းများရဲ့ အခြေခံအချက်ကို မိတ်ဆက်ပေးပါရစေ။ အခြား Istio အင်္ဂါရပ်များအားလုံးကို ၎င်းတို့ပေါ်တွင် တည်ဆောက်ထားသောကြောင့် ၎င်းသည် ဝန်ဆောင်မှုကုဒ်ပြင်ပ YAML ဖိုင်များကို အသုံးပြု၍ အသေးစားဝန်ဆောင်မှုများသို့ လမ်းကြောင်းပြခွင့်ပြုသည့် စည်းမျဉ်းများဖြစ်သည်။ Canary Deployment ဖြန့်ကျက်မှု အစီအစဉ်ကိုလည်း ကျွန်ုပ်တို့ ထည့်သွင်းစဉ်းစားပါသည်။ နှစ်သစ်ဆုကြေးငွေ - Istio တွင် အပြန်အလှန်အကျိုးပြုသော သင်ခန်းစာ ၁၀ ခု


မကြာခင်ထွက်ရှိတော့မယ့် အပိုင်း ၂ ကို ပြောပြပေးပါ့မယ်။

  • Istio သည် Pool Ejection ကို Circuit Breaker နှင့် ပေါင်းစပ်ပြီး Load Balancing circuit မှ သေဆုံးနေသော သို့မဟုတ် ညံ့ဖျင်းသော pod တစ်ခုကို ဖယ်ရှားနိုင်ပုံကို သရုပ်ပြသည်။
  • Istio ကို ဤနေရာတွင် မည်သို့အသုံးပြုနိုင်ကြောင်းကြည့်ရန် ပထမပို့စ်မှ Circuit Breaker ခေါင်းစဉ်ကိုလည်း ခြုံငုံသုံးသပ်ပါမည်။ သင့်ဝန်ဆောင်မှု၏ကုဒ်ကို ပြောင်းလဲခြင်းမရှိဘဲ YAML ဖွဲ့စည်းမှုပုံစံဖိုင်များနှင့် terminal commands များကို အသုံးပြု၍ ယာဉ်အသွားအလာလမ်းကြောင်းနှင့် ကွန်ရက်အမှားများကို ကိုင်တွယ်နည်းကို ပြသပါမည်။

အပိုင်းသုံး-

  • Istio တွင် တည်ဆောက်ထားသော သို့မဟုတ် အလွယ်တကူ ထည့်သွင်းထားသည့် ခြေရာခံခြင်းနှင့် စောင့်ကြည့်ခြင်းတို့ကို ကြည့်ရှုပါ။ မိုက်ခရိုဆားဗစ်ဗိသုကာကို လွယ်ကူစွာစီမံခန့်ခွဲရန်အတွက် OpenShift scaling ဖြင့် Prometheus၊ Jaeger နှင့် Grafana ကဲ့သို့သော ကိရိယာများကို အသုံးပြုနည်းကို သင့်အား ပြသပါမည်။
  • ကျွန်ုပ်တို့သည် အမှားများကို စောင့်ကြည့်ခြင်းနှင့် လုပ်ဆောင်ခြင်းမှ ၎င်းတို့ကို စနစ်သို့ ရည်ရွယ်ချက်ရှိရှိ မိတ်ဆက်ခြင်းသို့ ရွှေ့ပါသည်။ တစ်နည်းဆိုရသော်၊ စမ်းသပ်ခြင်းရှုထောင့်မှ အလွန်အရေးကြီးသော အရင်းအမြစ်ကုဒ်ကို မပြောင်းလဲဘဲ အမှားအယွင်းပြုလုပ်ရန် သင်ယူပါ - အကြောင်းမှာ သင်သည် ဤအတွက် ကုဒ်ကို ကိုယ်တိုင်ပြောင်းလဲပါက၊ နောက်ထပ် အမှားအယွင်းများကို မိတ်ဆက်ရန် အန္တရာယ်ရှိပါသည်။

နောက်ဆုံးအနေဖြင့် Istio Service Mesh ၏နောက်ဆုံးစာတွင်-

  • အမှောင်ဘက်သို့ ရွှေ့ကြပါစို့။ ကုဒ်ကို အသုံးချပြီး ထုတ်လုပ်မှုဒေတာတွင် တိုက်ရိုက်စမ်းသပ်သောအခါတွင် Dark Launch အစီအစဉ်ကို အသုံးပြုရန် အတိအကျ လေ့လာနိုင်သော်လည်း မည်သည့်နည်းနှင့်မျှ စနစ်၏လည်ပတ်မှုကို မထိခိုက်စေပါ။ ဤနေရာတွင် Istio ၏ အသွားအလာများကို ခွဲထုတ်နိုင်စွမ်းသည် အလွန်အဆင်ပြေပါသည်။ ထုတ်လုပ်မှုစနစ်၏ လည်ပတ်မှုကို မည်သည့်နည်းနှင့်မျှ မထိခိုက်စေဘဲ တိုက်ရိုက်ထုတ်လုပ်သည့်ဒေတာကို စမ်းသပ်နိုင်မှုသည် အယုံအကြည်ဆုံးနည်းလမ်းဖြစ်သည်။
  • Dark Launch ကိုတည်ဆောက်ခြင်းဖြင့် အန္တရာယ်ကိုလျှော့ချရန်နှင့် ကုဒ်အသစ်အသုံးပြုမှုကို ချောမွေ့စေရန် Canary Deployment မော်ဒယ်ကို အသုံးပြုနည်းကို သင့်အား ပြသပါမည်။ Canary Deployment ကိုယ်တိုင်က အသစ်အဆန်းမဟုတ်ပေမယ့် Istio က ရိုးရှင်းတဲ့ YAML ဖိုင်တွေနဲ့ပဲ အကောင်အထည်ဖော်နိုင်စေတယ်။
  • နောက်ဆုံးတွင်၊ သင်၏အစုအစည်းများပြင်ပရှိလူများအား ဝန်ဆောင်မှုများကိုပြသရန် Istio Egress ကိုအသုံးပြုနည်းကို သင့်အားပြသမည်ဖြစ်ပြီး၊ ထို့ကြောင့် သင်သည်အင်တာနက်နှင့်အလုပ်လုပ်သည့်အခါ Istio ၏စွမ်းအားကို လွှမ်းမိုးနိုင်မည်ဖြစ်သည်။

ဒါဆို သွားတော့...

Istio စောင့်ကြည့်ခြင်းနှင့် စီမံခန့်ခွဲရေး ကိရိယာအစုံ - Service Mesh တွင် Microservices များကို ညှိနှိုင်းရန် သင်လိုအပ်သမျှ ဝန်ဆောင်မှုကွက်.

Istio Service Mesh ဆိုတာဘာလဲ

ဝန်ဆောင်မှု Mesh သည် လမ်းကြောင်းစောင့်ကြည့်ခြင်း၊ ဝင်ရောက်ထိန်းချုပ်ခြင်း၊ ရှာဖွေတွေ့ရှိခြင်း၊ လုံခြုံရေး၊ အမှားအယွင်းများကို ခံနိုင်ရည်ရှိခြင်း နှင့် ဝန်ဆောင်မှုအဖွဲ့အတွက် အခြားအသုံးဝင်သောအရာများကဲ့သို့သော လုပ်ဆောင်ချက်များကို အကောင်အထည်ဖော်သည်။ Istio သည် သင့်အား ဝန်ဆောင်မှုများ၏ ကုဒ်သို့ အနည်းငယ်ပြောင်းလဲမှုမရှိဘဲ ၎င်းအားလုံးကို လုပ်ဆောင်နိုင်စေပါသည်။ မှော်ပညာရဲ့လျှို့ဝှက်ချက်ကဘာလဲ။ Istio သည် ဝန်ဆောင်မှုတစ်ခုစီသို့ ဘေးတွဲကွန်တိန်နာပုံစံဖြင့် ၎င်း၏ကိုယ်ပိုင် proxy ကို ပူးတွဲပါရှိပြီး၊ ထို့နောက် သတ်မှတ်ထားသော မူဝါဒများဖြင့် လမ်းညွှန်ထားသည့် ဤအသွားအလာသည် ဝန်ဆောင်မှုသို့ မည်သို့ရောက်ရှိသင့်သည်ကို ဆုံးဖြတ်ပေးသည့် ပရောက်စီမှတစ်ဆင့် ဤဝန်ဆောင်မှုသို့ သွားလာမှုအားလုံးကို ဖြတ်သန်းသွားမည်ဖြစ်သည်။ Istio သည် Canary deployments၊ circuit breakers၊ fault injection နှင့် အခြားများစွာသော အခြားအဆင့်မြင့် DevOps နည်းပညာများကို အကောင်အထည်ဖော်နိုင်စေပါသည်။

Istio သည် ကွန်တိန်နာများနှင့် Kubernetes နှင့် မည်သို့အလုပ်လုပ်သည်

Istio ဝန်ဆောင်မှု mesh သည် အသေးစားဝန်ဆောင်မှုများကို တည်ဆောက်ပြီး စီမံခန့်ခွဲရန် လိုအပ်သည့်အရာအားလုံးကို sidecar အကောင်အထည်ဖော်ခြင်းဖြစ်သည်- စောင့်ကြည့်ခြင်း၊ ခြေရာခံခြင်း၊ ဆားကစ်ဖြတ်ခြင်း၊ လမ်းကြောင်းသတ်မှတ်ခြင်း၊ ဝန်ချိန်ခွင်လျှာညှိခြင်း၊ မှားယွင်းထိုးသွင်းခြင်း၊ ထပ်စမ်းခြင်း၊ အချိန်ကုန်ခြင်း၊ မှန်ပြောင်းခြင်း၊ ဝင်ရောက်ထိန်းချုပ်ခြင်း၊ နှုန်းကန့်သတ်ခြင်းနှင့် အခြားအရာများ။ သင်၏ကုဒ်တွင် ဤအင်္ဂါရပ်များကို တိုက်ရိုက်အကောင်အထည်ဖော်ရန် ယနေ့တွင် ဒစ်ဂျစ်တိုက်များစွာရှိသော်လည်း Istio ဖြင့် သင့်ကုဒ်တွင် မည်သည့်အရာကိုမျှ မပြောင်းလဲဘဲ တူညီသောလုပ်ဆောင်နိုင်စွမ်းအားလုံးကို ရရှိနိုင်သည်။

ဘေးတွဲမော်ဒယ်အောက်တွင် Istio သည် တစ်ခုတည်းသော Linux ကွန်တိန်နာတစ်ခုတွင် အလုပ်လုပ်သည်။ Kubernetes-pod သည် ဝန်ဆောင်မှုကို ထိန်းချုပ်ထားပြီး ပေးထားသည့်ပုံစံအတိုင်း လုပ်ဆောင်နိုင်စွမ်းနှင့် အချက်အလက်များကို ထိုးသွင်းကာ ထုတ်ယူသည်။ ဤအရာသည် သင့်ကိုယ်ပိုင်ဖွဲ့စည်းပုံဖြစ်ပြီး ၎င်းသည် သင့်ကုဒ်အပြင်ဘက်တွင် ရှိနေကြောင်း ကျွန်ုပ်အလေးပေးပါရစေ။ ထို့ကြောင့်၊ ကုဒ်သည် ပိုမိုရိုးရှင်းပြီး ပိုတိုလာသည်။

ထို့အပြင် အရေးကြီးသည်မှာ microservices ၏ လုပ်ငန်းလည်ပတ်မှု အစိတ်အပိုင်းသည် ကုဒ်ကိုယ်တိုင်နှင့် မချိတ်ဆက်ဘဲ၊ ဆိုလိုသည်မှာ ၎င်းတို့၏ လုပ်ဆောင်ချက်ကို IT ကျွမ်းကျင်သူများထံ လုံခြုံစွာ လွှဲပြောင်းနိုင်သည်ဟု ဆိုလိုသည်။ အမှန်မှာ၊ developer သည် circuit breakers နှင့် fault injection အတွက် အဘယ်ကြောင့် တာဝန်ရှိသင့်သနည်း။ တုံ့ပြန်ခြင်း - ဟုတ်သည်၊ သို့သော် ၎င်းတို့ကို လုပ်ဆောင်ခြင်းနှင့် ဖန်တီးခြင်းလား။ ဤအရာအားလုံးကို ကုဒ်မှဖယ်ရှားပါက ပရိုဂရမ်မာများသည် အပလီကေးရှင်း၏လုပ်ဆောင်နိုင်စွမ်းအပေါ် အပြည့်အဝအာရုံစိုက်နိုင်မည်ဖြစ်သည်။ ကုဒ်ကိုယ်တိုင်က ပိုတိုပြီး ရိုးရှင်းလာမယ်။

ဝန်ဆောင်မှုဇယား

၎င်းတို့၏ကုဒ်အပြင်ဘက်တွင် အသေးစားဝန်ဆောင်မှုစီမံခန့်ခွဲမှုလုပ်ဆောင်ချက်များကို လုပ်ဆောင်သည့် Istio သည် Service Mesh ၏ သဘောတရားဖြစ်သည်။ တစ်နည်းဆိုရသော်၊ ၎င်းသည် ကွန်ရက်လုပ်ဆောင်မှုများ၏ mesh တစ်ခုဖွဲ့စည်းသည့် တစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော binaries များ၏ ညှိနှိုင်းအုပ်စုဖြစ်သည်။

Istio သည် Microservices နှင့် မည်သို့အလုပ်လုပ်သည်

ဤသည်မှာ ဘေးတွဲကွန်တိန်နာများနှင့် တွဲဖက်အလုပ်လုပ်ပုံဖြစ်သည်။ Kubernetes и အနည်းအကျဉ်း ငှက်၏မျက်လုံးမြင်ကွင်းမှ- သင်သည် Minishift ဥပမာတစ်ခုကို လှည့်ပတ်ပြီး Istio အတွက် ပရောဂျက်တစ်ခုဖန်တီးပါ (၎င်းကို "istio-system" ဟုခေါ်ဆိုကြပါစို့)၊ နှင့် Istio ဆိုင်ရာ အစိတ်အပိုင်းများအားလုံးကို ထည့်သွင်းပြီး လုပ်ဆောင်ပါ။ ထို့နောက်၊ သင်သည် ပရောဂျက်များနှင့် ဆော့ဖ်ဝဲများကို ဖန်တီးသည့်အခါ၊ သင်သည် သင်၏ ဖြန့်ကျက်မှုများတွင် ဖွဲ့စည်းမှုအချက်အလက်ကို ထည့်သွင်းပြီး သင်၏ pods များသည် Istio ကို စတင်အသုံးပြုသည်။ ရိုးရှင်းသော ပုံသည် ဤကဲ့သို့ ဖြစ်သည်-

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

ယခု သင်သည် Istio ဆက်တင်များကို ဥပမာအားဖြင့် အမှားအယွင်းခံဆေးထိုးခြင်း၊ ပံ့ပိုးကူညီခြင်းသို့ ပြောင်းလဲနိုင်သည်။ Canary ဖြန့်ကျက် သို့မဟုတ် အခြားသော Istio အင်္ဂါရပ်များ - အားလုံးသည် အပလီကေးရှင်းများ၏ ကုဒ်ကို မထိဘဲ ၎င်းတို့ကိုယ်တိုင်။ သင်၏အကြီးဆုံးဖောက်သည် (Foo Corporation) ၏အသုံးပြုသူများမှ ဝဘ်အသွားအလာအားလုံးကို ဝဘ်ဆိုက်၏ဗားရှင်းအသစ်သို့ ပြန်ညွှန်းလိုသည်ဟု ဆိုကြပါစို့။ ၎င်းကိုလုပ်ဆောင်ရန်၊ အသုံးပြုသူ ID တွင် @foocorporation.com ကိုရှာဖွေသည့် Istio လမ်းကြောင်းသတ်မှတ်စည်းမျဉ်းကိုဖန်တီးရန် လိုအပ်ပြီး သင့်လျော်သောပြန်ညွှန်းမှုကိုလုပ်ဆောင်သည်။ အခြားအသုံးပြုသူများအားလုံးအတွက်၊ ဘာမှမပြောင်းလဲပါ။ ဤအတောအတွင်း၊ သင်သည် ဆိုက်၏ဗားရှင်းအသစ်ကို အေးအေးဆေးဆေး စမ်းသပ်နိုင်သည်။ ၎င်းကိုလုပ်ဆောင်ရန် သင်သည် developer များ လုံးဝပါဝင်ရန် မလိုအပ်ကြောင်း သတိပြုပါ။

ဤအတွက် ကျွန်ုပ်တို့သည် အလွန်ပေးဆပ်ရပါမည်လား။

ကိစ္စမရှိပါဘူး။ Istio က တော်တော်မြန်တယ်၊ ရေးထားတယ်။ Go အပေါ်ယံ အနည်းငယ်သာ ဖန်တီးပါ။ ထို့အပြင်၊ ဆော့ဖ်ဝဲရေးသားသူ၏ ကုန်ထုတ်စွမ်းအားတိုးလာခြင်းကြောင့် အွန်လိုင်းစွမ်းဆောင်ရည်တွင် ဆုံးရှုံးနိုင်ချေကို လျော်ကြေးပေးပါသည်။ အနည်းဆုံး သီအိုရီအရ- ဆော့ဖ်ဝဲရေးသားသူအချိန်သည် စျေးကြီးကြောင်း သတိရပါ။ ဆော့ဖ်ဝဲကုန်ကျစရိတ်များအတွက် Istio သည် open source ဆော့ဖ်ဝဲဖြစ်သောကြောင့် ရယူသုံးစွဲရန် အခမဲ့ဖြစ်သည်။

သင်ကိုယ်တိုင်လုပ်ပါ။

Red Hat Developer Experience Team သည် နက်နက်ရှိုင်းရှိုင်း၊ လက်လှမ်းမီမှုကို တီထွင်ခဲ့သည်။ ခေါင်းဆောင်မှု Istio (အင်္ဂလိပ်ဘာသာဖြင့်)။ ၎င်းသည် Linux၊ MacOS နှင့် Windows တွင်အလုပ်လုပ်ပြီး ကုဒ်ကို Java နှင့် Node.js တို့တွင် ရရှိနိုင်သည်။

Istio တွင် အပြန်အလှန်အကျိုးပြုသော သင်ခန်းစာ ၁၀ ခု

Block 1 - စတင်သူများအတွက်

Istio မိတ်ဆက်
30 မိနစ်
Service Mesh ကို သိလာခြင်း၊ OpenShift Kubernetes အစုအဝေးတွင် Istio ထည့်သွင်းနည်းကို လေ့လာခြင်း။
အစပြု

Istio တွင် Microservices များဖြန့်ကျက်ခြင်း။
30 မိနစ်
Spring Boot နှင့် Vert.x ဖြင့် microservice သုံးခုကို အသုံးပြုရန် Istio ကိုအသုံးပြုခြင်း။
အစပြု

Block 2 – အလယ်အလတ်အဆင့်

Istio တွင် စောင့်ကြည့်ခြင်းနှင့် ခြေရာခံခြင်း
60 မိနစ်
Prometheus နှင့် Grafana မှတစ်ဆင့် Istio ၏ built-in စောင့်ကြည့်မှု၊ စိတ်ကြိုက်တိုင်းတာမှုများနှင့် OpenTracing ကို စူးစမ်းပါ။
အစပြု

Istio ရှိ ရိုးရှင်းသောလမ်းကြောင်း
60 မိနစ်
ရိုးရှင်းသောစည်းမျဉ်းများကို အသုံးပြု၍ Istio တွင် လမ်းကြောင်းသတ်မှတ်ခြင်းအား စီမံခန့်ခွဲနည်းကို လေ့လာပါ။
အစပြု

အဆင့်မြင့် လမ်းကြောင်းသတ်မှတ်ခြင်း စည်းမျဉ်းများ
60 မိနစ်
Istio ၏ စမတ်ကျသောလမ်းကြောင်း၊ ဝင်ရောက်ထိန်းချုပ်မှု၊ ဝန်ချိန်ခွင်လျှာ ချိန်ညှိခြင်းနှင့် နှုန်းကန့်သတ်ခြင်းတို့ကို မိတ်ဆက်ခြင်း။
အစပြု

Block 3 - အတွေ့အကြုံရှိအသုံးပြုသူ

Istio ရှိ Fault Injection
60 မိနစ်
ဖြန့်ဝေထားသော အပလီကေးရှင်းများတွင် မအောင်မြင်သည့် အခြေအနေများကို ကိုင်တွယ်ဖြေရှင်းခြင်း၊ HTTP အမှားအယွင်းများနှင့် ကွန်ရက်နှောင့်နှေးမှုများ ဖန်တီးခြင်းနှင့် ပတ်ဝန်းကျင်ကို ပြန်လည်ထိန်းသိမ်းရန် ပရမ်းပတာအင်ဂျင်နီယာကို အသုံးပြုနည်းကို လေ့လာပါ။
အစပြု

Istio ရှိ Circuit Breaker
30 မိနစ်
ဖိအားစမ်းသပ်ခြင်းဝဘ်ဆိုဒ်များအတွက် Siege ကို ထည့်သွင်းခြင်းနှင့် ပြန်လည်စမ်းသပ်ခြင်း၊ circuit breaker နှင့် pool ejection ကိုအသုံးပြုပြီး backend ခံနိုင်ရည်ရှိအောင် မည်သို့ပြုလုပ်ရမည်ကို လေ့လာခြင်း။
အစပြု

Egress နှင့် Istio
10 မိနစ်
ကျွန်ုပ်တို့သည် ပြည်တွင်းဝန်ဆောင်မှုများနှင့် ပြင်ပ API များနှင့် ဝန်ဆောင်မှုများကြား အပြန်အလှန်အကျိုးသက်ရောက်မှုအတွက် စည်းမျဉ်းများဖန်တီးရန် Egress လမ်းကြောင်းများကို အသုံးပြုပါသည်။
အစပြု

Istio နှင့် Kiali
15 မိနစ်
သင့်ဝန်ဆောင်မှု mesh ၏ ကြီးမားသောပုံတစ်ပုံရရန် Kiali ကို အသုံးပြုနည်းကို လေ့လာပြီး တောင်းဆိုချက်များနှင့် ဒေတာစီးဆင်းမှုများကို စူးစမ်းပါ။
အစပြု

Istio ရှိ အပြန်အလှန် TLS
15 မိနစ်
ကျွန်ုပ်တို့သည် Istio Gateway နှင့် VirtualService တစ်ခုကို ဖန်တီးပြီးနောက် အပြန်အလှန် TLS (mTLS) နှင့် ၎င်း၏ဆက်တင်များကို အနီးကပ်ကြည့်ရှုပါ။
အစပြု

Block 3.1 - Deep Dive- Microservices အတွက် Istio Service Mesh

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ
စာအုပ်အကြောင်းက ဘာလဲ။

  • ဝန်ဆောင်မှုကွက်ဆိုတာ ဘာလဲ။
  • Istio နှင့် microservice ဗိသုကာတွင်၎င်း၏အခန်းကဏ္ဍ။
  • အောက်ပါပြဿနာများကိုဖြေရှင်းရန် Istio ကိုအသုံးပြုခြင်း။
    • အမှားခံနိုင်ရည်;
    • လမ်းကြောင်းပေးခြင်း၊
    • ပရမ်းပတာစမ်းသပ်ခြင်း;
    • လုံခြုံရေး;
    • ခြေရာကောက်၊ မက်ထရစ်များနှင့် Grafana ကိုအသုံးပြု၍ တယ်လီမီတာစုဆောင်းခြင်း။

စာအုပ်ကိုဒေါင်းလုဒ်လုပ်ပါ။

ဝန်ဆောင်မှု Mesh နှင့် Istio စီးရီးများ

ကိုယ်တိုင်ကြိုးစားပါ

ဤစီးရီး၏ ပို့စ်များသည် Istio ၏ ကမ္ဘာသို့ နက်ရှိုင်းစွာ ထိုးဆင်းသွားစေရန် ရည်ရွယ်ခြင်းမဟုတ်ပါ။ ကျွန်ုပ်တို့သည် သင့်အား အယူအဆနှင့် မိတ်ဆက်ပေးလိုပြီး Istio ကိုယ်တိုင် စမ်းသုံးကြည့်ရန် သင့်အား လှုံ့ဆော်ပေးနိုင်ပါသည်။ ၎င်းသည် လုံးဝအခမဲ့ဖြစ်ပြီး Red Hat သည် OpenShift၊ Kubernetes၊ Linux containers နှင့် Istio အပါအဝင် သင်စတင်ရန်လိုအပ်သည့်ကိရိယာအားလုံးကို ပံ့ပိုးပေးသည်- Red Hat Developer OpenShift Container Platform, ကျွန်ုပ်တို့၏ Istio လမ်းညွှန် နှင့် အခြားအရင်းအမြစ်များ Service Mesh ရှိ မိုက်ခရိုဆိုက်မနှောင့်နှေးပါနှင့်၊ ယနေ့စတင်ပါ။

Istio Routing စည်းမျဉ်းများ- ၎င်းတို့သွားလိုသည့်နေရာကို ညွှန်ကြားသည့် ဝန်ဆောင်မှုတောင်းဆိုမှုများ

openshift и Kubernetes အယူခံဝင်ဖို့ သေချာအောင် ကောင်းကောင်းလုပ်ပါ။ မိုက်ခရိုဝန်ဆောင်မှုများ မှန်ကန်သော အစေ့များဆီသို့ ပို့ဆောင်ခဲ့သည်။ ၎င်းသည် Kubernetes ၏ ရည်ရွယ်ချက်များထဲမှ တစ်ခုဖြစ်သည်- လမ်းကြောင်းသတ်မှတ်ခြင်းနှင့် ဝန်ချိန်ညှိခြင်း ဒါပေမယ့် ပိုပြီး သပ်ရပ်ပြီး ဆန်းပြားတဲ့ လမ်းကြောင်းကို လိုအပ်တယ်ဆိုရင်ကော။ ဥပမာအားဖြင့်၊ microservice ၏ ဗားရှင်းနှစ်မျိုးကို တစ်ချိန်တည်းတွင် အသုံးပြုရန်။ Istio လမ်းကြောင်းစည်းမျဉ်းများသည် ဤနေရာတွင် မည်သို့ကူညီနိုင်သနည်း။

Routing rules များသည် လမ်းကြောင်းရွေးချယ်မှုကို အမှန်တကယ် ဆုံးဖြတ်ပေးသော စည်းမျဉ်းများဖြစ်သည်။ စနစ်၏ ရှုပ်ထွေးမှု မည်သို့ပင်ရှိစေကာမူ၊ ဤစည်းမျဉ်းများ၏ ယေဘူယျနိယာမသည် ရိုးရှင်းပါသည်- တောင်းဆိုချက်များကို အချို့သော ကန့်သတ်ဘောင်များနှင့် HTTP ခေါင်းစီးတန်ဖိုးများပေါ်တွင် အခြေခံ၍ လမ်းကြောင်းပြပါသည်။
ဥပမာအချို့ကို ကြည့်ကြပါစို့။

Kubernetes မူရင်း- အသေးအဖွဲ '50/50'

ကျွန်ုပ်တို့၏ဥပမာတွင်၊ v1 နှင့် v2 ဟုခေါ်သော OpenShift တွင် တစ်ချိန်တည်းတွင် microservice ဗားရှင်းနှစ်ခုကို မည်သို့လုပ်ဆောင်ရမည်ကို ကျွန်ုပ်တို့ပြသပါမည်။ ဗားရှင်းတစ်ခုစီသည် ၎င်း၏ကိုယ်ပိုင် Kubernetes pod တွင် လုပ်ဆောင်ပြီး ပုံမှန်အားဖြင့်၊ အညီအမျှ အညီအမျှ ဟန်ချက်ညီသော လှည့်ပတ်လမ်းကြောင်းပြခြင်းကို လုပ်ဆောင်ပါသည်။ pod တစ်ခုစီသည် ၎င်းတွင်ရှိသော microservice instances အရေအတွက် သို့မဟုတ် ပုံတူများပေါ်အခြေခံ၍ ၎င်း၏တောင်းဆိုမှုများ၏ဝေစုကို ရရှိသည်။ Istio သည် သင့်အား ဤလက်ကျန်ငွေကို ကိုယ်တိုင်ပြောင်းလဲနိုင်စေပါသည်။

ကျွန်ုပ်တို့သည် OpenShift၊ recommendation-v1 နှင့် recommendation-v2 တွင် ကျွန်ုပ်တို့၏အကြံပြုချက်ဝန်ဆောင်မှုဗားရှင်းနှစ်မျိုးကို အသုံးပြုထားသည်ဟုဆိုကြပါစို့။
ပုံ 1 တွင်၊ ဝန်ဆောင်မှုတစ်ခုစီကို ဥပမာတစ်ခုဖြင့် ကိုယ်စားပြုသောအခါ၊ တောင်းဆိုမှုများကို ၎င်းတို့ကြားတွင် အညီအမျှ ထပ်တူပြုထားသည်- 1-2-1-2-… ဤသည်မှာ Kubernetes လမ်းကြောင်းကို မူရင်းအတိုင်း လုပ်ဆောင်ပုံဖြစ်သည်-

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

ဗားရှင်းများကြားတွင် အလေးချိန်ခွဲဝေမှု

ပုံ 2 သည် ကျွန်ုပ်တို့သည် ဝန်ဆောင်မှု v2 ၏ ပုံတူအရေအတွက်ကို တစ်ခုမှ နှစ်ခုသို့ တိုးပေးမည် (၎င်းကို command oc scale —replicas=2 deployment/recommendation-v2) ဖြင့် လုပ်ဆောင်ပါက မည်သို့ဖြစ်မည်ကို ပြသသည်။ ကျွန်ုပ်တို့မြင်နိုင်သည်အတိုင်း၊ v1 နှင့် v2 အကြားတောင်းဆိုမှုများကို "တစ်မှသုံး" အချိုးဖြင့် ပိုင်းခြားထားသည်- 1-2-2-1-2-2-...:

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

Istio ဖြင့် ဗားရှင်းများကို လျစ်လျူရှုခြင်း။

Istio သည် ကျွန်ုပ်တို့၏လိုအပ်ချက်များနှင့်ကိုက်ညီသော တောင်းဆိုမှုဖြန့်ဝေမှုကို ပြောင်းလဲရန် လွယ်ကူစေသည်။ ဥပမာအားဖြင့်၊ အောက်ပါ Istio yaml ဖိုင်ဖြင့် ထောက်ခံချက်-v1 သို့သာ အသွားအလာအားလုံးကို ပို့ခြင်း-

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

ဤသည်မှာ သင်အာရုံစိုက်ရမည့်အရာဖြစ်သည်- အစေ့များကို အညွှန်းများအလိုက် ရွေးချယ်ထားသည်။ ကျွန်ုပ်တို့၏ဥပမာတွင်၊ v1 အညွှန်းကိုအသုံးပြုသည်။ "အလေးချိန်- 100" ကန့်သတ်ချက်သည် v100 အညွှန်းပါရှိသော ဝန်ဆောင်မှုအားလုံး၏ အသွားအလာ 1% သို့ လမ်းကြောင်းပြောင်းသွားမည်ဖြစ်ကြောင်း ဆိုလိုသည်။

ဗားရှင်းများအကြား ညွှန်ကြားချက်ဖြန့်ဝေခြင်း (Canary Deployment)

ထို့နောက်၊ အလေးချိန် ကန့်သတ်ဘောင်ကို အသုံးပြု၍ တစ်ခုစီတွင် လုပ်ဆောင်နေသော microservice instances အရေအတွက်ကို လျစ်လျူရှုကာ pods နှစ်ခုစလုံးသို့ လမ်းကြောင်းကို ညွှန်ပေးနိုင်ပါသည်။ ဥပမာအားဖြင့်၊ ဤနေရာတွင် ကျွန်ုပ်တို့သည် အသွားအလာ၏ 90% ကို v1 သို့ 10% v2 သို့ ပြတ်သားစွာ ညွှန်ကြားသည်-

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

မိုဘိုင်းအသုံးပြုသူများအတွက် သီးခြားလမ်းကြောင်း

နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့သည် မိုဘိုင်းအသုံးပြုသူများ၏ အသွားအလာကို ဝန်ဆောင်မှု v2 သို့ ကူးပြောင်းရန်နှင့် အခြားအရာအားလုံးကို v1 သို့ မည်သို့တွန်းခိုင်းရမည်ကို ပြသပါမည်။ ထိုသို့လုပ်ဆောင်ရန်၊ တောင်းဆိုချက်ခေါင်းစီးရှိ သုံးစွဲသူ-အေးဂျင့်တန်ဖိုးကို ခွဲခြမ်းစိတ်ဖြာရန် ပုံမှန်အသုံးအနှုန်းများကို အသုံးပြုသည်-

Istio Service Mesh တွင် ဆက်တိုက်တင်ထားသော ပို့စ်များ

အခု မင်းအလှည့်ရောက်ပြီ။

ခေါင်းစီးများကို ခွဲခြမ်းစိတ်ဖြာခြင်းအတွက် ပုံမှန်အသုံးအနှုန်းများပါသော ဥပမာသည် Istio လမ်းကြောင်းသတ်မှတ်စည်းမျဉ်းများကို အသုံးပြုရန်အတွက် သင့်ကိုယ်ပိုင်ရွေးချယ်မှုများကို ရှာဖွေရန် လှုံ့ဆော်ပေးသင့်သည်။ အထူးသဖြင့် ဤတွင်ဖြစ်နိုင်ခြေများသည် အလွန်ကျယ်ပြန့်သောကြောင့်၊ အက်ပလီကေးရှင်းများ၏အရင်းအမြစ်ကုဒ်တွင် ခေါင်းစီးတန်ဖိုးများကို ဖွဲ့စည်းနိုင်သောကြောင့်ဖြစ်သည်။

သတိရပါ၊ Ops၊ Dev မဟုတ်ပါ။

အထက်ဖော်ပြပါ ဥပမာများတွင် ကျွန်ုပ်တို့ပြသထားသည့်အရာအားလုံးသည် အထူးတောင်းဆိုချက်ခေါင်းစီးများဖွဲ့စည်းရန် လိုအပ်သည့်အခါတွင် အရင်းအမြစ်ကုဒ်ကို အနည်းငယ်မျှပြောင်းလဲမှုမရှိဘဲ လုပ်ဆောင်ပါသည်။ Istio သည် စမ်းသပ်ဆဲအဆင့်တွင် ၎င်းကို အသုံးပြုနိုင်သည့် developer များအတွက်ရော IT စနစ်လည်ပတ်မှုဆိုင်ရာ ကျွမ်းကျင်သူများအတွက်ပါ အသုံးဝင်မည်ဖြစ်ပြီး၊ ၎င်းသည် ထုတ်လုပ်ရာတွင် များစွာအထောက်အကူဖြစ်စေပါသည်။

ဒီတော့ ဒီစီးရီးရဲ့ ပို့စ်တွေရဲ့ အဓိပ္ပါယ်ကို ပြန်ပြောကြရအောင်။ သင့်ကုဒ်တွင် မည်သည့်အရာကိုမျှ ပြောင်းလဲရန် မလိုအပ်ပါ။. ပုံအသစ်များတည်ဆောက်ရန် သို့မဟုတ် ကွန်တိန်နာအသစ်များကို လုပ်ဆောင်ရန် မလိုအပ်ပါ။ ၎င်းကို ကုဒ်အပြင်ဘက်တွင် လုပ်ဆောင်ထားသည်။

သင့်စိတ်ကူးကို ဖွင့်ပါ။

ပုံမှန်အသုံးအနှုန်းများဖြင့် ခေါင်းစည်းများကို ခွဲခြမ်းစိတ်ဖြာရန် မည်သို့ဖြစ်နိုင်ချေရှိသည်ကို စိတ်ကူးကြည့်ပါ။ သင်၏ အကြီးဆုံးဖောက်သည်အား သင်၏ အထူးဗားရှင်းသို့ ပြန်ညွှန်းလိုသည်။ မိုက်ခရိုဝန်ဆောင်မှုများ? လွယ်တယ်! Chrome ဘရောက်ဆာအတွက် သီးခြားဗားရှင်းတစ်ခု လိုအပ်ပါသလား။ ပြဿနာမရှိပါဘူး! ၎င်း၏ လက္ခဏာရပ်များ နီးပါးကို အခြေခံ၍ ယာဉ်အသွားအလာကို သင် လမ်းကြောင်းပေးနိုင်သည်။

ကိုယ်တိုင်ကြိုးစားပါ

Istio၊ Kubernetes နှင့် OpenShift အကြောင်းဖတ်ခြင်းသည် တစ်ချက်ဖြစ်သော်လည်း အဘယ်ကြောင့် အရာအားလုံးကို သင့်လက်ဖြင့် မထိပါသနည်း။ အဖွဲ Red Hat Developer ပရိုဂရမ် ဤနည်းပညာများကို တတ်နိုင်သမျှ မြန်နိုင်သမျှ ကျွမ်းကျင်အောင် ကူညီပေးမည့် အသေးစိတ်လမ်းညွှန်ချက် (အင်္ဂလိပ်လို) ပြင်ဆင်ထားပါသည်။ လမ်းညွှန်သည် 100% open source ဖြစ်ပြီး၊ ထို့ကြောင့် ၎င်းကို public domain တွင် တင်ထားသည်။ ဖိုင်သည် macOS၊ Linux နှင့် Windows တွင် အလုပ်လုပ်ပြီး အရင်းအမြစ်ကုဒ်ကို Java နှင့် node.js ဗားရှင်းများတွင် ရနိုင်သည် (မကြာမီ အခြားဘာသာစကားဖြင့် ဗားရှင်းများ ရှိလာပါမည်)။ သင့်ဘရောက်ဆာတွင် သက်ဆိုင်ရာ git repository ကိုဖွင့်ပါ။ Red Hat Developer Demo.

နောက်ပို့စ်တွင် ပြဿနာများကို လှလှပပ ဖြတ်သန်းပါ။

ယနေ့တွင် Istio လမ်းကြောင်းသတ်မှတ်ခြင်းစည်းမျဉ်းများလုပ်ဆောင်နိုင်သည်ကို သင်တွေ့မြင်ရပြီဖြစ်သည်။ ယခု အမှားအယွင်းကို ကိုင်တွယ်ရန် အတူတူလုပ်ဆောင်ရန် စိတ်ကူးကြည့်ပါ။ အဲဒါကို နောက်ပို့စ်မှာ ဖော်ပြပါမယ်။

source: www.habr.com

မှတ်ချက် Add