拥抱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