service mesh sh interface
play

Service Mesh sh Interface Brendan Burns QCon New York 2019 This - PowerPoint PPT Presentation

Service Mesh sh Interface Brendan Burns QCon New York 2019 This Photoby Unknown Author is licensed under CC BY-SA The e Service ice Me Mesh Landsc scape This Photoby Unknown Author is licensed under CC BY-NC-ND The problem for users


  1. Service Mesh sh Interface Brendan Burns – QCon New York – 2019 This Photoby Unknown Author is licensed under CC BY-SA

  2. The e Service ice Me Mesh Landsc scape This Photoby Unknown Author is licensed under CC BY-NC-ND

  3. The problem for users

  4. The problem for users – Adoption timeline Excitement Adoption Production

  5. Problem for users - Complexity This Photoby Unknown Author is licensed under CC BY-SA

  6. The problem for the ecosystem Mesh A Tools Mesh B Ecosystem Mesh C

  7. The solution? Moar Abstraction! Mesh A Adapter Tools Mesh B Interface Ecosystem Mesh C

  8. Service Mesh Interface: Community https://smi-spec.io

  9. Isolate concepts from implementation Provide the “core concepts” of service Service Mesh mesh Interface: Goals Release and iterate Build a community around Service Mesh as a concept

  10. This isn't a new pattern... • Open Container Image • Container Network Interface • Container Storage Interface • Storage Volumes • Ingress • NetworkPolicy • ...

  11. USERS NEED CONCEPTS TOOL VENDORS NEED Good reasons NOT IMPLEMENTATION ABSTRACTION, NOT SPECIALIZATION for this approach IMPLEMENTORS NEED ISOLATION FROM USERS

  12. TrafficSpec TrafficTarget Service Mesh Interface – API Overview TrafficSplit TrafficMetrics

  13. Service Mesh Interface: Routes apiVersion: v1beta1 kind: HTTPRouteGroup metadata: name: api-route matches: - name: api pathRegex: /api methods: - GET

  14. Service Mesh Interface: Routes apiVersion: v1beta1 kind: TCPRoute metadata: name: my-db-route

  15. Service Mesh Interface: TrafficTarget kind: TrafficTarget apiVersion: access.smi-spec.io/v1alpha1 metadata: name: example-target destination: # destination spec here specs: # route spec here sources: # source spec(s) here

  16. Service Mesh Interface: Destinations … destination: # This selects a set of Pods kind: ServiceAccount name: my-api-impl # This defines the traffic port: 8080 …

  17. Service Mesh Interface: TrafficTarget kind: TrafficTarget apiVersion: access.smi-spec.io/v1alpha1 metadata: name: example-target destination: # destination spec here specs: # route spec here sources: # source spec(s) here

  18. Service Mesh Interface: Routes … # This selects a set of paths specs: - kind: HTTPRouteGroup name: api-route matches: - api …

  19. Service Mesh Interface: TrafficTarget kind: TrafficTarget apiVersion: access.smi-spec.io/v1alpha1 metadata: name: example-target destination: # destination spec here specs: # route spec here sources: # source spec(s) here

  20. Service Mesh Interface: Sources … # This identifies the allowed sources sources: # This selects a set of Pods - kind: ServiceAccount name: my-api-callers …

  21. Putting it all together… ServiceAccount: ServiceAccount: my-api-impl my-api-callers SMI TrafficTarget Sources Destination https://service:8080/api SMI HTTPRouteGroup

  22. Service Mesh Interface: TrafficSplit kind: TrafficSplit apiVersion: split.smi-spec.io/v1alpha1 metadata: name: one-percent-experiment spec: backends: - service: experiment weight: 1 - service: canary weight: 10 - service: production weight: 100

  23. Service Mesh Interface – Traffic Split Kubernetes Services SMI TrafficSplit my-experiment experiment Service canary my-experiment Service Service production Service

  24. Service Mesh Interface - TrafficMetrics kind: TrafficMetrics … resource: name: my-pod-asdae kind: Pod edge: … timestamp: 2019-06-26T12:00:00 window: 30s metrics: …

  25. Service Mesh Interface - TrafficMetrics # all in-bound traffic edge: direction: to resource: {} # all out-bound traffic to Pod foobar edge: direction: from resource: name: foobar kind: Pod

  26. Service Mesh Interface - TrafficMetrics # all in-bound traffic from a Service edge: direction: to resource: name: my-service kind: Service

  27. Service Mesh Interface - TrafficMetrics … metrics: - name: p99_response_latency unit: seconds value: 987m - name: p90_response_latency unit: seconds value: 250m …

  28. Service Mesh Interface – TrafficMetrics Overview Kubernetes Prometheus, Traffic Metrics API Server etc. Server traffic.metrics.k8s.io metrics scrape/push

  29. Concerns: Lowest Common Denominators

  30. Service Mesh Interface: Approach to iteration

  31. Service Mesh Interface: Iteration plan. Start with the Lots of custom Adopt the common basics extensions extensions to v+1

  32. Implementations: • Consul • LinkerD Service Mesh • Istio Interface: State of the Tooling: art. • Flagger (WeaveWorks) • Rio (Rancher) • ...

  33. • Come and join us! • https://smi-spec.io • https://github.com/deislabs/smi-spec • https://github.com/deislabs/smi-sdk-go Service Mesh • https://github.com/weaveworks/flagger/blob/ Interface: master/docs/gitbook/tutorials/flagger-smi- istio.md Futures • https://github.com/hashicorp/microsoft-smi- webinar

  34. Questions?

Recommend


More recommend