เดเดฐเต เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดฆเตเดถเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด Istio+Kiali เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต
เด เดชเดฐเดฎเตเดชเดฐเดฏเดฟเดฒเต เดฒเตเดเดจเดเตเดเตพ
เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเต เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด #1: Gitlab CI เดเตเดฌเตผเดจเตเดฑเตเดฑเดธเดฟเดฒเต เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด #2: เดเตผเดเต เดฑเตเตพเดเดเตเดเตเดเตพ - (เด เดฒเตเดเดจเด)
- Jenkins-X Istio Flagger เดเดชเดฏเตเดเดฟเดเตเดเตเดณเตเดณ เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด
เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด
เดจเดฟเดเตเดเตพ เดตเดพเดฏเดฟเดเตเดเตเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเต
เดเดธเตเดคเต
เด เดฒเตเดเดจเด เดตเดพเดฏเดฟเดเตเดเตเดจเตเดจเดคเดฟเดฒเตเดเต เดจเดฟเดเตเดเตพเดเตเดเต เดเดธเตเดคเดฟเดฏเต เดเดจเตเดคเดพเดฃเตเดจเตเดจเต เดเดคเดฟเดจเดเด เด
เดฑเดฟเดฏเดพเดฎเตเดจเตเดจเต เดเดเตเดเตพ เด
เดจเตเดฎเดพเดจเดฟเดเตเดเตเดจเตเดจเต. เดเดฒเตเดฒเตเดเตเดเดฟเตฝ, เดจเดฟเดเตเดเตพเดเตเดเต เด
เดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เดตเดพเดฏเดฟเดเตเดเดพเด
เดเตเดธเตเดฑเตเดฑเตเดเตพเดเตเดเตเดณเตเดณ เด เดชเตเดเตเดท
เดเดฐเต เดชเตเดกเดฟเดฒเตเด เดฐเดฃเตเดเต เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เด เดเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต: เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเด istio-proxy.
เดซเตเดฐเดฃเตเดเตโเดเตปโเดเตปโเดเดฟโเดเตปโเดเดเตเดธเต, เดฌเดพเดเตเดเตโเดเตปเดกเต เดชเตเดคเตเดคเตบ เดชเตเดกเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเตเดชเตเดชเด เดเดเตเดเตพ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเตเดธเตเดฑเตเดฑเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเด. nginx เดชเตเดกเต เดเดฐเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเด เดฌเดพเดเตเดเตเตปเดกเต เดชเตเดกเดฟเดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตเดเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเดฐเต เดชเตเดฐเตเดเตเดธเดฟ เดเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเด. เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฏเดพเดฎเตเดเดณเดฟเตฝ เดเดพเดฃเดพเด:
เดเตเดธเตเดฑเตเดฑเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดตเดฏเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต
เดจเดฟเดเตเดเตพเดเตเดเต เดเดจเตเดฑเต เดฎเดพเดคเตเด เดชเดฟเดจเตเดคเตเดเดฐเดพเดจเตเด เด เดเตเดธเตเดฑเตเดฑเต เดเดชเตเดฒเดฟเดเตเดเตเดทเตป เดธเตเดตเดฏเด เดเดชเดฏเตเดเดฟเดเตเดเดพเดจเตเด เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดฎเตเดฃเตเดเตเดเตเดเดฟเตฝ, เดเดพเดฃเตเด
เดชเตเดฐเดพเดฐเดเดญ เดตเดฟเดจเตเดฏเดพเดธเด
เดเดเตเดเตพ เดเดฆเตเดฏ เดตเดฟเดจเตเดฏเดพเดธเด เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดเตเดเดณเตเดเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดฑเต เดชเตเดกเตเดเตพเดเตเดเต 2 เดเดฃเตเดเตเดฏเตเดจเดฑเตเดเตพ เดฎเดพเดคเตเดฐเดฎเตเดฏเตเดณเตเดณเตเดตเตเดจเตเดจเต เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต, เด เดคเดพเดฏเดคเต, เดเดธเตเดคเดฟเดฏเต เดธเตเดกเตเดเดพเตผ เดเดชเตเดชเตเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจเต:
เดจเตเดฏเดฟเดเดธเตโเดชเตเดฏเตโเดธเดฟเตฝ เดเดธเตเดคเดฟเดฏเต เดเตเดฑเตเดฑเตโเดตเต เดฒเตเดกเตเดฌเดพเดฒเตปเดธเดฑเตเด เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต istio-system
:
เดเตเดฐเดพเดซเดฟเดเต เดเดจเดฑเตเดทเตป
เดซเตเดฐเดฃเตเดเตโเดเตปเดกเต เดชเตเดกเตเดเตพ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเตเด เดฌเดพเดเตเดเตเตปเดกเต เดชเตเดกเตเดเดณเดฟเดฒเตเดเตเดเต เดซเตเตผเดตเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดเตเดฐเดพเดซเดฟเดเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป เดเดเตเดเตพ เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดเดชเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเด:
while true; do curl -s --resolve 'frontend.istio-test:80:35.242.202.152' frontend.istio-test; sleep 0.1; done
เดเดเตเดเดณเตเด เดเตเตผเดเตเดเตเด frontend.istio-test
เดเดเตเดเดณเตเดเต เดนเตเดธเตเดฑเตเดฑเต เดซเดฏเดฒเดฟเดฒเตเดเตเดเต.
เดเดฟเดฏเดพเดฒเดฟ เดตเดดเดฟ เดฎเตเดทเต เดเดพเดฃเตเด
เดเตเดฐเตเดฏเตโเดธเดฟเดเดเต, เดเตเดฐเดพเดซเดพเดจ, เดชเตเดฐเตเดฎเดฟเดคเตเดฏเตเดธเต, เดเดฟเดฏเดพเดฒเดฟ เดเดจเตเดจเดฟเดตเดฏเตโเดเตเดเตเดชเตเดชเด เดเดเตเดเตพ เดเตเดธเตเดฑเตเดฑเต เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเด เดเดธเตเดคเดฟเดฏเตเดฏเตเด เดเตปเดธเตเดฑเตเดฑเดพเตพ เดเตเดฏเตเดคเต (เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพเดเตเดเต เดเตเดตเดเต เดเดพเดฃเตเด).
istioctl dashboard kiali # admin:admin
เดฎเตเดทเดฟเดฒเตเดเต เดจเดฟเดฒเดตเดฟเดฒเต เดเตเดฐเดพเดซเดฟเดเตเดเดฟเดจเต เดเดฟเดฏเดพเดฒเดฟ เดฆเตเดถเตเดฏเดตเตฝเดเตเดเดฐเดฟเดเตเดเตเดจเตเดจเต
เดเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดเตเดฐเดพเดซเดฟเดเตเดเดฟเดจเตเดฑเต 100% เดซเตเดฐเดฃเตเดเตโเดเตปเดกเต เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเตเด เดคเตเดเตผเดจเตเดจเต v1 เดฒเตเดฌเดฒเตเดณเตเดณ เดซเตเดฐเดฃเตเดเตโเดเตปเดกเต เดชเตเดกเตเดเดณเดฟเดฒเตเดเตเดเตเด เดชเตเดเตเดจเตเดจเต, เดเดพเดฐเดฃเด เดเดเตเดเตพ เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ nginx เดชเตเดฐเตเดเตเดธเดฟ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เด เดคเต เดฌเดพเดเตเดเตเตปเดกเต เดธเตเดตเดจเดคเตเดคเดฟเดฒเตเดเตเดเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดฑเตเดกเดฏเดฑเดเตโเดเตเดเตเดฏเตเดฏเตเดจเตเดจเต, เด เดคเต เด เดตเดฏเต เดฌเดพเดเตเดเตเตปเดกเต เดชเตเดกเตเดเดณเดฟเดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตโเดเตเดเตเดฏเตเดฏเตเดจเตเดจเต. เดฒเตเดฌเดฒเดฟเดจเตเดชเตเดชเด v1.
เดเดฟเดฏเดพเดฒเดฟ เดเดธเตเดคเดฟเดฏเตเดฏเตโเดเตเดเตเดชเตเดชเด เดฎเดฟเดเดเตเด เดฐเตเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดเดฏเตเด เดฌเตเดเตโเดธเต เดเตเดฏเตโเดค เดฎเตเดทเต เดฑเตเตปเดกเดฑเดฟเดเดเต เดชเดฐเดฟเดนเดพเดฐเด เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดเตเดฐเตป.
เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด
เดเดเตเดเดณเตเดเต เดฌเดพเดเตเดเตเตปเดกเดฟเตฝ เดเดคเดฟเดจเดเด เดฐเดฃเตเดเต k8s เดตเดฟเดจเตเดฏเดพเดธเดเตเดเดณเตเดฃเตเดเต, เดเดจเตเดจเต v1-เดจเตเด เดเดจเตเดจเต v2-เดจเตเด. เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดถเดคเดฎเดพเดจเด เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ v2-เดฒเตเดเตเดเต เดเตเดฎเดพเดฑเดพเตป เดจเดฎเตเดเตเดเต เดเดชเตเดชเตเตพ เดเดธเตเดคเดฟเดฏเตเดฏเตเดเต เดชเดฑเดฏเตเดฃเตเดเดคเตเดฃเตเดเต.
เดเดเตเดเด 1: 10%
เดเดเตเดเตพ เดเตเดฏเตเดฏเตเดฃเตเดเดคเต เดตเตเตผเดเตเดตเตฝ เดธเตผเดตเตเดธเดฟเดจเตเดฑเต เดญเดพเดฐเด เดเตเดฐเดฎเตเดเดฐเดฟเดเตเดเตเด เดเดจเตเดจเดคเดพเดฃเต
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: backend
namespace: default
spec:
gateways: []
hosts:
- "backend.default.svc.cluster.local"
http:
- match:
- {}
route:
- destination:
host: backend.default.svc.cluster.local
subset: v1
port:
number: 80
weight: 90
- destination:
host: backend.default.svc.cluster.local
subset: v2
port:
number: 80
weight: 10
10% เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ v2-เดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตโเดเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเต เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต.
เดเดเตเดเด 2: 50%
เดเดชเตเดชเตเตพ เดเดคเต 50% เดเดฏเดฟ เดเดฏเตผเดคเตเดคเดฟเดฏเดพเตฝ เดฎเดคเดฟ:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: backend
namespace: default
spec:
...
- destination:
host: backend.default.svc.cluster.local
subset: v1
port:
number: 80
weight: 50
- destination:
host: backend.default.svc.cluster.local
subset: v2
port:
number: 80
weight: 50
เดเดเตเดเด 3: 100%
เดเดชเตเดชเตเตพ เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด เดชเตเตผเดคเตเดคเดฟเดฏเดพเดฏเดคเดพเดฏเดฟ เดเดฃเดเตเดเดพเดเตเดเดพเด เดเตเดเดพเดคเต เดเดฒเตเดฒเดพ เดเตเดฐเดพเดซเดฟเดเตเดเตเด v2-เดฒเตเดเตเดเต เดฑเตเดกเดฏเดฑเดเตโเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต:
เดเดพเดจเดฑเดฟเดฏเต เดจเตเดฐเดฟเดเตเดเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต
เดเดเตเดเตพ เดเดชเตเดชเตเตพ เดเดฒเตเดฒเดพ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเตเดฏเตเด 2% v10 เดฌเดพเดเตเดเตเตปเดกเดฟเดฒเตเดเตเดเต เด เดฏเดเตเดเตเดตเตเดจเตเดจเต เดชเดฑเดฏเดพเด. เดจเดฎเตเดฎเตพ เดชเตเดฐเดคเตเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเต เดชเตเดฒเต เดเดฒเตเดฒเดพเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเตเดตเตเดจเตเดจเต เดเดฑเดชเตเดชเดพเดเตเดเดพเตป v2 เดธเตเดตเดฎเตเดงเดฏเดพ เดชเดฐเตเดเตเดทเดฟเดเตเดเดฃเดฎเตเดเตเดเดฟเตฝ เดเดจเตเดคเต เดเตเดฏเตเดฏเตเด?
HTTP เดคเดฒเดเตเดเตเดเตเดเตเดเดณเต เด เดเดฟเดธเตเดฅเดพเดจเดฎเดพเดเตเดเดฟ เดจเดฎเตเดเตเดเต เดเดฐเต เดชเตเดฐเดคเตเดฏเตเด เดชเตเดฐเตเดคเตเดค เดจเดฟเดฏเดฎเด เดเตเตผเดเตเดเดพเตป เดเดดเดฟเดฏเตเด:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: backend
namespace: default
spec:
gateways: []
hosts:
- "backend.default.svc.cluster.local"
http:
- match:
- headers:
canary:
exact: "canary-tester"
route:
- destination:
host: backend.default.svc.cluster.local
subset: v2
port:
number: 80
weight: 100
- match:
- {}
route:
- destination:
host: backend.default.svc.cluster.local
subset: v1
port:
number: 80
weight: 90
- destination:
host: backend.default.svc.cluster.local
subset: v2
port:
number: 80
weight: 10
เดเดชเตเดชเตเตพ curl เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฎเตเดเตเดเต เดคเดฒเดเตเดเตเดเตเดเต เด เดฏเดเตเดเตเดเตเดฃเตเดเต เดเดฐเต v2 เด เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดฟเตผเดฌเดจเตเดงเดฎเดพเดเตเดเดพเด:
เดคเดฒเดเตเดเตเดเตเดเดฟเดฒเตเดฒเดพเดคเตเดค เด เดญเตเดฏเตผเดคเตเดฅเดจเดเตพ เดเดชเตเดชเตเดดเตเด 1/10 เด เดจเตเดชเดพเดคเดคเตเดคเดฟเตฝ เดจเดฏเดฟเดเตเดเดชเตเดชเตเดเตเด:
เดฐเดฃเตเดเต เดเดถเตเดฐเดฟเดค เดชเดคเดฟเดชเตเดชเตเดเตพเดเตเดเตเดณเตเดณ เดเดพเดจเดฑเดฟ
เดซเตเดฐเดฃเตเดเตโเดเตปเดกเดฟเดจเตเด เดฌเดพเดเตเดเตเตปเดกเดฟเดจเตเดฎเดพเดฏเดฟ เดจเดฎเตเดเตเดเต เดชเดคเดฟเดชเตเดชเต v2 เดเดณเตเดณ เดเดชเตเดทเตป เดเดชเตเดชเตเตพ เดเดเตเดเตพ เดชเดฐเดฟเดเดฃเดฟเดเตเดเตเด. เดฐเดฃเตเดเดฟเดจเตเด, เดเตเดฐเดพเดซเดฟเดเตเดเดฟเดจเตเดฑเต 10% v2-เดฒเตเดเตเดเต เดชเตเดเดฃเดฎเตเดจเตเดจเต เดเดเตเดเตพ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟ:
เดซเตเดฐเดฃเตเดเตโเดเตปเดกเต v1 เดเด v2 เดเด 1/10 เดฌเดพเดเตเดเตเตปเดกเต v1, v2 เดเดจเตเดจเต เด เดจเตเดชเดพเดคเดคเตเดคเดฟเตฝ เดซเตเตผเดตเตเดกเต เดเตเดฐเดพเดซเดฟเดเตเดเตเด เดเดเตเดเตพ เดเดพเดฃเตเดจเตเดจเต.
v2-เดจเต เด
เดจเตเดฏเตเดเตเดฏเดฎเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเดพเตฝ เดซเตเดฐเดฃเตเดเตโเดเตปเดกเต-v2-เตฝ เดจเดฟเดจเตเดจเต เดฌเดพเดเตเดเตเตปเดกเต-v1-เดฒเตเดเตเดเต เดฎเดพเดคเตเดฐเด เดเตเดฐเดพเดซเดฟเดเต เดซเตเตผเดตเตเดกเต เดเตเดฏเตเดฏเดฃเดฎเตเดเตเดเดฟเตฝ เดเดจเตเดคเตเดเตเดฏเตเดฏเตเด? เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดเดเตเดเตพ เดซเตเดฐเดฃเตเดเตโเดเตปเดกเดฟเดจเดพเดฏเดฟ 1/10 เด
เดจเตเดชเดพเดคเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเตเด, เดเดคเต เดเตผเดเตเดเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดฌเดพเดเตเดเตเตปเดกเต-v2-เดฒเตเดเตเดเต เดเดจเตเดคเต เดเตเดฐเดพเดซเดฟเดเตเดเดพเดฃเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเดคเต เดเดจเตเดจเดคเต เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเตเดจเตเดจเต. sourceLabels
:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: backend
namespace: default
spec:
gateways: []
hosts:
- "backend.default.svc.cluster.local"
http:
...
- match:
- sourceLabels:
app: frontend
version: v2
route:
- destination:
host: backend.default.svc.cluster.local
subset: v2
port:
number: 80
weight: 100
เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเต เดฒเดญเดฟเดเตเดเตเดจเตเดจเต:
เดฎเดพเดจเตเดตเตฝ เดเดพเดจเดฑเดฟ เดธเดฎเตเดชเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเดเตเดเตพ
ะ เดเดฆเตเดฏ เดญเดพเดเด เดฐเดฃเตเดเต k8s เดตเดฟเดจเตเดฏเดพเดธเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเด เดเดเตเดเตพ เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเด เดธเตเดตเดฎเตเดงเดฏเดพ เดจเดเดคเตเดคเดฟ. เด เดตเดฟเดเต เดเดเตเดเตพ เดชเดเตผเดชเตเดชเตเดเดณเตเดเต เดเดฃเตเดฃเด เดฎเดพเดฑเตเดฑเดฟ เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเต เด เดจเตเดชเดพเดคเด เดจเดฟเดฏเดจเตเดคเตเดฐเดฟเดเตเดเต. เด เดธเดฎเตเดชเดจเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดชเดเตเดทเต เดเตเดฐเตเดคเดฐเดฎเดพเดฏ เดชเตเดฐเดพเดฏเตเดฎเดเดณเตเดฃเตเดเต.
เดชเดเตผเดชเตเดชเตเดเดณเตเดเต เดเดฃเตเดฃเด เดเดฃเดเตเดเดฟเดฒเตเดเตเดเตเดเดพเดคเต เด เดญเตเดฏเตผเดคเตเดฅเดจเดเดณเตเดเต เด เดจเตเดชเดพเดคเด เดจเดฟเตผเดฃเตเดฃเดฏเดฟเดเตเดเตเดจเตเดจเดคเต เดเดธเตเดคเดฟเดฏเต เดธเดพเดงเตเดฏเดฎเดพเดเตเดเตเดจเตเดจเต. เดเดคเดฟเดจเตผเดคเตเดฅเด, เดเดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฎเตเดเตเดเต HPA-เดเตพ (เดคเดฟเดฐเดถเตเดเตเดจ เดชเตเดกเต เดเดเตเดเตเดธเตเดเตเดฏเดฟเดฒเดฑเตเดเตพ) เดเดชเดฏเตเดเดฟเดเตเดเดพเดฎเตเดจเตเดจเตเด เดเดพเดจเดฑเดฟ เดตเดฟเดจเตเดฏเดพเดธเดคเตเดคเดฟเดจเตเดฑเต เดจเดฟเดฒเดตเดฟเดฒเต เด เดตเดธเตเดฅเดฏเตเดเตเดเต เด เดจเตเดธเตเดคเดฎเดพเดฏเดฟ เดเตเตบเดซเดฟเดเตผ เดเตเดฏเตเดฏเตเดฃเตเดเดคเดฟเดฒเตเดฒเตเดจเตเดจเตเด เดเดฃเต.
เดซเดฒเด
เดเดธเตเดฑเตเดฑเดฟเดฏเต เดฎเดฟเดเดเตเด เดฐเตเดคเดฟเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเตเดจเตเดจเต, เดเดฟเดฏเดพเดฒเดฟเดเตเดเตเดชเตเดชเด เดเดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดถเดเตเดคเดฎเดพเดฏ เดเดฐเต เดเตเดฎเตเดชเดฟเดจเตเดทเตป เดเดฃเตเดเดพเดเตเดเตเดจเตเดจเต. เดเดจเตเดฑเต เดคเดพเตฝเดชเตเดชเดฐเตเดฏเดเตเดเดณเตเดเต เดชเดเตเดเดฟเดเดฏเดฟเตฝ เด เดเตเดคเตเดคเดคเต เดเดเตเดเตเดฎเตเดทเดจเตเด เดเดพเดจเดฑเดฟ เด เดจเดฒเดฟเดฑเตเดฑเดฟเดเตโเดธเดฟเดจเตเด เดตเตเดฃเตเดเดฟ เดธเตเดชเดฟเดจเตเดจเดเตเดเดฑเดฟเดจเต เดเดธเตโเดฑเตเดฑเดฟเดฏเตเดฏเตเดฎเดพเดฏเดฟ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดพเดฃเต.
เด เดตเดฒเดเดฌเด: www.habr.com