Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
What to Upload to SlideShare
Loading in …3
×
1 of 49

Troubleshooting & Debugging Production Microservices in Kubernetes as presented in Devoxx 2017

1

Share

Download to read offline

Debugging applications in production is like being the detective in a crime movie. Especially with microservices. Especially with containers. Especially in the cloud. Trying to see what’s going on in a production deployment at scale is impossible without proper tools! Google has spent over a decade deploying containerized Java applications at unprecedented scale and the infrastructure and tools developed by Google have made it uniquely possible to manage, troubleshoot, and debug, at scale.

Join this session to see how you can diagnose and troubleshoot production issues w/ out of the box Kubernetes tools, as well as getting insight from the ecosystem with Weave Scope, JFrog Artifactory & Stackdriver tools.

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Troubleshooting & Debugging Production Microservices in Kubernetes as presented in Devoxx 2017

  1. 1. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Debugging & Troubleshooting Microservices w/ Kubernetes It runs in production, or is it?
  2. 2. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Ray Tsang Developer Advocate Google Cloud Platform @saturnism | +RayTsang
  3. 3. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Baruch Sadogursky Developer Advocate JFrog @jbaruch
  4. 4. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Shownotes! ● jfrog.com/shownotes ○ Slides ○ Video (tomorrow) ○ Links ○ Feedback ○ Raffle
  5. 5. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  6. 6. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Hello World Service - Greet Guestbook Service - Create Guestbook Service - Retrieve
  7. 7. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Guestbook UI Hello World Service Redis session replication greeting MySQL Guestbook Service CRUD
  8. 8. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Visibility & Insight is Key
  9. 9. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Let's see it!
  10. 10. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Repository metadata - key insight into artifacts and their relationships
  11. 11. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Production vs Non-Production :(
  12. 12. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Distributed Systems are hard!
  13. 13. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes We've been there, done that
  14. 14. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Information - Logs! kubectl logs -f pod_id
  15. 15. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Inspecting the process / container kubectl exec -ti pod_id /bin/bash
  16. 16. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Port forward to container kubectl port-forward pod_id local_port:remote_port
  17. 17. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Isolate problematic instance w/ Labels kubectl label pod pod_id --overewrite serving=false
  18. 18. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Pod frontend Pod serving = true version = 1.0 Pod serving = true version = 1.0 Service Label selectors: version = 1.0 serving = true Pod serving = true version = 1.0
  19. 19. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Pod frontend Pod serving = true version = 1.0 Pod serving = true version = 1.0 Service Label selectors: version = 1.0 serving = true Pod serving = false version = 1.0
  20. 20. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Log aggregation, at scale
  21. 21. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Stackdriver Logging https://cloud.google.com/logging/
  22. 22. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  23. 23. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Metrics from Logs → Alerting Near-realtime insight
  24. 24. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Search and Query Your Logs
  25. 25. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Export to BigQuery, Storage, Pub/Sub Near-realtime insight
  26. 26. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  27. 27. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  28. 28. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Tracing at Google - Dapper https://research.google.com/pubs/pub36356.html
  29. 29. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Zipkin
  30. 30. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Stackdriver Trace https://cloud.google.com/trace/
  31. 31. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Zipkin → Stackdriver Trace https://cloud.google.com/trace/docs/zipkin
  32. 32. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  33. 33. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  34. 34. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  35. 35. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  36. 36. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Automatic reports Detect performance regression
  37. 37. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Oops… I forgot a log message. Darn!
  38. 38. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Don't you wish you can use a debugger?
  39. 39. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Stackdriver Debugger - Production Debugger https://cloud.google.com/debugger/
  40. 40. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Add debugger agent java -agentpath:/opt/cdbg/cdbg_java_agent.so ... -jar PATH_TO_JAR_FILE
  41. 41. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Logpoint - dynamically add log messages! No redeployment, Magic. gcloud debug logpoints create HelloworldService.java:35 "Received endpoint: {endpoint}/{name}" --target helloworld-ui-1.0-SNAPSHOT
  42. 42. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Snapshots Inspect call stack and variables
  43. 43. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  44. 44. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  45. 45. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Trace Log Debug
  46. 46. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Trace → Stackdriver Trace Logs → Stackdriver Logging Debug → Stackdriver Debugger https://cloud.google.com/stackdriver/
  47. 47. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes Thanks! Source: https://github.com/saturnism/spring-boot-docker Shownotes: https://jfrog.com/shownotes Stackdriver: https://cloud.google.com/stackdriver/ Ray Tsang @saturnism Google Cloud Platform Baruch Sadogursky @jbaruch JFrog
  48. 48. @saturnism @jbaruch @jfrog @googlecloud #devoxx2017 jfrog.com/shownotes
  49. 49. @saturnism @googlecloud #kubernetes #devoxx

×