เบซเบกเบฒเบโเปเบซเบโ. เปเบ.:
เบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบเบทเบญเบเบเปเบฒเบเบงเปเบฒเบเบปเบเบเบงเบฒเบกเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒ (manifests เบชเปเบฒเบฅเบฑเบ Kubernetes เปเบฅเบฐ Istio) เบเบฒเบ repository
เบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบ
เบเปเบงเบ Istio, เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเปเปเบเบฐเบเบปเบเบขเบนเปเปเบเบเบธเปเบกเปเบเบทเปเบญเบชเบฐเปเบญเบ:
- เบเบณเบเบปเบเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบเปเบเบเบฒเบกเบดเบ: canary rollouts, เบเบฒเบเบเบปเบเบชเบญเบ A/B;
- เบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบ: เบเปเบฒเบเบเบฒเบเปเบฅเบฐเบชเบญเบเบเปเบญเบ, เบญเบตเบเปเบชเป hashes;
- เบเบฒเบโเบเบทเปเบโเบเบปเบงโเบซเบผเบฑเบโเบเบฒเบโเบเบฒเบโเบซเบผเบธเบโเบฅเบปเบโ: timeouts, retries, circuit breakers;
- เปเบเบเบเปเปเบเบปเบเบเปเบญเบ: เบเบฒเบเบเบฑเบเบเปเบฒ, เบเบฒเบเบฎเปเบญเบเบเปเบซเบผเบธเบเบฅเบปเบ, เปเบฅเบฐเบญเบทเปเบเป.
เปเบเบเบฐเบเบฐเบเบตเปเบเบปเบเบเบงเบฒเบกเบเบฑเบเบชเบทเบเบเปเป, เบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบซเบผเบปเปเบฒเบเบตเปเบเบฐเบเบทเบเบชเบฐเปเบเบเปเบเบเบเปเบฒเปเบเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบตเปเปเบฅเบทเบญเบเปเบเบฑเบเบเบปเบงเบขเปเบฒเบเปเบฅเบฐเปเบเบงเบเบงเบฒเบกเบเบดเบเปเบซเบกเปเบเบฐเบเบทเบเบเปเบฒเปเบเบเปเบฒ. เปเบเบงเบเบงเบฒเบกเบเบดเบเบเบฑเปเบเบเปเบฒเบงเบเปเบฒเบญเบดเบเบเบฐเปเบเบฑเบ DestinationRules
(เปเบเบฑเปเบ: เบเบปเบเบฅเบฐเบเบฝเบเบเปเบฝเบงเบเบฑเบเบเบนเปเบฎเบฑเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบ/เบเปเบฒเบฎเปเบญเบเบเป - เบเบฐเบกเบฒเบ transl.), เบเปเบงเบเบเบฒเบเบเปเบงเบเปเบซเบผเบทเบญเบเบตเปเบเบงเบเปเบฎเบปเบฒเปเบเบตเบเปเบเปเบเบฒเบเบเบปเบเบชเบญเบ A/B.
เบเบฒเบเบเบปเบเบชเบญเบ A/B: เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฒเบเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ
เบเบฒเบเบเบปเบเบชเบญเบ A/B เบเบทเบเบเปเบฒเปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบกเบตเบชเบญเบเบฎเบธเปเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ (เปเบเบเบเบปเบเบเบฐเบเบดเบเบงเบเบกเบฑเบเบกเบตเบเบงเบฒเบกเปเบเบเบเปเบฒเบเบเบฑเบเบเบฒเบเบชเบฒเบเบเบฒ) เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเบงเปเบฒเบญเบฑเบเปเบเบเบฐเบเบฑเบเบเบธเบเบเบฐเบชเบปเบเบเบฒเบเบเบญเบเบเบนเปเปเบเป. เบเบฑเปเบเบเบฑเปเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบตเบเบเบฒเบเบเบฑเบเบชเบญเบเบชเบฐเบเบฑเบเบเปเบญเบกเปเบเบฑเบเปเบฅเบฐเปเบเบฑเบเบเปเบฒ metrics.
เปเบเบทเปเบญเบเบฑเบเปเบเปเปเบงเบตเบเบฑเบเบเบตเบชเบญเบเบเบญเบ frontend, เบเปเบญเบเบเบฒเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบชเบฐเปเบเบเบเบฒเบเบเบปเบเบชเบญเบ A/B, เบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ kubectl apply -f resource-manifests/kube/ab-testing/sa-frontend-green-deployment.yaml
deployment.extensions/sa-frontend-green created
เบเบฒเบโเบเปเบฒโเปเบเป manifest เบชเปเบฒโเบฅเบฑเบโเบชเบฐโเบเบฑเบโเบชเบตโเบเบฝเบงโเปเบเบโเบเปเบฒเบโเบเบฑเบโเบขเบนเปโเปเบโเบชเบญเบโเบเปเบญเบโ:
- เบฎเบนเบเบเบฒเบเปเบกเปเบเบญเบตเบเปเบชเปเปเบเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ -
istio-green
, - เบเบฑเบเบกเบตเบเปเบฒเบเบเบทเป
version: green
.
เปเบเบทเปเบญเบเบเบฒเบเบเบฒเบเบเบฑเบเบเบฑเปเบเบเบฐเบเบดเบเบฑเบเบเบฑเบเบชเบญเบเบกเบตเบเปเบฒเบเบเบทเป app: sa-frontend
,เบเบฒเบเบฎเปเบญเบเบเปเปเบชเบฑเปเบเบเบฒเบเปเบเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ virtual sa-external-services
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ sa-frontend
, เบเบฐเบเบทเบเปเบญเบเปเบเบซเบฒเบเบธเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบกเบฑเบเปเบฅเบฐเบเบฒเบเปเบซเบผเบเบเบฐเบเบทเบเปเบเบเบขเบฒเบเบเปเบฒเบ
เบเปเปเบเบปเบเปเบเบฅเปเบเบตเปเบฎเปเบญเบเบเป
เบเปเปเบเบปเบเปเบเบฅเปเปเบซเบผเบปเปเบฒเบเบตเปเปเบเบทเปเบญเบเบเบฒเบเบเบงเบเบกเบฑเบเบเบทเบเบเบฑเปเบเบเบทเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเปเบงเบตเบเบฑเบเบเปเบฒเบเปเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบ. เปเบซเปเปเบเปเปเบเบงเปเบฒเบเบตเป:
$ 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.html
, เบเบฒเบเบฎเปเบญเบเบเปเบชเบฐเบเบฑเบเบซเบเบถเปเบเบเบญเบเปเบเบฅเปเบเบปเบเบเบตเป, เบชเบฒเบกเบฒเบเบเบทเบเบชเบปเปเบเปเบเบ load balancer เบเบฑเบ pods เบเบตเปเบกเบตเบชเบฐเบเบฑเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ, เบเปเบญเบเบเบตเป, เบชเปเบฒเบฅเบฑเบเปเบซเบเบเบปเบเบเบฐเปเบเปเบ, เปเบเบฅเปเบเบฑเปเบเบเปเบฒเบงเบเปเปเบกเบต. เบเบฑเปเบเบเบฑเปเบ, เปเบเบทเปเบญเปเบซเปเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเปเบฎเบฑเบเบงเบฝเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเปเบเปเบเปเบฒเบเบปเบเบเปเปเบเปเบฒเบเบฑเบ: "เปเบงเบตเบเบฑเบเบเบฝเบงเบเบฑเบเบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบตเปเปเบซเปเบเปเบฅเบดเบเบฒเบ index.html เบเบงเบเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบฒเบกเบเปเบฒเบฎเปเบญเบเบเปเบเปเปเปเบ".
เบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบเบตเปเบเบฑเปเบเบเปเบงเบเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบเบเบตเปเบญเบตเบเปเบชเป hash เบเบตเปเบชเบญเบเบเปเบญเบ (Consistent Hash Loadbalancing)... เปเบโเบเปโเบฅเบฐโเบเบตโเบเบตเป เบเบฒเบเบฎเปเบญเบเบเปเบเบฒเบเบฅเบนเบเบเปเบฒเบเบฝเบงเบเบฑเบเบเบทเบเบชเบปเปเบเปเบเบซเบฒเบเบปเบงเบขเปเบฒเบ backend เบเบฝเบงเบเบฑเบ, เบชเปเบฒเบฅเบฑเบเบเบธเบเบชเบปเบกเบเบฑเบเบเบตเปเบเปเบฒเบเบปเบเปเบงเปเบฅเปเบงเบเบซเบเปเบฒเบเบทเบเบเปเบฒเปเบเป - เบเบปเบงเบขเปเบฒเบ, เบซเบปเบง HTTP. เบเบฐเบเบดเบเบฑเบเปเบเบเปเบเป DestinationRules.
เบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฒเบ
เบซเบฅเบฑเบเบเบฒเบ เบเบฒเบเบเปเบฅเบดเบเบฒเบ Virtual เบชเบปเปเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเบซเบฒเบเปเบฅเบดเบเบฒเบเบเบตเปเบเปเบญเบเบเบฒเบ, เปเบเบเปเบเป DestinationRules เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเบเบปเบเบเบฐเปเบเบเบฒเบเบเบตเปเบเบฐเบเปเบฒเปเบเปเบเบฑเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเบเบตเปเบเปเบฒเบเบปเบเบชเปเบฒเบฅเบฑเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเป:
เบเบฒเบเบเบธเปเบกเบเบญเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเบเบฑเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ Istio
ะัะธะผะตัะฐะฝะธะต: เบเบปเบเบเบฐเบเบปเบเบเบญเบเบเบฑเบเบเบฐเบเบฒเบเบญเบ Istio เปเบเบเบฒเบเบเบฐเบฅเบฒเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบทเบเบเปเบฒเบชเบฐเปเบซเบเบตเบขเบนเปเบเบตเปเบเบตเปเปเบเบงเบดเบเบตเบเบตเปเบเปเบฒเบเบเปเปเบเบฒเบเปเบเบปเปเบฒเปเบ. เปเบเบทเปเบญเปเบซเปเบกเบตเบเบงเบฒเบกเบเบฑเบเปเบเบ, เบเบฒเบเบเบฑเบเบชเบดเบเปเบเบงเปเบฒเบเบปเบงเบขเปเบฒเบเปเบเบเบตเปเบเบฐเบชเบปเปเบเบเปเบฒเบฎเปเบญเบเบเปเปเบกเปเบเปเบฎเบฑเบเปเบเบ Envoy เปเบ Ingress Gateway เบเบตเปเปเบเปเบเปเบฒเบเบปเบเปเบงเปเปเบ CRD.
เบเปเบงเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฒเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบเปเบเบทเปเบญเปเบเป hashes เบเบตเปเบชเบญเบเบเปเบญเบ เปเบฅเบฐเบฎเบฑเบเบเบฐเบเบฑเบเบงเปเบฒเบเปเบฅเบดเบเบฒเบเบเบฝเบงเบเบฑเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบฑเบเบเบนเปเปเบเปเบเบฝเบงเบเบฑเบ. เบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเปเปเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบฅเบธเปเบเป (
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: sa-frontend
spec:
host: sa-frontend
trafficPolicy:
loadBalancer:
consistentHash:
httpHeaderName: version # 1
1 - hash เบเบฐเบเบทเบเบชเปเบฒเบเบเบทเปเบเปเบเบเบญเบตเบเปเบชเปเปเบเบทเปเบญเปเบเบเบญเบ HTTP header version
.
เบเบณเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบงเบเบเบณเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ kubectl apply -f resource-manifests/istio/ab-testing/destinationrule-sa-frontend.yaml
destinationrule.networking.istio.io/sa-frontend created
เบเบญเบเบเบตเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเปเบฒเบเบฅเบธเปเบกเบเบตเปเปเบฅเบฐเปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเบฒเบเปเบเปเบฎเบฑเบเปเบเบฅเปเบเบตเปเบเบทเบเบเปเบญเบเปเบกเบทเปเบญเบเปเบฒเบเบฅเบฐเบเบธเบชเปเบงเบเบซเบปเบง version
:
$ curl --silent -H "version: yogo" http://$EXTERNAL_IP/ | tr '"' 'n' | grep main
ะัะธะผะตัะฐะฝะธะต: เปเบเบทเปเบญเปเบเบตเปเบกเบกเบนเบเบเปเบฒเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบเปเบเบชเปเบงเบเบซเบปเบงเปเบฅเบฐเบเบปเบเบชเบญเบเบเบปเบเปเบเปเบฎเบฑเบเปเบเบเบเบปเบเปเบเบเบปเบงเบเปเบญเบเปเบงเบฑเบ, เบเปเบฒเบเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป
เปเบเบเบเบปเปเบงเปเบ, DestinationRules เบกเบตเบเบงเบฒเบกเบชเบฒเบกเบฒเบเปเบเบตเปเบกเปเบเบตเบกเปเบเบเบทเปเบเบเบตเปเบเบญเบเบเบฒเบเบเบธเปเบเบเปเบฝเบเบเบฒเบเปเบซเบผเบ - เบเบงเบเปเบเบดเปเบเบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบ
เบเปเบญเบเบเบตเปเบเบฐเบชเบถเบเบชเบฒ VirtualService เบเบทเปเบกเบญเบตเบ, เปเบซเปเบฅเบถเบ "เปเบงเบตเบเบฑเปเบเบชเบตเบเบฝเบง" เบเบญเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบฅเบฐเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบชเบฑเบเบเบญเบเบเบตเปเบชเบญเบเบเปเบญเบเบเบฑเบเปเบเบเบเบฒเบเปเบฅเปเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ 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 เปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ
เบเบฒเบเบฎเบปเปเบก (โเบเบฒเบโเบเปเบญเบโเบเบฑเบโ) เบซเบผเบท mirroring ("เบเบฒเบเบชเบฐเบเปเบญเบ") เปเบเปเปเบเบเปเบฅเบฐเบเบตเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบปเบเบชเบญเบเบเบฒเบเบเปเบฝเบเปเบเบเปเบเบเบฒเบเบเบฐเบฅเบดเบเปเบเบเบเปเปเบกเบตเบเบปเบเบเบฐเบเบปเบเบเปเปเบเบนเปเปเบเปเบชเบธเบเบเปเบฒเบ: เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบฎเบฑเบเบเปเปเบฒ ("เบเบฐเบเบปเบ") เบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบเบปเบงเบขเปเบฒเบเบเบตเบชเบญเบเบเบตเปเบกเบตเบเบฒเบเบเปเบฝเบเปเบเบเบเบตเปเบเปเบญเบเบเบฒเบ, เปเบฅเบฐเปเบเบดเปเบเบเบปเบเบชเบฐเบเปเบญเบ. เปเบงเบปเปเบฒเบเปเบฒเบเป, เบเบตเปเปเบกเปเบเปเบงเบฅเบฒเบเบตเปเปเบเบทเปเบญเบเบฎเปเบงเบกเบเบฒเบเบเบญเบเบเปเบฒเบเปเบฅเบทเบญเบเปเบญเบปเบฒเบเบฑเบเบซเบฒเบเบตเปเบชเปเบฒเบเบฑเบเบเบตเปเบชเบธเบเปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบเบฒเบเบฎเปเบญเบเบเปเบเบถเบเปเบเบฎเบนเบเปเบเบเบเบญเบเบเบตเปเบเบธเปเบเบเปเบญเบเปเบซเบเปเบเบตเปเบเปเปเบกเบตเปเบเบชเบฒเบกเบฒเบเบเบปเบเบเบงเบเบเบทเบเปเบเป.
เปเบเบทเปเบญเบเบปเบเบชเบญเบเบชเบฐเบเบฒเบเบฐเบเบฒเบเบเบตเปเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบซเปเบชเปเบฒเบเบเบปเบงเบขเปเบฒเบเบเบตเบชเบญเบเบเบญเบ SA-Logic เบเบฑเบเปเบกเบเปเบกเป (buggy
) เปเบเบโเบเบฒเบโเปเบฅเปเบโเบเปเบฒโเบชเบฑเปเบโเบเบฑเปเบโเบเปเปโเปเบโเบเบตเปโ:
$ kubectl apply -f resource-manifests/kube/shadowing/sa-logic-service-buggy.yaml
deployment.extensions/sa-logic-buggy created
เปเบฅเบฐเบเบญเบเบเบตเปเปเบซเปเบเปเบฒเปเบเบตเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเบธเบเบเบปเบงเบขเปเบฒเบเบเบตเปเบกเบต 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
, เบเบฑเปเบเบเบฑเปเบเบเบฒเบเบฎเปเบญเบเบเปเบเบฑเบเบซเบกเบปเบเบเบฐเบเบทเบเปเบเบเบขเบฒเบเปเบเบเบฑเบเบเบฒเบเบปเบงเบขเปเบฒเบเบเบฑเบเบซเบกเบปเบ:
... เปเบเปเบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเปเบซเปเบเบทเบเบชเบปเปเบเปเบเบซเบฒ v1 instances เปเบฅเบฐ mirrored เบเบฑเบ v2 instances:
เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฑเบเบฅเบธเปเบเปเปเบเบเบเปเบฒเบ VirtualService เบเบฐเบชเบปเบกเบเบฐเบชเบฒเบเบเบฑเบ DestinationRule, เบเปเบญเบเบเบตเปเบเบปเบเบฅเบฐเบเบฝเบเบเบฐเบเปเบฒเบเบปเบเบเบธเบเบเปเบญเบเปเบฅเบฐเปเบชเบฑเปเบเบเบฒเบเบเบญเบ VirtualService เปเบเบซเบฒเบเบธเบเบเปเบญเบเบชเบฐเปเบเบฒเบฐ.
เบเบฒเบเบเปเบฒเบเบปเบเบเปเบญเบเปเบเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบเบฒเบ
เบเบธเบเบเปเบญเบ (เบเบธเบเบเปเบญเบ) เบเบทเบเบเปเบฒเบเบปเบเปเบเบเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเปเปเบเบเบตเป (
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
- เปเบเบปเปเบฒเบเบฒเบ (
host
) เบเปเบฒเบเบปเบเบงเปเบฒเบเบปเบเบฅเบฐเบเบฝเบเบเบตเปเปเบเปเบเบฑเบเบเปเบฅเบฐเบเบตเบเบตเปเปเบชเบฑเปเบเบเบฒเบเปเบเบชเบนเปเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเบปเปเบฒเบเบฑเปเบsa-logic
; - เบซเบปเบงเบเปเป (
name
) subsets เบเบทเบเบเปเบฒเปเบเปเปเบเปเบงเบฅเบฒเบเบตเป routing เบเบฑเบ subset instances; - เบเปเบฒเบเบเบณเบเบฑเบ (
label
) เบเบณเบเบปเบเบเบนเปเบเบต-เบเปเบฒเบเบตเป instances เบเปเบญเบเบเบปเบเบเบฑเบเปเบเบทเปเบญเบเบฒเบเปเบเบฑเบเบชเปเบงเบเบซเบเบถเปเบเบเบญเบเบเบธเบเบเปเบญเบ.
เบเบณเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเปเบงเบเบเบณเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ kubectl apply -f resource-manifests/istio/shadowing/sa-logic-subsets-destinationrule.yaml
destinationrule.networking.istio.io/sa-logic created
เปเบเบเบฑเบเบเบธเบเบฑเบเบเบตเปเบเบธเบเบเปเบญเบเปเบเปเบเบทเบเบเปเบฒเบเบปเบ, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบชเบทเบเบเปเปเปเบฅเบฐเบเปเบฒเบซเบเบปเบเบเปเบฒ VirtualService เปเบเบทเปเบญเบเปเบฒเปเบเปเบเบปเบเบฅเบฐเบเบฝเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบทเปเบญ sa-logic เปเบเบทเปเบญเปเบซเปเบเบงเบเปเบเบปเบฒ:
- เบเบทเบเบชเบปเปเบเปเบเบซเบฒเบเบธเบเบเปเบญเบ
v1
, - เบชเบฐเบเปเบญเบเบเบฑเบเบเบธเบเบเปเบญเบ
v2
.
manifesto เบเปเปเปเบเบเบตเปเบญเบฐเบเบธเบเบฒเบเปเบซเปเบเปเบฒเบเบเบฑเบเบฅเบธเปเบเบเบเบฒเบเบเบญเบเบเปเบฒเบ (
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
เปเบซเปเปเบเบตเปเบกเบเบฒเบเปเบซเบผเบเปเบเบเบเบฒเบเปเบเบซเบฒเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ 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% เบเบญเบเบเบฒเบเบฎเปเบญเบเบเป, เปเบเปเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบฅเบงเปเบซเบผเบปเปเบฒเบเบตเปเบเปเปเบกเบตเบเบปเบเบเปเปเบเบนเปเปเบเปเบชเบธเบเบเปเบฒเบเบเปเบญเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบทเบเบเบญเบเบชเบฐเบซเบเบญเบเปเบเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเปเบฎเบฑเบเบงเบฝเบ.
เบเปเบฒเบเบญเบเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ sa-logic เบฎเบธเปเบเบเบตเปเปเบเบเบเปเบฒเบเบเบฑเบ
เบเบตเปเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเบฒเบญเบดเบเปเบเปเปเบซเบฑเบเบงเบดเบเบตเบเบฒเบ VirtualService เบเบทเบเบเปเบฒเปเบเปเบเบฑเบ Envoys เบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ: เปเบกเบทเปเบญ sa-web-app
เปเบฎเบฑเบโเปเบซเปโเบเปเบฒโเบฎเปเบญเบโเบชเบฐโเบซเบกเบฑเบโ sa-logic
, เบกเบฑเบเบเปเบฒเบ sidecar Envoy, เปเบเบดเปเบ - เบเปเบฒเบ VirtualService - เบเบทเบเบเบฑเปเบเบเปเบฒเปเบเบทเปเบญเบชเบปเปเบเปเบชเบฑเปเบเบเบฒเบเบเบฒเบเบฎเปเบญเบเบเปเปเบเบซเบฒเบเบธเบเบเปเบญเบ v1 เปเบฅเบฐเบชเบฐเบเปเบญเบเบเปเบฒเบฎเปเบญเบเบเปเปเบเบซเบฒเบเบธเบเบเปเบญเบ v2 เบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบ. sa-logic
.
เบเปเบญเบเบฎเบนเป, เปเบเบปเปเบฒเบญเบฒเบเบเบฐเบเบดเบเปเบฅเปเบงเบงเปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบ Virtual เปเบกเปเบเบเปเบฒเบเบเบฒเบ. เปเบเบเบฒเบเบเปเปเปเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบซเบเบฒเบเบกเบฑเบเปเบเบเบเปเบฒเบงเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเบฑเบเบเบดเปเบเปเบซเบเปเปเบเปเป.
Canary rollouts
Canary Deployment เปเบกเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเปเบเบตเบเบเบปเบงเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเปเบงเบตเบเบฑเบเปเปเปเปเบซเปเบเบฑเบเบเบนเปเปเบเปเบเบณเบเบงเบเปเปเบญเบเปเบถเปเบ. เบกเบฑเบเบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเปเบซเปเปเบเปเปเบเบงเปเบฒเบเปเปเบกเบตเบเบฑเบเบซเบฒเปเบเปเปเบเบเบฒเบเบเปเบญเบเบเบปเบงเปเบฅเบฐเบเบฝเบเปเบเปเบซเบผเบฑเบเบเบฒเบเบเบฑเปเบ, เบซเบกเบฑเปเบเปเบเปเบเบเบธเบเบเบฐเบเบฒเบ (เบเบฒเบเบเปเบญเบเบญเบญเบเบกเบฒ), เปเบเบเบขเบฒเบเบกเบฑเบเปเบซเปเบเบฑเบเบเบนเปเปเบเปเบญเบทเปเบเป.ะพเบเบนเปเบเบปเบกเปเบซเบเปเบเบงเปเบฒ.
เปเบเบทเปเบญเบชเบฐเปเบเบเปเบซเปเปเบซเบฑเบเบเบฒเบเปเบเบตเบเบเบปเบง canary, เบเบงเบเปเบฎเบปเบฒเบเบฐเบชเบทเบเบเปเปเปเบฎเบฑเบเบงเบฝเบเบเบฑเบเบเบธเบเบเปเบญเบ buggy
ั sa-logic
.
เบเปเปเปเบซเปเปเบชเบเปเบงเบฅเบฒเปเบเปเบฅเบทเปเบญเบเปเบฅเบฑเบเปเบเปเบญเบเป เปเบฅเบฐเบชเบปเปเบเบเบนเปเปเบเป 20% เปเบเบซเบฒเปเบงเบตเบเบฑเบเบเบตเปเบกเบตเบเปเปเบเบปเบเบเปเบญเบ (เบญเบฑเบเบเบตเปเบเบฐเบชเบฐเปเบเบเปเบเบดเบเบเบฒเบเปเบเบตเบเบเบปเบง canary เบเบญเบเบเบงเบเปเบฎเบปเบฒ), เปเบฅเบฐ 80% เบเบตเปเบเบฑเบเปเบซเบผเบทเบญเปเบกเปเบเปเบซเปเบเปเบฅเบดเบเบฒเบเบเบปเบเบเบฐเบเบด. เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เปเบซเปเปเบเป VirtualService เบเปเปเปเบเบเบตเป (
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
เบเปเบงเบเบเปเบฒเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ 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 rollouts: เปเบเบเปเบฅเบฐเบเบตเบเบตเป, เบเบงเบเปเบฎเบปเบฒเปเบเปเบฎเบฑเบเปเบเบเบเบปเบเบเบฐเบเบปเบเบเบตเปเบญเบฒเบเปเบเบตเบเบเบทเปเบเบเบญเบเบเบฑเบเบซเบฒเบเบฑเบ 20% เบเบญเบเบเบทเปเบเบเบฒเบเบเบนเปเปเบเป. เบญเบฑเบเบชเบฐเบเบฑเบ! เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเบเบธเบเปเบเปเบฅเบฐเบเบตเปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเปเปเปเบเปเปเบเบงเปเบฒเบฅเบฐเบซเบฑเบเบเบญเบเบเบงเบเปเบฎเบปเบฒ (เปเบเบเปเบฒเบชเบฑเบเบเปเบฒเบเปเบญเบทเปเบเป - เบชเบฐเปเบซเบกเบต ...), เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบเบเปเบฒเปเบเป mirroring เปเบฅเบฐ canary rollouts.
เปเบปเบเปเบงเบฅเบฒ เปเบฅเบฐเบเบฐเบเบฒเบเบฒเบกเปเปเป
เปเบเปเบเปเปเบเบปเบเบเปเบญเบเบเปเปเบชเบฐเปเบซเบกเบตเปเบเบชเบดเปเบเบชเบธเบเปเบเบฅเบฐเบซเบฑเบ. เปเบเบเบฑเบเบเบตเบฅเบฒเบเบเบทเปเบเบฒเบ "
เบชเปเบฒโเบฅเบฑเบโเบเบฒเบโเบชเบฒโเบเบดเบโเบเบงเบโเปเบฎเบปเบฒโเบเบฐโเบชเบทเบโเบเปเปโเบเปเบฒโเปเบเปโเบชเบฐโเบเบฑเบโเบเบฑเบโเบซเบฒโเบเบฝเบงโเบเบฑเบโ sa-logic
(buggy
), เปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเบฅเบญเบเบเบงเบฒเบกเบเปเปเบซเบเปเบฒเปเบเบทเปเบญเบเบทเบเบญเบเปเบเบทเบญเบเปเบฒเบเบเบตเปเบกเบตเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเปเบเบเบชเบธเปเบก.
เปเบซเปเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบญเบเบเบงเบเปเบฎเบปเบฒเบเบฑเบเปเบกเบเปเบกเปเบกเบตเปเบญเบเบฒเบ 1/3 เปเบเปเปเบงเบฅเบฒเบเบปเบเปเบเบตเบเปเบเบเบตเปเบเบฐเบเบญเบเบชเบฐเบซเบเบญเบ, 1/3 เปเบญเบเบฒเบเบเบตเปเบเบฐเบชเบดเปเบเบชเบธเบเบเปเบงเบเบเบงเบฒเบกเบเบดเบเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบฒเบเปเบ, เปเบฅเบฐเปเบญเบเบฒเบ 1/3 เบเบญเบเบเบฒเบเบเบฑเบเบเบทเบเบซเบเปเบฒเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบ.
เปเบเบทเปเบญเบซเบผเบธเบเบเปเบญเบเบเบปเบเบเบฐเบเบปเบเบเบญเบเบเบฑเบเบซเบฒเบเบฑเปเบเบเปเบฒเบงเปเบฅเบฐเปเบฎเบฑเบเปเบซเปเบเบตเบงเบดเบเบเบตเบเบถเปเบเบชเปเบฒเบฅเบฑเบเบเบนเปเปเบเป, เบเบงเบเปเบฎเบปเบฒเบชเบฒเบกเบฒเบ:
- เปเบเบตเปเบกเบเบฒเบเปเบปเบเปเบงเบฅเบฒเบเปเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบเปเบเปเปเบงเบฅเบฒเบเบปเบเบเบงเปเบฒ 8 เบงเบดเบเบฒเบเบตเปเบเบทเปเบญเบเบญเบเบชเบฐเปเบญเบ,
- เบฅเบญเบเบญเบตเบเบเบฑเปเบเบเปเบฒเบเบฒเบเบฎเปเบญเบเบเปเบฅเบปเปเบกเปเบซเบฅเบง.
เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเบฐเบเปเบฒเปเบเปเบเปเบฒเบเบดเบเบฒเบกเบเบฑเบเบเบฐเบเบฒเบเบญเบเบเปเปเปเบเบเบตเป (
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
- เปเบงเบฅเบฒเบซเบกเบปเบเปเบงเบฅเบฒเบชเปเบฒเบฅเบฑเบเบเบฒเบเบฎเปเบญเบเบเปเปเบกเปเบเบเบทเบเบเปเบฒเบเบปเบเปเบเบฑเบ 8 เบงเบดเบเบฒเบเบต;
- เบเบฒเบเบฎเปเบญเบเบเปเปเบกเปเบ retried 3 เปเบเบทเปเบญ;
- เปเบฅเบฐเบเบงเบฒเบกเบเบฐเบเบฒเบเบฒเบกเปเบเปเบฅเบฐเบเบปเบเปเบกเปเบเบเบทเบงเปเบฒเบเปเปเบชเปเบฒเปเบฅเบฑเบเบเปเบฒเปเบงเบฅเบฒเบเบญเบเบชเบฐเบซเบเบญเบเปเบเบตเบ 3 เบงเบดเบเบฒเบเบต.
เบเบตเปเปเบกเปเบเบเบฒเบเปเบเบตเปเบกเบเบฐเบชเบดเบเบเบดเบเบฒเบเปเบเบฒเบฐเบงเปเบฒเบเบนเปเปเบเปเบเบฐเบเปเปเบเปเบฒเปเบเบฑเบเบเปเบญเบเบฅเปเบเปเบฒเบซเบผเบฒเบเบเบงเปเบฒ 8 เบงเบดเบเบฒเบเบตเปเบฅเบฐเบเบงเบเปเบฎเบปเบฒเบเบฐเบเบฐเบเบฒเบเบฒเบกเปเบซเบกเปเบชเบฒเบกเบเบฑเปเบเปเบเบทเปเบญเปเบซเปเบกเบตเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเปเบเบเปเบฅเบฐเบเบตเบเบญเบเบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบฅเบง, เปเบเบตเปเบกเปเบญเบเบฒเบเบเบญเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ.
เบเบณเปเบเปเบเบฒเบเบเบฑเปเบเบเปเบฒเบเบตเปเบญเบฑเบเปเบเบเปเบฅเปเบงเบเปเบงเบเบเบณเบชเบฑเปเบเบเปเปเปเบเบเบตเป:
$ kubectl apply -f resource-manifests/istio/retries/sa-logic-retries-timeouts-vs.yaml
virtualservice.networking.istio.io/sa-logic configured
เปเบฅเบฐเบเบงเบเปเบเบดเปเบเปเบเบเบฒเบ Grafana เบงเปเบฒเบเปเบฒเบเบงเบเบเปเบฒเบเบญเบเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเปเบเปเปเบเบตเปเบกเบเบถเปเบเบเปเบฒเบเปเบเบดเบ:
เบเบฒเบเบเบฑเบเบเบธเบเบชเบฐเบเบดเบเบดเบเบฒเบเบเบญเบเปเบเปเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบเบซเบผเบฑเบเบเบฒเบเปเบเบตเปเบกเบเบฒเบเบซเบกเบปเบเปเบงเบฅเบฒเปเบฅเบฐเบเบฒเบเบเบฐเบเบฒเบเบฒเบกเปเบซเบกเป
เบเปเบญเบเบเบตเปเบเบฐเบเปเบฒเบงเปเบเบชเบนเปเบเบฒเบเบเปเปเปเบ (เบซเบผเบทเปเบเบเบเบตเปเบเบฐ, เปเบเบชเปเบงเบเบเปเปเปเบเบเบญเบเบเบปเบเบเบงเบฒเบก, เปเบเบฒเบฐเบงเปเบฒเปเบเบเบตเปเบเบฐเบเปเปเบกเบตเบเบฒเบเบเบปเบเบฅเบญเบเบเบฐเบเบดเบเบฑเบเบซเบผเบฒเบ - เบเบฐเบกเบฒเบ. transl.), เบฅเบถเบ sa-logic-buggy
เปเบฅเบฐ 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
เบเบธเบเบเบปเบงเบเบฑเบเบงเบปเบเบเบญเบ เปเบฅเบฐ เบฎเบนเบเปเบเบ Bulkhead
เบเบงเบเปเบฎเบปเบฒเบเปเบฒเบฅเบฑเบเปเบงเบปเปเบฒเบเปเบฝเบงเบเบฑเบเบชเบญเบเบฎเบนเบเปเบเบเบเบตเปเบชเปเบฒเบเบฑเบเปเบเบชเบฐเบเบฒเบเบฑเบเบเบฐเบเบฐเบเปเบฒเบเบธเบฅเบฐเบเบฒเบเบเบตเปเบเปเบงเบเปเบซเปเบเปเบฒเบเบชเบฒเบกเบฒเบเบเบฑเบเบฅเบธเบเบฒเบเบเบทเปเบเบเบปเบงเบเปเบงเบเบเบปเบเปเบญเบ (เบเบฒเบโเบเบดเปเบโเบเบปเบงโเบเปเบงเบโเบเบปเบโเปเบญเบโ) เบเบฒเบเบเปเบฅเบดเบเบฒเบ.
Circuit Breaker ("เปเบเบทเปเบญเบเบเบฑเบเบงเบปเบเบเบญเบ") เบเบทเบเบเปเบฒเปเบเปเปเบเบทเปเบญเบขเบธเบเบเบฒเบเบฎเปเบญเบเบเปเบเบตเปเปเบเบปเปเบฒเบกเบฒเปเบเบเบปเบงเบขเปเบฒเบเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบเบทเบงเปเบฒเบเปเปเบเบตเปเบฅเบฐเบเบทเปเบเบเบนเบกเบฑเบเปเบเบเบฐเบเบฐเบเบตเปเบเปเบฒเบฎเปเบญเบเบเปเบเบญเบเบฅเบนเบเบเปเบฒเบเบทเบเปเบญเบเปเบเบซเบฒเบเบปเบงเบขเปเบฒเบเบเบตเปเบกเบตเบชเบธเบเบฐเบเบฒเบเบเบตเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฑเปเบ (เปเบเบดเปเบเปเบเบตเปเบกเบญเบฑเบเบเบฒเบชเปเบงเบเบเบญเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบตเปเบเบฐเบชเบปเบเบเบปเบเบชเปเบฒเปเบฅเบฑเบ). (เบซเบกเบฒเบเปเบซเบ: เบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบฎเบนเบเปเบเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเป, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ,
Bulkhead ("เบเบฒโเบเบดโเบเบฑเบโ"โ) isolates เบเบงเบฒเบกเบฅเบปเปเบกเปเบซเบผเบงเบเบญเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบฒเบเบเบปเบเบเบฐเบเบปเบเบเปเปเบฅเบฐเบเบปเบเบเบฑเบเบซเบกเบปเบ. เบเบปเบงเบขเปเบฒเบเปเบเบฑเปเบ, เบเบฒเบเบเปเบฅเบดเบเบฒเบ B เบเบทเบเบเปเบฒเบฅเบฒเบเปเบฅเบฐเบเบฒเบเบเปเบฅเบดเบเบฒเบเบญเบทเปเบ (เบฅเบนเบเบเปเบฒเบเบญเบเบเปเบฅเบดเบเบฒเบ B) เปเบฎเบฑเบเบเปเบฒเบฎเปเบญเบเบเปเปเบซเปเบเบฑเบเบเปเบฅเบดเบเบฒเบ B, เปเบเบดเปเบเปเบฎเบฑเบเปเบซเปเบกเบฑเบเบซเบกเบปเบเปเบเปเบเบเบธเปเบกเบเบฐเบเบนเปเบเบญเบเบกเบฑเบเปเบฅเบฐเบเปเปเบชเบฒเบกเบฒเบเปเบซเปเบเปเบฅเบดเบเบฒเบเบเปเบฒเบฎเปเบญเบเบเปเบญเบทเปเบเปเบเป (เปเบเบดเบเปเบกเปเบเบงเปเบฒเบเบงเบเปเบเบปเบฒเบเปเปเปเบเปเบกเบฒเบเบฒเบเบเปเบฅเบดเบเบฒเบ B). (เบซเบกเบฒเบเปเบซเบ: เบฅเบฒเบเบฅเบฐเบญเบฝเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบฎเบนเบเปเบเบเบชเบฒเบกเบฒเบเบเบปเบเปเบเป, เบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบปเบเบเบปเบงเบขเปเบฒเบ,
เบเปเบฒโเบเบฐโเปเบเบปเปเบฒโเบเบฐโเบเบปเบโเปเบงเบฑเปเบโเบฅเบฒเบโเบฅเบฐโเบญเบฝเบโเบเบฒเบโเบเบฐโเบเบดโเบเบฑเบโเบเบญเบโเบฎเบนเบโเปเบเบโเปเบซเบผเบปเปเบฒโเบเบตเปโเปเบเบฒเบฐโเบงเปเบฒโเบเบงเบโเปเบเบปเบฒโเปเบเบปเปเบฒโเปเบกเปเบโเบเปเบฒเบโเบเบตเปโเบเบฐโเบเบญเบโเบซเบฒโเปเบโ
PS เบเบฒเบเบเบฑเบเปเบ
เบญเปเบฒเบเบเบฑเบเบขเบนเปเปเบ blog เบเบญเบเบเบงเบเปเบฎเบปเบฒ:
- "เบเบฑเบเบเบทเบเปเบเบเปเบญเบเบเปเบฅเบดเบเบฒเบเบเบธเบฅเบฐเบเบฒเบเบเบฑเบ Istio":
เบเบฒเบโเบเบต 1 (เบเบฒเบโเบเปเบฒโเบชเบฐโเปเบซเบเบตโเบเปเบฝเบงโเบเบฑเบโเบฅเบฑเบโเบชเบฐโเบเบฐโเบเบปเปเบโเบเปโ) ,เบเบฒเบโเบเบต 3 (เบเบฒเบโเบเบงเบโเบชเบญเบโเปเบฅเบฐโเบญเบฐโเบเบธโเบเบฒเบโ) ; - ยซ
Conduit - เบเบฒเบซเบเปเบฒเบเบเบฒเบเบเปเบฅเบดเบเบฒเบเบเบตเปเบกเบตเบเปเปเบฒเบซเบเบฑเบเปเบเบปเบฒเบชเปเบฒเบฅเบฑเบ Kubernetes " - ยซ
เบเบฒเปเปเบฒเบเบเปเบฅเบดเบเบฒเบเปเบกเปเบเบซเบเบฑเบ เปเบฅเบฐเปเบเบฑเบเบซเบเบฑเบเบเปเบญเบเบเบถเปเบเบเปเบญเบเบเบฒเบเบกเบฑเบ [เบชเบณเบฅเบฑเบเปเบญเบฑเบเบเบฅเบดเปเบเบเบฑเบเบเบฅเบฒเบงเบเบฑเบเบเปเบฅเบดเบเบฒเบเบเบธเบฅเบฐเบเบฒเบ]? ".
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com