Chaos engineering for serverless in Azure - London Serverless September 2 2020

B2fefbb30aba7c25bbe0c8819791631a?s=47 Gunnar Grosch
September 02, 2020

Chaos engineering for serverless in Azure - London Serverless September 2 2020

Presented at London Serverless September 2nd, 2020. Recording available here:

https://www.youtube.com/watch?v=FDSb4vMhhyw

@gunnargrosch

Chaos engineering is the practice of hypothesis testing through planned experiments to gain a better understanding of a system’s behavior. The principles of chaos engineering have been around for years, and we have now reached the point where chaos engineering has gone from just being a buzzword and practice used by a few large organizations in very specific fields, to it being put in to use by companies of all sizes and industries. Planning and performing chaos experiments on traditional infrastructure with virtual machines and microservices using containers has been battle-tested by many large organizations, but serverless functions and managed services present different failure modes and level of abstraction.

In this talk we focus on how to apply the principles of chaos engineering to serverless, both for serverless functions and managed services. This covers how hypothesis can be formed to fit serverless, what the experiments can achieve and how to practically perform them. With tools for chaos engineering, both commercial and open-source, getting more mature most of them still have focus primarily on virtual machines and containers. We’ll look at what tools are out there to help with chaos experiments for serverless and managed services, but also how you can build your own. Join as we move from talking about the principles to performing real chaos in a serverless world! In Azure!

B2fefbb30aba7c25bbe0c8819791631a?s=128

Gunnar Grosch

September 02, 2020
Tweet

Transcript

  1. None
  2. None
  3. None
  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. None
  14. None
  15. None
  16. None
  17. None
  18. None
  19. None
  20. None
  21. None
  22. None
  23. None
  24. None
  25. None
  26. None
  27. None
  28. None
  29. None
  30. None
  31. None
  32. • • • • •

  33. None
  34. • • • • • { "isEnabled": false, "failureMode": "latency",

    "rate": 1, "minLatency": 100, "maxLatency": 400, "exceptionMsg": "Exception message!", "statusCode": 404, "diskSpace": 100, “denylist": [ "*.documents.azure.com" ] } const failureAzureFuctions = require('failure-azurefunctions’) exports.handler = failureAzureFuctions(async (event, context) => { ... })
  35. None
  36. None
  37. None
  38. None
  39. None
  40. None
  41. None
  42. None