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?

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend