Hopperx1 Seattle 2019 - Don't Let Clients Get You Down

Sep. 22, 2019
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
Hopperx1 Seattle 2019 - Don't Let Clients Get You Down
1 of 38

More Related Content

Recently uploaded

Chapter 8. Classification Basic Concepts.pptChapter 8. Classification Basic Concepts.ppt
Chapter 8. Classification Basic Concepts.pptSubrata Kumer Paul
Three Phase Induction Motor.pptxThree Phase Induction Motor.pptx
Three Phase Induction Motor.pptxNoorulAmin67
Data Communication & Computer NetworksData Communication & Computer Networks
Data Communication & Computer NetworksSreedhar Chowdam
THEODOLITE.ppsxTHEODOLITE.ppsx
THEODOLITE.ppsxMOHDTARIQFAROOQUI
UNII II		ELECTRICAL SYSTEMS IN BUILDINGS	UNII II		ELECTRICAL SYSTEMS IN BUILDINGS
UNII II ELECTRICAL SYSTEMS IN BUILDINGS karthi keyan
Chapter 2. Know Your Data.pptChapter 2. Know Your Data.ppt
Chapter 2. Know Your Data.pptSubrata Kumer Paul

Featured

Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slidesAlireza Esmikhani
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesProject for Public Spaces & National Center for Biking and Walking
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference

Featured(20)

Hopperx1 Seattle 2019 - Don't Let Clients Get You Down

Editor's Notes

  1. Intro: I’m Clare Why do clients matter to resiliency?
  2. Example multi-tier system with microservices
  3. There are lots of clients in this system
  4. Drill into service: load balancer + multiple servers
  5. What happens when a single server has problems?
  6. Hopefully something like health checks realizes its down and removes it from load balancer
  7. BUT until then... clients are still going to that server!
  8. And the failure cascades all the way up the system! So, how can we configure clients to be resilient to failures, so that our entire system is resilient?
  9. Today we’ll talk about three important aspects of client resiliency
  10. Let’s start with retries
  11. Retries are self-explanatory
  12. Retrying likely gets request directed to healthy node
  13. Real world example: Installing npm modules during a cron job
  14. Enable retries in SSH
  15. Set retry limits (3-5), don’t make a bad situation worse
  16. What happens when an API doesn’t de-duplicate requests?
  17. For example, if a network connection drops, you don’t have confirmation of whether the request is still alive on that server
  18. The servers may have just been processing requests slowly, but eventually complete them. Idempotent APIs will have a field like “idempotency token” or “retry token” where you can provide a token that signifies only ONE request with this token should be processed.
  19. Timeouts give opportunity to retry in case of networking or load problems where requests are very slow. Timeouts also ensure slow requests don't hog all your threads
  20. Lots of different types of timeouts, varies by client library how much control you get over each of these
  21. Favorite is socket read timeout: many systems have a default timeout of infinity (FOREVER!). Can result in hung threads that stack up over time
  22. Real world example: curl script would randomly hang forever
  23. Configure timeouts and retries
  24. Too many retries can get you throttled, so backoff lets you retry only the number of times you need to
  25. Simplest backoff, so you’re not hammering the servers
  26. Better: exponential backoff: delay more every time you retry
  27. What happens if every client backs off the same amount?
  28. They all cause high load at the same time
  29. Add jitter: each client randomizes the amount they delay a little bit
  30. Smoothes out the request load
  31. Use retry-cli to get exponential backoff + randomized delay (i.e. jitter)
  32. Use retry-cli to get exponential backoff + randomized delay (i.e. jitter)
  33. We’ve covered retries, timeouts, and backoffs. Go inspect your clients!
  34. Questions?