Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

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

1.672 visualizaciones

Publicado el

Presentation slides for de:code 2019 DT81 session (May 29, 2019)
Session title: クラウドネイティブ時代の分散トレーシング - Distributed Tracing in a Cloud Native Age

https://www.microsoft.com/ja-jp/events/decode/2019session/detail.aspx?sid=DT81

Publicado en: Tecnología
  • Sé el primero en comentar

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

  1. 1. de:code 2019 DT81 Distributed Tracing in a Cloud Native Age Yoichi Kawasaki @yokawasa Azure TSP, GBB, Microsoft
  2. 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. 3. CNCF - Cloud Native Definition v1.0 https://github.com/cncf/toc/blob/master/DEFINITION.md
  4. 4. “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
  5. 5. https://docs.microsoft.com/en-us/azure/azure-monitor/app/distributed-tracing
  6. 6. – Span & Trace Span: Trace: xxx1 bbb aaa xxx1 ccc bbb https://opentracing.io/specification/ Google Dapper
  7. 7. - Visualization
  8. 8. - 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
  9. 9. - Backend Trace data Backend
  10. 10. Jaeger Agent & Backend in OpenTracing https://www.jaegertracing.io/docs/1.8/architecture/
  11. 11. 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
  12. 12. https://cloudblogs.microsoft.com/opensource/2018/06/13/microsoft-joins-the-opencensus-project/
  13. 13. OpenCensus OpenTracing OpenTelemetry https://twitter.com/dankohn1/status/1125422653060333568 OpenTeremetry Specification https://github.com/open-telemetry/opentelemetry-specification
  14. 14. OpenTracing and Jaeger
  15. 15. 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 Port9411 Port 9411 Port 9411 Trace Data Port 8000 Port 80 Port 16686 Port 16686 Access to Jaeger UI Port 80 Port 9000 Trace Data TraceData Port 80 Port 80 Port 9000 TraceDataPort9411 Demo1 Architecture https://github.com/yokawasa/envoy-proxy-demos/tree/master/jaeger-tracing
  16. 16. OpenCensus and Azure Monitor
  17. 17. 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
  18. 18. 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/
  19. 19. 30
  20. 20. PodPodPod https://docs.microsoft.com/ja-jp/dotnet/standard/microservices- architecture/implement-resilient-applications/implement-circuit-breaker-pattern PodPodPod PodPodPod
  21. 21. PodPodPod PodPodPod PodPodPod Service Breaker Destination Rule (Istio) https://istio.io/docs/tasks/traffic-management/circuit-breaking/
  22. 22. 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/
  23. 23. • • • https://istio.io/docs/concepts/what-is-istio/
  24. 24. Service Mesh Control Plane Service B Pod Trace Data Storage & UI Trace data Trace data Trace data Service A Pod Service A Pod
  25. 25. Distributed Tracing on Istio using Jaeger
  26. 26. © 2018 Microsoft Corporation. All rights reserved. © 2019 Microsoft Corporation. All rights reserved. ( ) de:code 2019 (2019 5 29~30 )

×