embracing the imposter

62
Embracing the Imposter

Upload: codefest

Post on 13-Aug-2015

2.887 views

Category:

Software


2 download

TRANSCRIPT

  1. 1. Embracing the Imposter
  2. 2. [email protected]
  3. 3. Over 60M active users
  4. 4. Over 60M active usersOver 30M songs
  5. 5. Over 60M active usersOver 30M songs 58 markets
  6. 6. SAD STORY TO START WITH
  7. 7. WE ARE DOING MICROSERVICES FOR YEARS
  8. 8. Microservices 101
  9. 9. Monolith
  10. 10. MicroservicesMonolith
  11. 11. Multiple datacenters Thousands of servers Hundreds of services
  12. 12. Distributed System
  13. 13. Distributed System AKA complicated
  14. 14. Distributed System No reproducibility
  15. 15. Distributed System No failure cases for tests
  16. 16. LEGACY x2 FUN
  17. 17. HARDWARE x10 FUN at scale FAILURES
  18. 18. Actually
  19. 19. Test Double
  20. 20. IMPOSTER
  21. 21. Imposter
  22. 22. Imposter Fail miserably
  23. 23. Imposter Fail miserably Here you go!
  24. 24. Imposter Here you go! Fail in 10 seconds
  25. 25. Imposter Cat videos Here you go!
  26. 26. Actually
  27. 27. Send A, B and C At rate X For Y time
  28. 28. Send A, B and C At rate X For Y time
  29. 29. Send A, B and C At rate X For Y time Load Injector
  30. 30. Send A, B and C At rate X For Y time Load Injector
  31. 31. Some More Steps
  32. 32. Add functions like: Drop packets Add hooks to service discovery
  33. 33. Add functions like: Drop packets Add pseudo-random delays
  34. 34. Add functions like: Drop packets Add pseudo-random payload
  35. 35. Add functions like: Drop packets [your function here]
  36. 36. Ways to use
  37. 37. Legacy dependency!
  38. 38. Look Ma! No legacy!
  39. 39. Fault injection
  40. 40. Crazy neighbour
  41. 41. Crazy neighbour Broken hardware
  42. 42. Crazy neighbour Broken hardware Cat on a keyboard
  43. 43. Crazy neighbour Broken hardware Cat on a keyboard nuke your DC
  44. 44. future plans
  45. 45. SUT Production
  46. 46. SUT ProductionImposter
  47. 47. Configuration Madness
  48. 48. Imposter, but for client side
  49. 49. distributed systems are complicated extremely
  50. 50. its still possible to improve testability
  51. 51. takes effort to do it
  52. 52. [email protected]