Upgrade to Pro — share decks privately, control downloads, hide ads and more …

クラウドネイティブ時代の分散トレーシング / Distributed Tracing in a Cloud Native Age

クラウドネイティブ時代の分散トレーシング / Distributed Tracing in a Cloud Native Age

Presentation slides for de:code 2019 DT81
Session title: クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age
Session Video: https://youtu.be/0RFYvMfIJUo
Date: May 29, 2019

Moved from slideshare

Yoichi Kawasaki

May 29, 2019
Tweet

More Decks by Yoichi Kawasaki

Other Decks in Technology

Transcript

  1. de:code 2019 DT81     Distributed Tracing in

    a Cloud Native Age Yoichi Kawasaki @yokawasa Azure TSP, GBB, Microsoft
  2. @yokawasa https://github.com/yokawasa Azure Technology Solution Professional J J s K

    B G At 2 2 1 027C N e D A K k B o n l b Ja G A K n pD , Obc About Speaker
  3.  “observability is a measure of how well internal states

    of a system can be inferred from knowledge of its external outputs” Wikipedia: https://en.wikipedia.org/wiki/Observability
  4.  !  – Span & Trace Span:  

    Trace:    xxx1 bbb aaa xxx1 ccc bbb https://opentracing.io/specification/ GoogleDapper
  5.    - Propagation xxx1 bbb aaa xxx1 ccc

    bbb •x-request-id •x-b3-traceid •x-b3-spanid •x-b3-parentspanid •x-b3-sampled •x-b3-flags •x-ot-span-context https://github.com/openzipkin/b3-propagation extract Inject
  6.    OpenTracing OpenCensus • OpeTracing = # 

     API$, Framework/ • CNCF   • !" : Jaeger, Zipkin, Elastic APM, Datadog, Apache SkyWalking https://opentracing.io https://opencensus.io/ • OpenCensus = #   %( &') • Google OSS ( • !" (Exporter): Jaeger, Zipkin, AWS X-Ray, Stackdriver Tracing, Azure Monitor OpenTracing OpenCensus    backend Import Tracer Exporter  Metrics Stats
  7. Front-envoy process Front-envoy container service_red envoy process Service Red Container

    service_red app process service_blue envoy process Service Blue Container service_blue app process service_green envoy process Service Green Container service_green app process 8080 8080 8080 Jaeger process Port 9411 Port 9411 Port 9411 Trace Data Port 8000 Port 80 Port 16686 Port 16686 Access to Jaeger UI Port 80 Port 9000 Trace Data Trace Data Port 80 Port 80 Port 9000 Trace Data Port 9411 Demo1 Architecture https://github.com/yokawasa/envoy-proxy-demos/tree/master/jaeger-tracing
  8. Golang app Port 8001 Port 50030 Trace Data Trace Data

    Demo2 Architecture Python app Port 8002 Port 8000 Local forwarder Node app Port 8003 Port 8008 Azure Monitor Local Forward – Application Insights Local forwarder https://github.com/microsoft/ApplicationInsights-LocalForwarder Trace Data
  9. 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. Buoyant’s CEO William Morgan https://blog.buoyant.io/2017/04/25/whats-a-service- mesh-and-why-do-i-need-one/
  10. Pod Pod Pod Pod Pod Pod Pod Pod Pod 

       ##  Service BreakerDestination Rule (Istio) https://istio.io/docs/tasks/traffic-management/circuit-breaking/  !"
  11. Discovery & Load Balancing round robin, random, weighted least request

    Traffic Splitting A/B testing, canary rollouts, staged rollouts Traffic Control Handling Failures circuit breakers, timeouts, and retries Fault Injections delays or abort Rate Limiting Distributed Tracing Collecting Logs & Metrics Service Graph Authentication Policy Mutual TLS Authentication Istio RBAC https://istio.io/docs/concepts/what-is-istio/
  12. •        • 

      •    https://istio.io/docs/concepts/what-is-istio/
  13. Service Mesh Control Plane Service B Pod Trace Data Storage

    & UI Trace data Trace data Trace data Service A Pod Service A Pod
  14. © 2018 Microsoft Corporation. All rights reserved. )(@-$%/SUK>=JDA/  <@E@<2G/,

    >5& 6IH 42GC80 © 2019 Microsoft Corporation. All rights reserved. )(@- ($%/SUK>=JD) A/de:code 2019  (2019!529~30 ) @E@<2G/, >5& 6IH 42GC80 )LUQUP@ /3FB)LUQUP?;5H"/*/TM/#/N1RO>=A9I:I/.'+?7C80