$30 off During Our Annual Pro Sale. View Details »

Service Meshes

Eberhard Wolff
September 04, 2019

Service Meshes

Einführung in Service Meshes am Beispiel von Istio. Zeigt Features im Bereich Monitoring, Resilience, Routing und Sicherheit sowie einen Vergleich mit Linkerd 2 und ein Vergleich zu Linkerd 2.

Eberhard Wolff

September 04, 2019
Tweet

More Decks by Eberhard Wolff

Other Decks in Technology

Transcript

  1. None
  2. None
  3. None
  4. None
  5. None
  6. + –

  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. • • •

  14. • • • • • • http://prometheus.io/

  15. None
  16. • • •

  17. • •

  18. • • • • https://grafana.com/

  19. None
  20. None
  21. • • •

  22. • •

  23. • •

  24. None
  25. None
  26. • • •

  27. • • • •

  28. • • • •

  29. • • • spring.sleuth.propagation-keys= x-request-id,x-ot-span-context •

  30. None
  31. 31

  32. None
  33. None
  34. None
  35. • • •

  36. None
  37. 37

  38. None
  39. • • •

  40. • • •

  41. None
  42. • • • •

  43. • • • • • • •

  44. apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: order-retry spec: hosts: -

    order.default.svc.cluster.local http: - retries: attempts: 20 perTryTimeout: 5s retryOn: connect-failure,5xx timeout: 10s route: - destination: host: order.default…
  45. 45

  46. • • • • •

  47. apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata: name: order-circuit-breaker spec: host: order.default.svc.cluster.local

    trafficPolicy: connectionPool: tcp: maxConnections: 1 http: http1MaxPendingRequests: 1 http2MaxRequests: 1
  48. 48

  49. None
  50. • • • •

  51. apiVersion: networking.istio.io/… kind: DestinationRule metadata: name: frontend v2 version: "2"

    v1 version: "1" spec: host: frontend subsets: - name: v2 labels: version: "2" - name: v1 labels: version: "1" "/neu" frontend v2 frontend v1 apiVersion: networking.istio.io/… kind: VirtualService metadata: name: frontend-ingress spec: hosts: - "*" http: - match: - uri: prefix: "/neu" route: - destination: host: frontend subset: v2 - route: - destination: host: frontend subset: v1
  52. • • • 90% 10% 100% 10% 90%

  53. None
  54. None
  55. None
  56. ✘ ✘

  57. None
  58. None
  59. • API • • • https://smi-spec.io

  60. • • • •

  61. apiVersion: split.smi-spec.io/v1alpha1 kind: TrafficSplit metadata: name: my-weights spec: service: service

    backends: - service: service-1 weight: 100m - service: service-2 weight: 200m - service: service-3 weight: 300m
  62. apiVersion: access.smi-spec.io/v1alpha1 kind: TrafficTarget metadata: name: service-2-api destination: kind: ServiceAccount

    name: service-2 specs: - kind: HTTPRouteGroup name: api-route matches: [api] sources: - kind: ServiceAccount name: service-1 apiVersion: specs.smi-spec.io/v1alpha1 kind: HTTPRouteGroup metadata: name: api-route matches: - name: api pathRegex: /api methods: ["GET"] ✘ ✘
  63. None
  64. • • •

  65. None
  66. ✘ ✘

  67. None
  68. None
  69. + –

  70. www.innoq.com/de/podcast/059-service-meshes-1/ www.heise.de/developer/artikel/Brauchen-asynchrone- Microservices-und-Self-Contained-Systems-ein-Service-Mesh- 4478057.html www.heise.de/developer/artikel/Alle-11-Minuten-verliebt- sich-ein-Microservice-in-Linkerd-4511406.html