拥抱ServiceMesh 华为 巨震
2020-02-27 136浏览
- 1.
- 2.•• •• CoSnDteKntTitle2 •• CoSneternvticTeitlMe 3esh •• ContentSTDitKle 4Service Mesh •• CoSenrtveicnet MTietsleh 5 •• Content Title 6
- 3. SDK SDK SDK SDK proxy proxy proxy proxy • • • • • ! • SDK • !httpRPC… • • • ! • • Cloud Native
- 4.SDK service Java SDK Registration discovery Registry Center service Go SDK configura9on Config Center
- 5.SDK • Spring MVC • JAX-RS • POJO … • • $"#!
- 6.Service Mesh • A service mesh is a dedicated infrastructure layer for handling service-to-service communication. It’s responsible for the reliable delivery of requests through the complex topology of services that comprise a modern, cloud native application. • In practice, the service mesh is typically implemented as an array of lightweight network proxies that are deployed alongside application code, without the application needing to be aware. William Morgan
- 7.Service Mesh • Data plane • Control plane
- 8.Istio • Istio service Java SDK Registration discovery Registry Center service Go SDK configuration Config Center
- 9.SDK • Java SDK Go SDK? • Go wins! Go SDK core Sidecar
- 10.SDK
- 11.& Registry Center Registrator Istio Kubernetes Registry Center Service Discovery Instance Cache Management
- 12. http request grpc request Other protocols invocation Handler Chain Rate Limi9ng Load Balancing Routing Fault Injection Fallback … http request grpc request
- 13.SDK + Sidecar Control Plane Registry Config Center Center IsHo Apollo Huawei CSE service proxy Data Plane service Java-sdk service Go-sdk Infrastructures Kubernetes VM Bare metal Clouds Monitoring Zipkin Prometheus Grafana Huawei APM
- 14.Is#o • Envoy Sidecar • Go SDK Istio • Iptables • Handler chain Mixer Istio Pilot xDS API Server Discovery Config Proxy SDK
- 15.Cloud Native • sidecar-injector • Kubernetes 1.9 or later • MutatingAdmissionWebhook • Namespace, configmap, mutatingwebhookconfiguration • Pod Spec • Namespace kubectl label myns sidecar-injector=enabled
- 16. KubernetesCluster:3 VM Nodes(6Core, 4G Mem) wrk –c40 -n20 –d10shttp://client-host:port 14000 QPS 12000 10000 8000 6000 4000 2000 0 QPS Go SDK Sidecar Istio(no mixer) Istio client 25 http payload payload sizeis:n bytes server 20 15 10 5 0 Latency(ms) GO SDK Sidecar Istio(no mixer) Istio
- 17. • h"ps://github.com/go-mesh/mesher-examples• h"ps://github.com/go-mesh/mesher-tools/tree/master/perf
- 18. • https://github.com/go-mesh/mesher-examples• https://github.com/go-mesh/mesher-tools/tree/master/perf
- 19. • https://github.com/go-mesh/mesher-examples• https://github.com/go-mesh/mesher-tools/tree/master/perf
- 20. • https://github.com/go-mesh/mesher-examples• https://github.com/go-mesh/mesher-tools/tree/master/perf
- 21. • h"ps://github.com/go-mesh/mesher-examples• h"ps://github.com/go-mesh/mesher-tools/tree/master/perf