Experience in implementing service mesh in Avito







service mesh ? service mesh «» Istio? ? «» β€” «» service mesh.







«» Kubernetes. «» service mesh, .







: service mesh?



Service mesh β€” , , . , , , , , .







, β€” , , β€” sidecar- . , , observability β€” , .







, service mesh ?



β€” , , service mesh.







  1. : , blue-green, (round-robin, - . .) . , .
  2. . , . , . , , β€” , . , . service mesh .
  3. Observability. - . Service mesh , . , . , envoy proxy .
  4. . , Kubernetes-. . . β€” Kubernetes- , inplace . β€” , , -, .
  5. . . circuit breaker, outlier detection, retry . . service mesh .


. , β€” , service mesh.







: , ; , ; , β€” service mesh.







, , β€” , β€” service mesh.







service mesh «»?



: , . observability, . , , service mesh.







- : , Kubernetes- . Kubernetes- inplace, Kubernetes- . service mesh , β€” , Kubernetes-.







. , observability , , , Istio.







, ontour.io Heptio ( VMware). Contour β€” ingress- envoy proxy. , ingress- Nginx. , envoy, , . , Contour , , Nginx (reload lua).







, Contour , service mesh. control plane, , Istio ( pilot ). - β€” envoy proxy. , envoy proxy production ready, . Istio.







service mesh , .



, . β€” .







, : service mesh .







Contour Istio: ?



Contour β€” ingress-, , Kubernetes-. , .







Istio service mesh β€” , , . , , mTLS- . , .







, service mesh ( control plane, ) ingress-. , Istio Gateway. , ingress-, Contour β€” .







, Istio?



( , -, 2017 ) , β€” Istio Conduit ( Linkerd 2). Istio?







, envoy proxy - , . , «Lyft», envoy proxy, service mesh. , , , «» . Conduit , Rust. , , , .







β€” , , Istio Google IBM. : Istio. - , - service mesh , Β«IstioΒ». Istio .







, Istio , . , , Istio.







? , Istio .



, , .







?



, . staging- , . , . .







Kubernetes- : , . β€” .







Istio , , - Istio. Istio. .







, Istio. , , . , , Istio , CPU.







, , ( , ). , , , . .







- , β€” . Istio β€” , , . , 30 Istio.







, Istio, , service mesh, Istio.







, Istio . , : Istio API . , , , β€” . , .







, Istio , ?



Istio service mesh . envoy proxy. gRPC, - . http, control plane -. , CPU , long polling, , gRPC.







Istio . , , . , discovery β€” , . , . - .







, 2018 Istio . control plane, Istio. Istio 2019 , β€” , , , . .







Istio, . ?



. Istio , observability .







, β€” -, . envoy proxy , Netramesh. service mesh, control plane, - , . , .







β€” Kubernetes- . , Kubernetes-, . , service mesh.







, Kubernetes-. control plane β€” , , , , . , Istio.







envoy proxy, control plane xDS Navigator ( ).







-: Netramesh, observability, envoy proxy, Navigator .







Kubernetes- . envoy proxy service mesh Navigator. , , mTLS, - ( , ), , outlier detection, connect retries.







. , . observability Netra, Navigator .













, Istio ?



, Navigator Istio, -, , .







, Istio sidecar-, discovery.







Istio , , , β€” , . , control plane, ( , Istio, ).







. Navigator . e2e . , .

, , Istio .







, Istio . ?



-, , . ( , ), , Istio.







Istio β€” . , , . , . . , , .







Istio set , . , , .







, - , . , Istio .







Istio , - - ?



, , .

Istio. , , , . β€” Istio, β€” Linkerd2, , envoy proxy, , - , , . , , , , . - , service mesh envoy.







, , β€” Consul Connect HashiCorp. , , . - envoy proxy. Consul Connect envoy β€” -, , . Consul HashiCorp, , , , , , , Kubernetes-, , service mesh.







HashiCorp , , -, .







, , Istio, , . Consul Connect, , . , Istio, , .







, , .



, . : Netra, Navigator GitHub, . , , , β€” , , β€” , , .







. «» . , .







. , , , , , Netra ( ), , . open source .







?



. Netra , contribution . - 5-6 . Navigator β€” , , , . , .







, «», , ?



, , , , , , - , , . . - , , , mTLS . , , , , . Navigator , . , .







, service mesh. ?



service mesh , . ? , , . , , Kubernetes, . , .







, , TCP, , . , .







- , , . , , , - , , . , .







, service mesh β€” , . ? , service mesh ?



, . , , , , , , , . , . , , , , , , , , , . , circuit breaker .







, , , -, , . -, , , ( , ), - , , . , : , . service mesh . - . , , , .







service mesh?



, , , , .







, , , , , , , . , , , . , , . , , .







, , , , . , . , , - . , , , , .







, , service mesh. , , , , .







Service mesh β€” , . - , β€” , . , , .







- Istio?



Istio . , , , . envoy proxy β€” , service mesh, - Istio , , , , .







Istio , , , , , β€” , . Istio – , , , .







?



, service mesh β€” , , . .







– , , , , . service mesh, Kubernetes-, . , , , - . , . service mesh.







?



, , service mesh. , , , : , . : 1-2 , , .







? , ?



, , , , , , Kubernetes β€” . , , . β€” , . !







Vika_Fedoseenko








All Articles