Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2

မဟတá€șချကá€ș။ á€˜á€Źá€žá€Źá€•á€Œá€”á€ș: ပထမငဟသဆုံသဥစိတျဥပိုငျသ ကစဟသရဟသသညá€ș Istio စလမá€șှရညá€șမျဏသကို မိတá€șဆကá€șá€•á€Œá€źá€ž ၎ငá€șသတို့ကို လကá€șá€á€œá€±á€·á€žá€›á€Żá€•á€șပဌရနá€ș ရညá€șရလယá€șထာှသညá€ș။ á€šá€á€Żá€€á€»á€œá€”á€șုပá€șတို့သညá€ș ကဝနá€șဆေဏငá€șá€™á€Ÿá€Ż mesh ၏ဖလá€Č့စညá€șá€žá€•á€Żá€¶á€”á€Ÿá€„á€·á€șá€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€™á€Ÿá€Żáá€•á€­á€Żá€™á€­á€Żá€›á€Ÿá€Żá€•á€șá€‘á€œá€±á€žá€žá€±á€Źá€›á€Ÿá€Żá€‘á€±á€Źá€„á€·á€șá€™á€»á€Źá€žá€Ąá€€á€Œá€±á€Źá€„á€șသနဟင့á€ș á€Ąá€‘á€°á€žá€žá€–á€Œá€„á€·á€ș၊ á€žá€±á€á€»á€Źá€…á€œá€Źá€•á€Œá€„á€șဆငá€șá€‘á€Źá€žá€žá€±á€Źá€œá€™á€șá€žá€€á€Œá€±á€Źá€„á€șသနဟင့á€șကလနá€șရကá€șလမá€șá€žá€€á€Œá€±á€Źá€„á€șသစဟမံခန့á€șခလá€Čá€™á€Ÿá€Żá€Ąá€€á€Œá€±á€Źá€„á€șá€žá€•á€Œá€±á€Źá€•á€«á€™á€Šá€ș။

ဆေဏငá€șသပါသသညá€ș repository မဟ configurations ( Kubernetes နဟင့á€ș Istio á€Ąá€á€œá€€á€ș manifests မျဏသ) ကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€€á€Œá€±á€Źá€„á€șှ သင့á€șအာှ ကျလနá€șုပá€șတို့ သတိပေသပါသညá€ș။ istio-ကျလမá€șသကျငá€șá€™á€Ÿá€Ż.

လမá€șှစညá€șှကမá€șှ စဟမံခန့á€șခလá€Čá€™á€Ÿá€Ż

Istio ဖဌင့á€ș၊ ပံ့ပိုသပေသရနá€șá€Ąá€á€œá€€á€ș á€Ąá€…á€Żá€Ąá€á€±á€žá€á€œá€„á€ș စလမá€șှရညá€șအသစá€șမျဏသပေါá€șလာသညá€ș-

  • ဒိုငá€șှနမစá€ș တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€œá€™á€șá€žá€€á€Œá€±á€Źá€„á€șှ: Canary ဖဌန့á€șá€á€»á€­á€™á€Ÿá€Żá€™á€»á€Źá€žáŠ A/B စမá€șှသပá€șခဌငá€șှ၊
  • Load ချိနá€șခလငá€șá€œá€»á€Ÿá€Ź: hashes á€€á€­á€Żá€Ąá€á€Œá€±á€á€¶á á€›á€­á€Żá€žá€›á€Ÿá€„á€șá€žá€•á€Œá€źá€ž ကိုကá€șညဟသေဏ၊
  • á€•á€Œá€Żá€á€șá€€á€»á€•á€Œá€źá€žá€”á€±á€Źá€€á€ș ပဌနá€șလညá€șထူထေဏငá€șရေသဥချိနá€șကုနá€șခဌငá€șှ၊ ထပá€șစမá€șသခဌငá€șှ၊ circuit breakers;
  • á€Ąá€™á€Ÿá€Źá€žá€Ąá€šá€œá€„á€șသမျဏသကို ထည့á€șသလငá€șသခဌငá€șှ။- á€”á€Ÿá€±á€Źá€„á€·á€șá€”á€Ÿá€±á€žá€™á€Ÿá€ŻáŠ ကျဆငá€șá€žá€žá€œá€Źá€žá€žá€±á€Ź တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žáŠ စသညá€șတို့။

ဆေဏငá€șသပါသတလငá€ș ဆကá€șလကá€șဖေဏá€șá€•á€Œá€‘á€Źá€žá€žá€Šá€șနဟင့á€șá€Ąá€™á€»á€Ÿ ကစလမá€șှရညá€șမျဏသကို ရလေသချယá€șထဏသသေဏ အကá€șပá€șá€œá€źá€€á€±á€žá€›á€Ÿá€„á€șှကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá á€”á€™á€°á€”á€Źá€Ąá€–á€Œá€…á€ș သရုပá€șဖေဏá€șမညá€șဖဌစá€șá€•á€Œá€źá€ž လမá€șှတစá€șá€œá€»á€Ÿá€±á€Źá€€á€șတလငá€ș á€žá€˜á€±á€Źá€á€›á€Źá€žá€Ąá€žá€…á€șမျဏသကို မိတá€șဆကá€șပါမညá€ș။ ပထမဆုံသသေဏ á€Ąá€šá€°á€Ąá€†á€–á€Œá€…á€șလိမ့á€șမညá€ș။ DestinationRules (ဆိုလိုသညá€șá€™á€Ÿá€Ź á€Ąá€žá€œá€Źá€žá€Ąá€œá€Ź/တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€ž လကá€șခံရရဟိသူနဟင့á€șပတá€șသကá€șသည့á€ș စညá€șသမျဉá€șသမျဏသ - ခန့á€șမဟနá€șသခဌေ á€˜á€Źá€žá€Źá€•á€Œá€”á€șချကá€ș။)A/B စမá€șှသပá€șခဌငá€șá€žáá€Ąá€€á€°á€Ąá€Šá€źá€–á€Œá€„á€·á€ș၊

A/B စမá€șှသပá€șခဌငá€șှ- လကá€șတလေ့တလငá€ș DestinationRules

A/B စမá€șှသပá€șခဌငá€șှကို အကá€șá€•á€œá€źá€€á€±á€žá€›á€Ÿá€„á€șှတစá€șခု၏ á€—á€Źá€žá€›á€Ÿá€„á€șသနဟစá€șá€™á€»á€­á€Żá€žá€›á€Ÿá€­ (á€™á€»á€Źá€žá€žá€±á€Źá€Ąá€Źá€žá€–á€Œá€„á€·á€ș ၎ငá€șသတို့သညá€ș á€Ąá€™á€Œá€„á€șá€Ąá€Źá€žá€–á€Œá€„á€·á€ș ကလá€Čá€•á€Œá€Źá€žá€žá€Šá€ș) နဟင့á€ș မညá€șသည့á€șအရာသညá€ș á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€°á€Ąá€á€œá€±á€·á€Ąá€€á€Œá€Żá€¶á€€á€­á€Ż ပိုမိုကေဏငá€șသမလနá€șစေမညá€șကို ကျလနá€șုပá€șတို့ 100% မသေချဏပါ။ á€‘á€­á€Żá€·á€€á€Œá€±á€Źá€„á€·á€ș၊ ကျလနá€șုပá€șတို့သညá€ș á€—á€Źá€žá€›á€Ÿá€„á€șသနဟစá€șá€™á€»á€­á€Żá€žá€œá€Żá€¶á€žá€€á€­á€Ż တစá€șá€•á€Œá€­á€Żá€„á€șနကá€ș လုပá€șဆေဏငá€șá€•á€Œá€źá€ž မကá€șထရစá€șမျဏသကို စုဆေဏငá€șသပါသညá€ș။

A/B စမá€șှသပá€șá€™á€Ÿá€Żá€žá€›á€Żá€•á€șပဌရနá€șá€Ąá€á€œá€€á€ș လိုအပá€șသေဏ Frontend ၏ á€’á€Żá€á€­á€šá€—á€Źá€žá€›á€Ÿá€„á€șှကို ဥသုံသချရနá€ș ဥေဏကá€șပါ command ကို run ပါ။

$ kubectl apply -f resource-manifests/kube/ab-testing/sa-frontend-green-deployment.yaml
deployment.extensions/sa-frontend-green created

အစိမá€șသရေဏငá€șá€—á€Źá€žá€›á€Ÿá€„á€șá€žá€Ąá€á€œá€€á€ș ဖဌန့á€șကျကá€șá€™á€Ÿá€Żá€žá€Šá€ș á€”á€±á€›á€Źá€”á€Ÿá€…á€șá€á€Żá€á€œá€„á€ș ကလá€Čá€•á€Œá€Źá€žá€žá€Šá€ș-

  1. ပုံသညá€ș မတူညဟသေဏ tag á€€á€­á€Żá€Ąá€á€Œá€±á€á€¶á€žá€Šá€ș - istio-green,
  2. á€˜á€°á€žá€™á€»á€Źá€žá€á€œá€„á€ș á€Ąá€Šá€œá€Ÿá€”á€șသပါရဟိပါသညá€ș။ version: green.

ဖဌန့á€șကျကá€șá€™á€Ÿá€Żá€”á€Ÿá€…á€șá€á€Żá€œá€Żá€¶á€žá€á€œá€„á€ș တံဆိပá€șတစá€șá€á€Żá€›á€Ÿá€­á€žá€±á€Źá€€á€Œá€±á€Źá€„á€·á€șဖဌစá€șသညá€ș။ app: sa-frontend၊ virtual ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€–á€Œá€„á€·á€ș လမá€șá€žá€€á€Œá€±á€Źá€„á€șá€žá€•á€Œá€‘á€Źá€žá€žá€±á€Ź တေဏငá€șသဆိုချကá€șမျဏသ sa-external-services ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€Ąá€á€œá€€á€ș sa-frontend၊ ၎ငá€șသ၏ဖဌစá€șရပá€șá€™á€»á€Źá€žá€Ąá€Źá€žá€œá€Żá€¶á€žá€žá€­á€Żá€· ပဌနá€șညလဟနá€șá€žá€žá€œá€Źá€žá€™á€Šá€șဖဌစá€șá€•á€Œá€źá€ž ဝနá€șá€Ąá€Źá€žá€™á€Ÿá€á€…á€șဆင့á€ș ဖဌန့á€șဝေမညá€șဖဌစá€șသညá€ș။ round-robin algorithmဥေဏကá€șá€•á€«á€Ąá€á€Œá€±á€Ąá€”á€±á€žá€­á€Żá€· ဩှတညá€șစေမည့á€ș၊

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2
တေဏငá€șသဆိုထဏသသည့á€șဖိုငá€șမျဏသကို á€›á€Ÿá€Źá€™á€á€œá€±á€·á€•á€«á‹

ကဖိုငá€șမျဏသကို á€Ąá€•á€œá€źá€€á€±á€žá€›á€Ÿá€„á€șှ၏ á€—á€Źá€žá€›á€Ÿá€„á€șá€žá€Ąá€™á€»á€­á€Żá€žá€™á€»á€­á€Żá€žá€á€œá€„á€ș ကလá€Čá€•á€Œá€Źá€žá€…á€œá€Ź အမညá€șပေသထဏသသည့á€șá€Ąá€á€œá€€á€ș ၎ငá€șသတို့ကို á€›á€Ÿá€Źá€™á€á€œá€±á€·á€•á€«á‹ ဒါကို á€žá€±á€á€»á€Źá€€á€Œá€Šá€·á€șရဥေဏငá€ș။

$ curl --silent http://$EXTERNAL_IP/ | tr '"' 'n' | grep main
/static/css/main.c7071b22.css
/static/js/main.059f8e9c.js
$ curl --silent http://$EXTERNAL_IP/ | tr '"' 'n' | grep main
/static/css/main.f87cd8c9.css
/static/js/main.f7659dbb.js

ဆိုလိုတာက index.htmlstatic ဖိုငá€șá€™á€»á€Źá€žá á€—á€Źá€žá€›á€Ÿá€„á€șှတစá€șခုအာှ တေဏငá€șá€žá€†á€­á€Żá€á€Œá€„á€șသဖဌင့á€ș၊ မတူညဟသေဏ á€—á€Źá€žá€›á€Ÿá€„á€șသရဟိသည့á€ș pods မျဏသထံသို့ load balancer မဟ ပေသပို့နိုငá€șသညá€ș၊ ထငá€șá€›á€Ÿá€Źá€žá€žá€±á€Ź á€Ąá€€á€Œá€±á€Źá€„á€șá€žá€™á€»á€Źá€žá€€á€Œá€±á€Źá€„á€·á€ș၊ ထိုသို့သေဏဖိုငá€șမျဏသ မရဟိပါ။ á€‘á€­á€Żá€·á€€á€Œá€±á€Źá€„á€·á€ș á€œá€»á€Ÿá€±á€Źá€€á€șá€œá€œá€Ÿá€Źá€™á€»á€Źá€ž အလုပá€șလုပá€șနိုငá€șရနá€ș ကန့á€șသတá€șချကá€șတစá€șခု သတá€șမဟတá€șရနá€ș လိုအပá€șသညá€ș-"index.html ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€•á€±á€žá€žá€±á€Ź á€Ąá€•á€œá€źá€€á€±á€žá€›á€Ÿá€„á€șှ၏ á€á€°á€Šá€źá€žá€±á€Źá€—á€Źá€žá€›á€Ÿá€„á€șှသညá€ș နေဏကá€șဆကá€șတလá€Čတေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż ဆေဏငá€șရလကá€șပေသသင့á€șသညá€ș။"။

တသမတá€șတညá€șှ hash-based load balancing ဖဌင့á€ș ထိုနေရဏကို ရေဏကá€șပါမညá€ș။ (တစá€șသမတá€șတညá€șှ Hash Loadbalancing)... ဒြကိစá€čá€…á€™á€Ÿá€Ź တူညဟသေဏ client မဟ တေဏငá€șသဆိုချကá€șမျဏသကို တူညဟသေဏ backend instance သို့ ပေသပို့ပါသညá€șá‹á€€á€Œá€­á€Żá€á€„á€șသတá€șမဟတá€șထဏသသေဏ ပိုငá€șဆိုငá€șá€™á€Ÿá€Żá€€á€­á€Ż á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€‘á€Źá€žá€žá€Šá€·á€șá€Ąá€á€œá€€á€ș - ငပမဏ HTTP ခေါငá€șှစြှတစá€șခု။ DestinationRules ကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá ဥကေဏငá€șအထညá€șဖေဏá€șခá€Č့သညá€ș။

á€žá€œá€Źá€žá€™á€Šá€·á€șနေရဏ စညá€șှကမá€șသမျဏသ

ယငá€șá€žá€•á€Œá€źá€žá€”á€±á€Źá€€á€ș VirtualService DestinationRules ကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá á€Ąá€œá€­á€Żá€›á€Ÿá€­á€žá€±á€Ź ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€žá€­á€Żá€· တေဏငá€șသဆိုချကá€șတစá€șခု á€•á€±á€žá€•á€­á€Żá€·á€•á€Œá€źá€žáŠ ကဝနá€șဆေဏငá€șá€™á€Ÿá€Żá á€„á€•á€™á€Źá€™á€»á€Źá€žá€Ąá€á€œá€€á€ș ဩှတညá€șထဏသသေဏ á€Ąá€žá€œá€Źá€žá€Ąá€œá€Źá€Ąá€á€œá€€á€ș á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€™á€Šá€·á€ș á€™á€°á€á€«á€’á€™á€»á€Źá€žá€€á€­á€Ż ကျလနá€șုပá€șတို့ သတá€șမဟတá€șနိုငá€șသညá€ș-

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2
Istio အရငá€șá€žá€Ąá€™á€Œá€…á€șá€™á€»á€Źá€žá€–á€Œá€„á€·á€ș လမá€șá€žá€€á€Œá€±á€Źá€„á€șသစဟမံခန့á€șခလá€Čá€™á€Ÿá€Ż

á€•á€œá€±á€Źá€†á€­á€Żâˆ’ ကလနá€șရကá€șá€Ąá€žá€œá€Źá€žá€Ąá€œá€Źá€Ąá€•á€±á€«á€ș Istio အရငá€șá€žá€Ąá€™á€Œá€…á€șá€™á€»á€Źá€žá သကá€șရေဏကá€șá€™á€Ÿá€Żá€€á€­á€Ż နာှလညá€șရလလယá€șကူသေဏနညá€șှလမá€șသဖဌင့á€ș á€€á€”á€±á€›á€Źá€á€œá€„á€ș တငá€șá€•á€Œá€‘á€Źá€žá€žá€Šá€ș။ á€á€­á€€á€»á€…á€œá€Źá€•á€Œá€±á€Źá€›á€œá€»á€Ÿá€„á€ș CRD တလငá€șထည့á€șသလငá€șသထဏသသေဏ Ingress Gateway ရဟိ သံတမနá€șမဟ တေဏငá€șသဆိုချကá€șကို ပေသပို့ရနá€ș မညá€șသည့á€șငပမဏကို ပေသပို့ရမညá€șကို á€á€­á€€á€»á€…á€œá€Źá€†á€Żá€¶á€žá€–á€Œá€á€șသညá€ș။

Destination Rules ဖဌင့á€ș၊ တူညဟသေဏ hashe á€™á€»á€Źá€žá€€á€­á€Żá€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€›á€”á€ș load balancing ကို configure နိုငá€șá€•á€Œá€źá€ž တူညဟသေဏ service instance သညá€ș တူညဟသေဏ user á€€á€­á€Żá€á€Żá€¶á€·á€•á€Œá€”á€șá€€á€Œá€±á€Źá€„á€șသသေချဏစေပါသညá€ș။ ဥေဏကá€șပါဖလá€Č့စညá€șသပုံသညá€ș သင့á€șအာှ ၎ငá€șသကိုဥေဏငá€șမဌငá€șရနá€șခလင့á€șá€•á€Œá€Żá€žá€Šá€ș (destinationrule-sa-frontend.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: sa-frontend
spec:
  host: sa-frontend
  trafficPolicy:
    loadBalancer:
      consistentHash:
        httpHeaderName: version   # 1

1 - HTTP header ၏ á€Ąá€€á€Œá€±á€Źá€„á€șသဥရဏမျဏသဥပေါá€ș á€Ąá€á€Œá€±á€á€¶á hash ကို ထုတá€șပေသပါမညá€ș။ version.

ဥေဏကá€șပါ command ဖဌင့á€ș configuration á€€á€­á€Żá€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€•á€«-

$ kubectl apply -f resource-manifests/istio/ab-testing/destinationrule-sa-frontend.yaml
destinationrule.networking.istio.io/sa-frontend created

ယခု ဥေဏကá€șပါ command ကို run á€•á€Œá€źá€ž header ကို သတá€șမဟတá€șသေဏဥခါ မဟနá€șကနá€șသေဏ ဖိုငá€șမျဏသ á€›á€›á€Ÿá€­á€€á€Œá€±á€Źá€„á€șှ သေချဏပါစေ။ version:

$ curl --silent -H "version: yogo" http://$EXTERNAL_IP/ | tr '"' 'n' | grep main

á€•á€œá€±á€Źá€†á€­á€Ż: header တလငá€ș မတူညဟသေဏတနá€șဖိုသမျဏသထည့á€șရနá€șနဟင့á€ș browser တလငá€ș တိုကá€șရိုကá€șရလဒá€șမျဏသကို စမá€șှသပá€șရနá€ș၊ သငá€șသုံသနိုငá€șသညá€ș။ ကတိုသချá€Čá€·á€™á€Ÿá€Ż Chrome သို့ (á€žá€­á€Żá€·á€™á€Ÿá€Żá€á€ș ကဥတူ Firefox á€Ąá€á€œá€€á€ș - ခန့á€șမဟနá€șသခဌေ။ á€˜á€Źá€žá€Źá€•á€Œá€”á€ș။).

á€šá€±á€˜á€°á€šá€»á€Ąá€Źá€žá€–á€Œá€„á€·á€ș၊ DestinationRules သညá€ș load balancing á€§á€›á€­á€šá€Źá€á€œá€„á€șပိုမိုလုပá€șဆေဏငá€șနိုငá€șစလမá€șသရဟိသညá€ș - ဥသေသစိတá€șကိုစစá€șဆေသပါ။ တရာှဝငá€șá€…á€Źá€›á€œá€€á€șစာတမá€șှ.

VirtualService ကို ထပá€șá€™á€¶á€™á€œá€±á€·á€œá€Źá€™á€źáŠ ဥေဏကá€șပါ command မျဏသကို လုပá€șဆေဏငá€șခဌငá€șသဖဌင့á€ș á€Ąá€•á€œá€źá€€á€±á€žá€›á€Ÿá€„á€șှ၏ "အစိမá€șသရေဏငá€șá€—á€Źá€žá€›á€Ÿá€„á€șှ" နဟင့á€ș သကá€șဆိုငá€șရာ ယာဉá€șလမá€șá€žá€€á€Œá€±á€Źá€„á€șှ စညá€șှကမá€șှကို ဖျကá€șá€€á€Œá€•á€«á€…á€­á€Żá€·á‹

$ kubectl delete -f resource-manifests/kube/ab-testing/sa-frontend-green-deployment.yaml
deployment.extensions “sa-frontend-green” deleted
$ kubectl delete -f resource-manifests/istio/ab-testing/destinationrule-sa-frontend.yaml
destinationrule.networking.istio.io “sa-frontend” deleted

Mirroring- လကá€șတလေ့တလငá€ș Virtual Services

အရိပá€ș ("ဥကဏဥရံ") á€žá€­á€Żá€·á€™á€Ÿá€Żá€á€ș á€€á€Œá€±á€žá€™á€Żá€¶á€•á€Œá€„á€șခဌငá€șှ။ ("မဟနá€șá€•á€Œá€±á€Źá€„á€șှ") á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€°á€™á€»á€Źá€žá€Ąá€•á€±á€«á€ș မထိခိုကá€șစေဘá€Č ထုတá€șလုပá€șá€™á€Ÿá€Żá€•á€Œá€±á€Źá€„á€șှလá€Čá€™á€Ÿá€Żá€€á€­á€Ż စမá€șှသပá€șá€œá€­á€Żá€žá€Šá€·á€șကိစá€čá€…á€™á€»á€Źá€žá€á€œá€„á€ș á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€Šá€ș- ၎ငá€șှကိုလုပá€șဆေဏငá€șရနá€șá€Ąá€á€œá€€á€ș ကျလနá€șုပá€șတို့သညá€ș ("á€€á€Œá€±á€žá€™á€Żá€¶") တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż á€œá€­á€Żá€á€»á€„á€șá€žá€±á€Źá€Ąá€•á€Œá€±á€Źá€„á€șှအလá€Čá€™á€»á€Źá€žá€•á€Œá€Żá€œá€Żá€•á€șခá€Č့သည့á€ș ဒုတိယငပမဏတစá€șခုသို့ á€€á€°á€žá€šá€°á€•á€Œá€źá€ž ဥကျိုသဆကá€șá€™á€»á€Źá€žá€€á€­á€Żá€€á€Œá€Šá€·á€șပါ။ á€›á€­á€Żá€žá€›á€­á€Żá€žá€›á€Ÿá€„á€șသရဟငá€șá€žá€•á€Œá€±á€Źá€›á€œá€»á€Ÿá€„á€ș၊ သငá€ș၏လုပá€șဖေဏá€șကိုငá€șဖကá€șသညá€ș ၎ငá€șှကို á€Ąá€™á€Ÿá€”á€șတကယá€șပဌနá€șလညá€șသုံသသပá€ș၍မရနိုငá€șသေဏ á€€á€™á€»á€Ÿá€€á€Œá€źá€žá€™á€Źá€žá€žá€±á€Źá€Ąá€–á€Żá€Ąá€‘á€…á€șá€•á€Żá€¶á€…á€¶á€–á€Œá€„á€·á€ș ဆလá€Čငငá€șတေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€•á€Œá€Żá€œá€Żá€•á€șသည့á€șá€Ąá€á€«á€á€œá€„á€ș သငá€ș၏လုပá€șဖေဏá€șကိုငá€șဖကá€șသညá€ș á€Ąá€›á€±á€žá€€á€Œá€źá€žá€†á€Żá€¶á€žá€•á€Œá€żá€”á€Źá€€á€­á€Ż ရလေသချယá€șလိုကá€șခဌငá€șသဖဌစá€șသညá€ș။

လုပá€șဆေဏငá€șချကá€șတလငá€ș ကဇဏတá€șလမá€șှကို စမá€șှသပá€șရနá€șá€Ąá€á€œá€€á€ș SA-Logic ၏ ဒုတိယငပမဏကို bugs ဖဌင့á€ș ဖနá€șá€á€źá€žá€€á€Œá€•á€«á€…á€­á€Żá€· (buggyဥေဏကá€șပါ command ကို run ခဌငá€șသဖဌင့á€ș)

$ kubectl apply -f resource-manifests/kube/shadowing/sa-logic-service-buggy.yaml
deployment.extensions/sa-logic-buggy created

á€šá€á€Żá€á€œá€„á€ș instances á€Ąá€Źá€žá€œá€Żá€¶á€žá€€á€­á€Ż သေချဏဥေဏငá€ș command ကို run á€€á€Œá€•á€«á€…á€­á€Żá€· app=sa-logic ၎ငá€șá€žá€á€­á€Żá€·á€á€œá€„á€ș သကá€șဆိုငá€șရာ á€—á€Źá€žá€›á€Ÿá€„á€șá€žá€™á€»á€Źá€žá€”á€Ÿá€„á€·á€ș á€Ąá€Šá€œá€Ÿá€”á€șသမျဏသ ရဟိသညá€ș-

$ kubectl get pods -l app=sa-logic --show-labels
NAME                              READY   LABELS
sa-logic-568498cb4d-2sjwj         2/2     app=sa-logic,version=v1
sa-logic-568498cb4d-p4f8c         2/2     app=sa-logic,version=v1
sa-logic-buggy-76dff55847-2fl66   2/2     app=sa-logic,version=v2
sa-logic-buggy-76dff55847-kx8zz   2/2     app=sa-logic,version=v2

ဝနá€șဆေဏငá€șá€™á€Ÿá€Ż sa-logic á€Ąá€Šá€œá€Ÿá€”á€șှတစá€șá€á€Żá€–á€Œá€„á€·á€ș ဥစေ့မျဏသကို ပစá€șမဟတá€șထာှသညá€ș။ app=sa-logicá€‘á€­á€Żá€·á€€á€Œá€±á€Źá€„á€·á€ș တေဏငá€șသဆိုချကá€șá€Ąá€Źá€žá€œá€Żá€¶á€žá€€á€­á€Ż ဖဌစá€șရပá€șá€Ąá€Źá€žá€œá€Żá€¶á€žá€€á€Œá€Źá€žá€á€œá€„á€ș ဖဌန့á€șဝေပါမညá€ș-

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2

... သို့သေဏá€ș ကျလနá€șုပá€șတို့သညá€ș တေဏငá€șသဆိုချကá€șမျဏသကို v1 instances မျဏသသို့ á€•á€±á€žá€•á€­á€Żá€·á€•á€Œá€źá€ž v2 instances မျဏသသို့ á€•á€Œá€±á€Źá€„á€șသပဌနá€șလဟနá€șá€…á€±á€œá€­á€Żá€žá€Šá€ș-

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2

စညá€șသမျဉá€șသမျဏသသညá€ș VirtualService ၏ လမá€șá€žá€€á€Œá€±á€Źá€„á€șသခလá€Čá€™á€»á€Źá€žá€”á€Ÿá€„á€·á€ș လမá€șá€žá€€á€Œá€±á€Źá€„á€șသမျဏသကို သတá€șသတá€șမဟတá€șမဟတá€șခလá€Čတစá€șခုသို့ သတá€șမဟတá€șပေသမည့á€ș DestinationRule နဟင့á€ș ပေါငá€șှစပá€șထဏသသေဏ VirtualService မဟတဆင့á€ș ၎ငá€șှကို ဥေဏငá€șမဌငá€șပါမညá€ș။

Destination စညá€șသမျဉá€șá€žá€™á€»á€Źá€žá€á€œá€„á€ș အပိုငá€șသခလá€Čမျဏသကို သတá€șမဟတá€șခဌငá€șှ။

အပိုငá€șသမျဏသ (á€Ąá€á€œá€Čမျဏသ) ဥေဏကá€șပါ configuration á€Ąá€Źá€žá€–á€Œá€„á€·á€șá€†á€Żá€¶á€žá€–á€Œá€á€șကဌသညá€ș (sa-logic-subsets-destinationrule.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: sa-logic
spec:
  host: sa-logic    # 1
  subsets:
  - name: v1        # 2
    labels:
      version: v1   # 3
  - name: v2
    labels:
      version: v2

  1. အိမá€șရဟငá€ș (host) ကစညá€șသမျဉá€șှသညá€ș ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€†á€źá€žá€­á€Żá€· လမá€șá€žá€€á€Œá€±á€Źá€„á€șá€žá€žá€œá€Źá€žá€žá€Šá€·á€șဥခါ ကိစá€čá€…á€™á€»á€Źá€žá€á€œá€„á€șသာ သကá€șဆိုငá€șသညá€șဟု သတá€șမဟတá€șသညá€ș။ sa-logic;
  2. ခေါငá€șှစဉá€șမျဏသ (nameá€Ąá€…á€Żá€á€œá€Čမျဏသကို လမá€șá€žá€€á€Œá€±á€Źá€„á€șသပေသသည့á€șá€Ąá€á€«á€á€œá€„á€ș á€Ąá€á€œá€Čမျဏသကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€Šá€ș။
  3. á€Ąá€Šá€œá€Ÿá€”á€șှ (label) á€Ąá€…á€Żá€á€œá€Č၏ အစိတá€șအပိုငá€șှတစá€șá€á€Żá€–á€Œá€…á€șလာရနá€ș á€žá€Źá€“á€€á€™á€»á€Źá€žá€”á€Ÿá€„á€·á€ș ကိုကá€șညြရမညá€șဖဌစá€șသေဏ သေဏ့တနá€șá€–á€­á€Żá€žá€Ąá€á€œá€Čမျဏသကို သတá€șမဟတá€șသညá€ș။

ဥေဏကá€șပါ command ဖဌင့á€ș configuration á€€á€­á€Żá€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€•á€«-

$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-destinationrule.yaml
destinationrule.networking.istio.io/sa-logic created

အပိုငá€șသခလá€Čမျဏသကို ယခုသတá€șမဟတá€șလိုကá€șသေဏဥခါ၊ ကျလနá€șုပá€șတို့သညá€ș ၎ငá€șသတို့ဥဏသ sa-logic သို့ တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€Ąá€á€œá€€á€ș စညá€șသမျဉá€șသမျဏသကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€›á€”á€ș VirtualService ကို ဆကá€șလကá€șဖလá€Č့စညá€șှနိုငá€șသညá€ș-

  1. အပိုငá€șှတစá€șခုသို့ လမá€șá€žá€€á€Œá€±á€Źá€„á€șá€žá€•á€Œá€±á€Źá€„á€șှထာှသညá€ș။ v1,
  2. အပိုငá€șှတစá€șခုသို့ အလငá€șá€žá€•á€Œá€‘á€Źá€žá€žá€Šá€ș။ v2.

ဥေဏကá€șဖေဏá€șပဌပါ á€€á€Œá€±á€„á€Œá€Źá€á€»á€€á€șသညá€ș သင့á€șအာှ သင့á€șအစြအစဉá€șမျဏသကို ဥေဏငá€șမဌငá€șနိုငá€șစေသညá€ș (sa-logic-subsets-shadowing-vs.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: sa-logic
spec:
  hosts:
    - sa-logic          
  http:
  - route:
    - destination:
        host: sa-logic  
        subset: v1      
    mirror:             
      host: sa-logic     
      subset: v2

á€€á€”á€±á€›á€Źá€á€œá€„á€ș ရဟငá€șှလငá€șသချကá€ș မလိုအပá€șပါ၊ á€‘á€­á€Żá€·á€€á€Œá€±á€Źá€„á€·á€ș ၎ငá€șှကို လကá€șá€á€œá€±á€·á€œá€Żá€•á€șဆေဏငá€șကဌည့á€șá€€á€Œá€•á€«á€…á€­á€Żá€·á‹

$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-shadowing-vs.yaml
virtualservice.networking.istio.io/sa-logic created

ဥေဏကá€șပါ command ကိုခေါá€șá€†á€­á€Żá€á€Œá€„á€șသဖဌင့á€ș load ကိုထည့á€șá€€á€Œá€•á€«á€…á€­á€Żá€·á‹

$ while true; do curl -v http://$EXTERNAL_IP/sentiment 
    -H "Content-type: application/json" 
    -d '{"sentence": "I love yogobella"}'; 
    sleep .8; done

Grafana တလငá€ș ရလဒá€șမျဏသကို ကဌည့á€șá€€á€Œá€•á€«á€…á€­á€Żá€·áŠbuggy) တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá ~ 60% á€Ąá€á€œá€€á€ș ပျကá€șကလကá€șá€™á€Ÿá€Żá€™á€»á€Źá€ž ဖဌစá€șပေါá€șသေဏá€șလညá€șှ ၎ငá€șသတို့ကို လုပá€șဆေဏငá€șနေသည့á€ș ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€á€…á€șá€á€Żá€™á€Ÿ á€á€Żá€¶á€·á€•á€Œá€”á€șá€žá€±á€Źá€€á€Œá€±á€Źá€„á€·á€ș á€žá€Żá€¶á€žá€…á€œá€Čသူမျဏသ ထိခိုကá€șá€™á€Ÿá€Żá€á€…á€șá€á€Żá€™á€»á€Ÿ မရဟိပါ။

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2
sa-logic ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá á€™á€á€°á€Šá€źá€žá€±á€Źá€—á€Źá€žá€›á€Ÿá€„á€șá€žá€™á€»á€Źá€žá ဥေဏငá€șမဌငá€șá€žá€±á€Źá€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Żá€™á€»á€Źá€ž

ကတလငá€ș ကျလနá€șုပá€șá€á€­á€Żá€·áá€á€”á€șဆေဏငá€șá€™á€Ÿá€Żá€™á€»á€Źá€žá သံတမနá€șá€™á€»á€Źá€žá€Ąá€á€œá€€á€ș VirtualService ကို မညá€șသို့ဥသုံသချသညá€șကို ကျလနá€șုပá€șတို့ á€•á€‘á€™á€†á€Żá€¶á€žá€™á€Œá€„á€șá€á€œá€±á€·á€œá€­á€Żá€€á€șရသညá€ș- ဘယá€șဥချိနá€ș sa-web-app တေဏငá€șသဆိုချကá€șတစá€șá€á€Żá€•á€Œá€Żá€œá€Żá€•á€șသညá€ș။ sa-logic၊ VirtualService မဟတစá€șဆင့á€ș - တေဏငá€șသဆိုချကá€șကို v1 á€Ąá€…á€Żá€á€œá€Čသို့ လမá€șá€žá€€á€Œá€±á€Źá€„á€șá€žá€•á€Œá€±á€Źá€„á€șှရနá€șနဟင့á€ș ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá v2 á€Ąá€á€œá€Čသို့ တေဏငá€șသဆိုချကá€șအာှ ပဌနá€șá€•á€Œá€±á€Źá€„á€șှရနá€ș ပဌငá€șဆငá€șထဏသသည့á€ș sidecar Envoy မဟတဆင့á€ș ဖဌတá€șသနá€șသပါသညá€ș။ sa-logic.

Virtual Services သညá€ș á€›á€­á€Żá€žá€›á€Ÿá€„á€șှသညá€șဟု သငá€ș ထငá€șကေဏငá€șှထငá€șနိုငá€șသညá€ș ။ နေဏကá€șအပိုငá€șá€žá€™á€Ÿá€Źá€á€±á€Źá€· သူတို့က တကယá€șကေဏငá€șှတယá€șá€œá€­á€Żá€· á€•á€Œá€±á€Źá€á€Œá€„á€șá€žá€Ąá€Źá€žá€–á€Œá€„á€·á€ș အá€Čဒါကို ဥကျယá€șချá€Čá€·á€•á€Œá€±á€Źá€•á€«á€™á€šá€ș။

ကိနá€čနရြ ဖဌန့á€șချိရေသ

Canary Deployment သညá€ș á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€°á€Ąá€”á€Šá€șသစုထံသို့ အကá€șá€•á€œá€źá€€á€±á€žá€›á€Ÿá€„á€șá€žá€—á€Źá€žá€›á€Ÿá€„á€șှအသစá€șကို ဖဌန့á€șချိသည့á€șလုပá€șငနá€șှစဉá€șဖဌစá€șသညá€ș။ ထုတá€șá€á€±á€™á€Ÿá€Żá€á€œá€„á€ș á€•á€Œá€żá€”á€Źá€™á€›á€Ÿá€­á€€á€Œá€±á€Źá€„á€șှ သေချဏစေရနá€șá€Ąá€á€œá€€á€ș ၎ငá€șှကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€•á€Œá€źá€žá€™á€Ÿá€žá€Ź ၎ငá€șှ၏ (ဖဌန့á€șá€á€»á€­á€™á€Ÿá€Ż) အရညá€șá€Ąá€žá€œá€±á€žá€€á€­á€Ż á€šá€Żá€¶á€€á€Œá€Šá€șá€•á€Œá€źá€ž á€Ąá€á€Œá€Źá€žá€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€°á€™á€»á€Źá€žá€‘á€¶ ဖဌန့á€șá€á€±á€•á€«á‹ĐŸá€•á€›á€­á€á€șသတá€șá€€á€Œá€źá€žá‹

Canary ဖဌန့á€șá€á€»á€­á€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż သရုပá€șပဌရနá€ș၊ ကျလနá€șုပá€șတို့သညá€ș အပိုငá€șသခလá€Čတစá€șá€á€Żá€–á€Œá€„á€·á€ș ဆကá€șလကá€șလုပá€șဆေဏငá€șá€žá€œá€Źá€žá€•á€«á€™á€Šá€ș။ buggy у sa-logic.

á€Ąá€žá€±á€žá€Ąá€™á€œá€Ÿá€Źá€žá€€á€­á€…á€čá€…á€™á€»á€Źá€žá€á€œá€„á€ș ဥချိနá€șá€™á€–á€Œá€Żá€”á€șှဘá€Č á€žá€Żá€¶á€žá€…á€œá€Čသူ 20% ကို bug á€™á€»á€Źá€žá€–á€Œá€„á€·á€ș á€—á€Źá€žá€›á€Ÿá€„á€șသသို့ ချကá€șခဌငá€șသပို့ပါ (၎ငá€șှက ကျလနá€șုပá€șá€á€­á€Żá€·á canary rollout ကို ကိုယá€șá€…á€Źá€žá€•á€Œá€Żá€žá€Šá€ș) နဟင့á€ș ကျနá€ș 80% ကို á€•á€Żá€¶á€™á€Ÿá€”á€șဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€žá€­á€Żá€· ပေသပို့ပါ။ ဒြလိုလုပá€șဖို့၊ ဥေဏကá€șပါ VirtualService ကိုသုံသပါ (sa-logic-subsets-canary-vs.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: sa-logic
spec:
  hosts:
    - sa-logic    
  http:
  - route: 
    - destination: 
        host: sa-logic
        subset: v1
      weight: 80         # 1
    - destination: 
        host: sa-logic
        subset: v2
      weight: 20 # 1

1 သညá€ș á€Ąá€œá€±á€žá€á€»á€­á€”á€ș (weightလကá€șခံသူ á€žá€­á€Żá€·á€™á€Ÿá€Żá€á€ș လကá€șခံသူ၏ အပိုငá€șသခလá€Čတစá€șခုသို့ ညလဟနá€șá€€á€Œá€Źá€žá€™á€Šá€·á€ș တေဏငá€șသဆိုချကá€șá€™á€»á€Źá€žá ရာခိုငá€șá€”á€Ÿá€Żá€”á€șှကို သတá€șမဟတá€șပေသသညá€ș။

ယခငá€ș VirtualService ဖလá€Č့စညá€șá€žá€™á€Ÿá€Żá€•á€Żá€¶á€…á€¶á€€á€­á€Ż အပá€șဒိတá€șလုပá€șá€€á€Œá€•á€«á€…á€­á€Żá€· sa-logic ဥေဏကá€șပါ command ဖဌင့á€ș

$ kubectl apply -f resource-manifests/istio/canary/sa-logic-subsets-canary-vs.yaml
virtualservice.networking.istio.io/sa-logic configured

... ဥချို့သေဏတေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€žá€Šá€ș á€€á€»á€›á€Ÿá€Żá€¶á€žá€™á€Ÿá€Żá€™á€»á€Źá€žá€†á€źá€žá€­á€Żá€· ဩှတညá€șá€”á€±á€€á€Œá€±á€Źá€„á€șှ ကျလနá€șုပá€șတို့ ချကá€șချငá€șသတလေ့မဌငá€șရပါမညá€ș-

$ while true; do 
   curl -i http://$EXTERNAL_IP/sentiment 
   -H "Content-type: application/json" 
   -d '{"sentence": "I love yogobella"}' 
   --silent -w "Time: %{time_total}s t Status: %{http_code}n" 
   -o /dev/null; sleep .1; done
Time: 0.153075s Status: 200
Time: 0.137581s Status: 200
Time: 0.139345s Status: 200
Time: 30.291806s Status: 500

VirtualServices သညá€ș Canary ဖဌန့á€șá€á€»á€­á€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż လုပá€șဆေဏငá€șနိုငá€șသညá€ș- ကကိစá€čစတလငá€ș၊ ကျလနá€șုပá€șတို့သညá€ș á€•á€Œá€żá€”á€Źá€™á€»á€Źá€žá ဖဌစá€șနိုငá€șá€á€Œá€±á€›á€Ÿá€­á€žá€±á€Ź သကá€șရေဏကá€șá€™á€Ÿá€Żá€€á€­á€Ż á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€°á€Ąá€á€Œá€±á€á€¶á 20% သို့ ကျဉá€șá€žá€™á€Œá€±á€Źá€„á€șá€žá€žá€œá€Źá€žá€•á€«á€žá€Šá€ș။ á€Ąá€¶á€·á€žá€Œá€–á€œá€šá€ș! ယခု၊ ကျလနá€șုပá€șá€á€­á€Żá€·áá€€á€Żá€’á€șကို မသေချဏသည့á€șဥခါတိုငá€șှ (တစá€șနညá€șá€žá€Ąá€Źá€žá€–á€Œá€„á€·á€ș - á€Ąá€™á€Œá€Čတမá€șှ...)၊ ကျလနá€șုပá€șတို့သညá€ș mirroring နဟင့á€ș canary rollouts ကိုသုံသနိုငá€șသညá€ș။

ဥချိနá€șကုနá€șá€•á€Œá€źá€ž ပဌနá€șစမá€șသပါ။

သို့သေဏá€ș bug မျဏသသညá€ș ကုဒá€șတလငá€ș á€Ąá€™á€Œá€Čမဆုံသပါ။ စာရငá€șှထá€Čá€™á€Ÿá€Ź "8 Distributed Computing á€Ąá€€á€Œá€±á€Źá€„á€șှ အထငá€șá€Ąá€™á€Œá€„á€șလလá€Čá€™á€Ÿá€Źá€žá€™á€Ÿá€Żá€™á€»á€Źá€ž"á€•á€‘á€™á€”á€±á€›á€Źá€á€œá€„á€ș "ကလနá€șရကá€șသညá€ș á€šá€Żá€¶á€€á€Œá€Šá€șစိတá€șချရသေဏ" á€Ÿá€°á€žá€±á€Ź á€™á€Ÿá€Źá€žá€šá€œá€„á€șá€žá€žá€±á€Źá€šá€Żá€¶á€€á€Œá€Šá€șချကá€șဖဌစá€șသညá€ș။ တကယá€șတေဏ့ ကလနá€șရကá€ș မဟုတá€ș á€šá€Żá€¶á€€á€Œá€Šá€șစိတá€șချရသေဏ၊ á€€á€Ąá€€á€Œá€±á€Źá€„á€șá€žá€€á€Œá€±á€Źá€„á€·á€ș ကျလနá€șုပá€șတို့သညá€ș ဥချိနá€șကုနá€șရနá€ș လိုအပá€șပါသညá€ș။ (ဥချိနá€șကုနá€șá€žá€œá€Źá€žá€žá€Šá€ș) ထပá€șá€€á€Œá€­á€Żá€žá€…á€Źá€žá€á€šá€ș။ (ထပá€șစမá€șသပါ).

သရုပá€șပဌရနá€șá€Ąá€á€œá€€á€ș ကျလနá€șုပá€șတို့သညá€ș á€á€°á€Šá€źá€žá€±á€Źá€•á€Œá€żá€”á€Źá€—á€Źá€žá€›á€Ÿá€„á€șှကို ဆကá€șလကá€șá€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€•á€«á€™á€Šá€ș။ sa-logic (buggy) နဟင့á€ș ကျလနá€șုပá€șတို့သညá€ș ကျပနá€șသပျကá€șကလကá€șá€™á€Ÿá€Żá€™á€»á€Źá€žá€–á€Œá€„á€·á€ș ကလနá€șရကá€ș၏ á€™á€šá€Żá€¶á€€á€Œá€Šá€șနိုငá€șá€™á€Ÿá€Żá€€á€­á€Ż ဥတုယူပါမညá€ș။

bug á€™á€»á€Źá€žá€–á€Œá€„á€·á€ș ကျလနá€șုပá€șá€á€­á€Żá€·áá€á€”á€șဆေဏငá€șá€™á€Ÿá€Żá€žá€Šá€ș á€á€Żá€¶á€·á€•á€Œá€”á€șရနá€ș 1/3 á€€á€Œá€Źá€™á€Œá€„á€·á€șမည့á€șá€Ąá€á€œá€„á€·á€șဥရေသ၊ Internal Server Error နဟင့á€ș ဥဆုံသသတá€șရနá€ș 1/3 á€Ąá€á€œá€„á€·á€șအလမá€șသနဟင့á€ș စဏမျကá€șá€”á€Ÿá€Źá€€á€­á€Ż ဥေဏငá€șမဌငá€șá€…á€œá€Źá€•á€Œá€”á€șပို့ရနá€ș 1/3 á€Ąá€á€œá€„á€·á€șá€Ąá€›á€±á€žá€›á€Ÿá€­á€žá€Šá€ș။

ထိုကá€Č့သို့သေဏ á€•á€Œá€żá€”á€Źá€™á€»á€Źá€žá သကá€șရေဏကá€șá€™á€Ÿá€Żá€€á€­á€Ż á€œá€»á€±á€Źá€·á€•á€«á€žá€…á€±á€›á€”á€șနဟင့á€ș á€žá€Żá€¶á€žá€…á€œá€Čá€žá€°á€™á€»á€Źá€žá€Ąá€á€œá€€á€ș á€˜á€á€•á€­á€Żá€™á€­á€Żá€€á€±á€Źá€„á€șသမလနá€șစေရနá€ș၊ ကျလနá€șုပá€șတို့ လုပá€șဆေဏငá€șနိုငá€șသညá€ș-

  1. ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€žá€Šá€ș á€á€Żá€¶á€·á€•á€Œá€”á€șရနá€ș 8 စကá€čကန့á€șထကá€ș á€•á€­á€Żá€€á€Œá€Źá€•á€«á€€ ဥချိနá€șကုနá€șá€žá€œá€Źá€žá€á€Œá€„á€șှ၊
  2. တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Ż မဥေဏငá€șမဌငá€șပါက ပဌနá€șလညá€șá€€á€Œá€­á€Żá€žá€…á€Źá€žá€•á€«á‹

ဥကေဏငá€șအထညá€șဖေဏá€șရနá€șá€Ąá€á€œá€€á€ș၊ ကျလနá€șုပá€șတို့သညá€ș ဥေဏကá€șပါ အရငá€șá€žá€Ąá€™á€Œá€…á€ș အဓိပá€čပါယá€șဖလင့á€șဆိုချကá€șကို á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€•á€«á€™á€Šá€ș (sa-logic-retries-timeouts-vs.yaml):

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: sa-logic
spec:
  hosts:
    - sa-logic
  http:
  - route: 
    - destination: 
        host: sa-logic
        subset: v1
      weight: 50
    - destination: 
        host: sa-logic
        subset: v2
      weight: 50
    timeout: 8s           # 1
    retries:
      attempts: 3         # 2
      perTryTimeout: 3s # 3

  1. တေဏငá€șသဆိုချကá€șá€Ąá€á€œá€€á€ș ဥချိနá€șကုနá€șဆုံသချိနá€șကို 8 စကá€čကန့á€ș သတá€șမဟတá€șထာှသညá€ș။
  2. တေဏငá€șသဆိုချကá€șမျဏသကို 3 ကဌိမá€șပဌနá€șá€€á€Œá€­á€Żá€žá€…á€Źá€žá€žá€Šá€ș။
  3. á€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Żá€Ąá€á€»á€­á€”á€ș 3 စကá€čကန့á€șထကá€șကျေဏá€șလလနá€șပါက á€€á€Œá€­á€Żá€žá€…á€Źá€žá€™á€Ÿá€Żá€á€­á€Żá€„á€șှ မဥေဏငá€șမဌငá€șဟု ယူဆပါသညá€ș။

á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€žá€°á€žá€Šá€ș 8 စကá€čကန့á€șထကá€ș ပိုစေဏင့á€șဆိုငá€șှရနá€ș မလိုအပá€șá€žá€±á€Źá€€á€Œá€±á€Źá€„á€·á€ș ပိုမိုကေဏငá€șသမလနá€șဥေဏငá€șá€•á€Œá€Żá€œá€Żá€•á€șခဌငá€șသဖဌစá€șá€•á€Œá€źá€ž ပျကá€șကလကá€șá€™á€Ÿá€Żá€™á€»á€Źá€žá€›á€Ÿá€­á€•á€«á€€ á€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Żá€Ąá€žá€…á€șá€žá€Żá€¶á€žá€€á€Œá€­á€™á€șá€•á€Œá€Żá€œá€Żá€•á€șကာ ဥေဏငá€șမဌငá€șá€žá€±á€Źá€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Żá€Ąá€á€œá€„á€·á€șအလမá€șှကို á€á€­á€Żá€žá€™á€Œá€„á€·á€șပေသမညá€șဖဌစá€șသညá€ș။

ဥေဏကá€șပါ command ဖဌင့á€ș အပá€șဒိတá€șလုပá€șထဏသသေဏ ဖလá€Č့စညá€șá€žá€™á€Ÿá€Żá€•á€Żá€¶á€…á€¶á€€á€­á€Ż á€Ąá€žá€Żá€¶á€žá€•á€Œá€Żá€•á€«-

$ kubectl apply -f resource-manifests/istio/retries/sa-logic-retries-timeouts-vs.yaml
virtualservice.networking.istio.io/sa-logic configured

အထကá€șတလငá€ș ဥေဏငá€șမဌငá€șသေဏ á€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Żá€Ąá€›á€±á€Ąá€á€œá€€á€ș á€á€­á€Żá€žá€œá€Źá€€á€Œá€±á€Źá€„á€șှ Grafana ဂရပá€șမျဏသကို စစá€șဆေသပါ-

Istio ဖဌင့á€ș microservices သို့ ပဌနá€șá€žá€œá€Źá€žá€›á€”á€ș။ အပိုငá€șှ 2
ဥချိနá€șကုနá€șခဌငá€șသနဟင့á€ș ထပá€șခါထပá€șခါ ပေါငá€șသထည့á€șá€•á€Œá€źá€žá€”á€±á€Źá€€á€ș ဥေဏငá€șမဌငá€șသေဏ á€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Żá€…á€Źá€›á€„á€șá€žá€‡á€šá€Źá€žá€™á€»á€Źá€žá€á€œá€„á€ș တိုှတကá€șá€™á€Ÿá€Żá€™á€»á€Źá€ž

နေဏကá€șအပိုငá€șှကို ဆကá€șá€™á€žá€œá€Źá€žá€á€„á€ș (á€’á€«á€™á€Ÿá€™á€Ÿá€Żá€á€ș ဆေဏငá€șသပါသရá€Č့ နေဏကá€șအပိုငá€șá€žá€Ąá€á€œá€€á€ș၊ á€˜á€Źá€€á€Œá€±á€Źá€„á€·á€șလá€Čဆိုတေဏ့ ဒြထá€Čá€™á€Ÿá€Ź လကá€șတလေ့စမá€șှသပá€șá€™á€Ÿá€Żá€á€œá€± á€›á€Ÿá€­á€á€±á€Źá€·á€™á€Ÿá€Ź မဟုတá€șဘူှ - ခန့á€șမဟနá€șသခဌေ á€˜á€Źá€žá€Źá€•á€Œá€”á€șတယá€ș။), ဖျကá€ș sa-logic-buggy ဥေဏကá€șပါ command မျဏသကို run ခဌငá€șသဖဌင့á€ș VirtualService နဟင့á€ș

$ kubectl delete deployment sa-logic-buggy
deployment.extensions “sa-logic-buggy” deleted
$ kubectl delete virtualservice sa-logic
virtualservice.networking.istio.io “sa-logic” deleted

Circuit Breaker နဟင့á€ș Bulkhead ပုံစံမျဏသ

ကျလနá€șုပá€șတို့သညá€ș သင့á€șအာှ မိမိကိုယá€șကို ပဌနá€șလညá€șနာလနá€șá€‘á€°á€œá€Źá€…á€±á€›á€”á€ș ခလင့á€șá€•á€Œá€Żá€•á€±á€žá€žá€±á€Ź မိုကá€șခရိုဆာှဗစá€șá€—á€­á€žá€Żá€€á€Źá€á€œá€„á€ș á€Ąá€›á€±á€žá€€á€Œá€źá€žá€žá€±á€Źá€•á€Żá€¶á€…á€¶á€”á€Ÿá€…á€șá€á€Żá€Ąá€€á€Œá€±á€Źá€„á€șှ á€•á€Œá€±á€Źá€”á€±á€•á€«á€žá€Šá€ș။ (မိမိကိုယá€șကို á€€á€Żá€žá€á€Œá€„á€șှ) ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€™á€»á€Źá€žá‹

တိုကá€șနယá€șတနေ့ ("ဆာှကစá€șဖဌတá€șကိရိယာ") ကျနá€șသမဏရေသမကေဏငá€șှဟု ယူဆသေဏ ဝနá€șဆေဏငá€șá€™á€Ÿá€Żá€á€…á€șခု၏ ငပမဏတစá€șခုထံ ရေဏကá€șá€›á€Ÿá€­á€œá€Źá€žá€±á€Ź တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż ရပá€șတန့á€șရနá€șနဟင့á€ș á€žá€Żá€¶á€žá€…á€œá€Čá€žá€°á€™á€»á€Źá€žá တေဏငá€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż ထိုဝနá€șဆေဏငá€șá€™á€Ÿá€Żá ကေဏငá€șသမလနá€șá€žá€±á€Źá€Ąá€á€Œá€±á€Ąá€”á€±á€™á€»á€Źá€žá€žá€­á€Żá€· ပဌနá€șညလဟနá€șသနေချိနá€șတလငá€ș (ဥေဏငá€șမဌငá€șသေဏ á€á€Żá€¶á€·á€•á€Œá€”á€șá€™á€Ÿá€Ż ရာခိုငá€șá€”á€Ÿá€Żá€”á€șှကို တိုသစေသညá€ș)။ (မဟတá€șချကá€ș- á€„á€•á€™á€Źá€Ąá€Źá€žá€–á€Œá€„á€·á€ș á€•á€Żá€¶á€…á€¶á ဥသေသစိတá€șဖေဏá€șပဌချကá€șကို á€›á€Ÿá€Źá€á€œá€±á€·á€”á€­á€Żá€„á€șသညá€ș၊ ငပမဏ၊ á€’á€źá€™á€Ÿá€Ź.)

။ ("အပိုငá€șှပိုငá€șှ") ဝနá€șဆေဏငá€șá€™á€Ÿá€Ż á€á€»á€­á€Żá€·á€šá€œá€„á€șသချကá€șမျဏသကို စနစá€șတစá€șá€á€Żá€œá€Żá€¶á€žá€€á€­á€Ż ထိခိုကá€șစေခဌငá€șသမဟ ခလá€Čထုတá€șသညá€ș။ á€„á€•á€™á€Źá€Ąá€Źá€žá€–á€Œá€„á€·á€ș၊ Service B ပျကá€șá€žá€œá€Źá€žá€€á€Ź á€Ąá€á€Œá€Źá€žá€á€”á€șဆေဏငá€șá€™á€Ÿá€Ż (Service B ၏ client) သညá€ș Service B သို့ တေဏငá€șသဆိုချကá€șတစá€șá€á€Żá€•á€Œá€Żá€œá€Żá€•á€șá€•á€Œá€źá€ž ၎ငá€șှသညá€ș ၎ငá€șှ၏ thread pool ကိုကုနá€șá€†á€Żá€¶á€žá€…á€±á€•á€Œá€źá€ž á€Ąá€á€Œá€Źá€žá€žá€±á€Źá€á€±á€Źá€„á€șá€žá€†á€­á€Żá€™á€Ÿá€Żá€™á€»á€Źá€žá€€á€­á€Ż ဆေဏငá€șရလကá€șပေသနိုငá€șခဌငá€șှ (၎ငá€șသတို့သညá€ș Service B á€™á€Ÿá€™á€Ÿá€Żá€á€șလျဟငá€șပငá€ș)။ (မဟတá€șချကá€ș- á€„á€•á€™á€Źá€Ąá€Źá€žá€–á€Œá€„á€·á€ș á€•á€Żá€¶á€…á€¶á ဥသေသစိတá€șဖေဏá€șပဌချကá€șကို á€›á€Ÿá€Źá€á€œá€±á€·á€”á€­á€Żá€„á€șသညá€ș၊ ငပမဏ၊ á€’á€źá€™á€Ÿá€Ź.)

á€›á€Ÿá€Źá€–á€œá€±á€›á€œá€œá€šá€șá€€á€°á€žá€±á€Źá€€á€Œá€±á€Źá€„á€·á€ș á€€á€•á€Żá€¶á€…á€¶á€™á€»á€Źá€žá ဥကေဏငá€șအထညá€șဖေဏá€șá€™á€Ÿá€Żá€Ąá€žá€±á€žá€…á€­á€á€șဥချကá€șအလကá€șမျဏသကို ကျလနá€șုပá€șချနá€șလဟပá€șထဏသပါမညá€ș။ တရာှဝငá€șá€…á€Źá€›á€œá€€á€șစာတမá€șá€žá€•á€Œá€źá€žá€á€±á€Źá€· ဆေဏငá€șသပါသရá€Č့ နေဏကá€șအပိုငá€șá€žá€™á€Ÿá€Ź ဆလေသနလေသမယ့á€ș စစá€șမဟနá€șá€€á€Œá€±á€Źá€„á€șသဥထေဏကá€șအထာှနá€Č့ ခလင့á€șá€•á€Œá€Żá€á€»á€€á€șကို ကျလနá€șတေဏá€ș တကယá€șပဌချငá€șပါတယá€ș။

PS á€˜á€Źá€žá€Źá€•á€Œá€”á€șမဟ

ကျလနá€șုပá€șá€á€­á€Żá€·áá€˜á€œá€±á€Źá€·á€‚á€șတလငá€șလညá€șှဖတá€șပါ

source: www.habr.com

DDoS á€€á€Źá€€á€œá€šá€șရေသ၊ VPS VDS ဆဏဗဏမျဏသပါသည့á€ș ဆိုကá€șá€™á€»á€Źá€žá€Ąá€á€œá€€á€ș á€šá€Żá€¶á€€á€Œá€Šá€șစိတá€șချရသေဏ hosting ကို ဝယá€șယူပါ။ đŸ”„ DDoS á€€á€Źá€€á€œá€šá€șá€™á€Ÿá€ŻáŠ VPS VDS á€†á€Źá€—á€Źá€™á€»á€Źá€žá€•á€«á€›á€Ÿá€­á€žá€±á€Ź á€šá€Żá€¶á€€á€Œá€Šá€șစိတá€șချရသေဏ ဝဘá€șဆိုကá€ș hosting ကို ဝယá€șယူပါ | ProHoster