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.

Don't try these at home

541 views

Published on

In this talk, I discussed the value of experimenting in the cloud and doing so in a tasteful manner (i.e. don't put your experiments into production!). I shared a number of interesting experiments that the serverless community has done, and some ideas and learning that we can take from them.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Don't try these at home

  1. 1. DON’T TRY THESE AT HOME
  2. 2. SPOILERS!!!
  3. 3. dream lvl 1 dream lvl 2 dream lvl 3 dream lvl 4 dream lvl 5
  4. 4. always telling people not to do something, and then does it himself!
  5. 5. Dreyfus Model for Skill Acquisition
  6. 6. Dreyfus Model for Skill Acquisition monkey see, monkey do
  7. 7. Dreyfus Model for Skill Acquisition application of best practices
  8. 8. Dreyfus Model for Skill Acquisition effectively combine practices, and deviates from them as needed
  9. 9. Dreyfus Model for Skill Acquisition
  10. 10. Dreyfus Model for Skill Acquisition “transcends reliance on rules, guidelines and maxims” “intuitive grasp of situations based on deep understanding”
  11. 11. Dreyfus Model for Skill Acquisition “transcends reliance on rules, guidelines and maxims” “intuitive grasp of situations based on deep understanding” “uses an analytical approach in new situations”
  12. 12. Dreyfus Model for Skill Acquisition “transcends reliance on rules, guidelines and maxims” “intuitive grasp of situations based on deep understanding” “uses an analytical approach in new situations” how do we get there?
  13. 13. doing the same thing everyday is going to get you there NOT
  14. 14. true expertise requires deliberate learning
  15. 15. 10,000 hours of deliberate practice to reach the top of an ultra-competitive field
  16. 16. 10,000 hours of deliberate practice to reach the top of an ultra-competitive field
  17. 17. that’s the 6th walk today WTF is a pokemon?
  18. 18. pickle Rick!
  19. 19. spent decades in LIMBO!
  20. 20. Dreyfus Model for Skill Acquisition experimentation
  21. 21. value of experiments to
  22. 22. value of experiments to but, do them tastefully
  23. 23. they will be g00d for you, too!
  24. 24. 1. do experiment 2. write a blog post 3. do a talk at user groups or conferences
  25. 25. pubby do. write. speak.
  26. 26. pubby do. write. speak. REPEAT!
  27. 27. here be experiments…
  28. 28. scrapping snapshotting SPA E2E testing visual testing bots generating PDFs/PNGs/open graph images, etc. rendering canvas animations
  29. 29. metaprogramming: programs that can program itself
  30. 30. a Lambda function… have read-access to its own code
  31. 31. a Lambda function… have read-access to its own code can update its own configuration
  32. 32. a Lambda function… have read-access to its own code can update its own configuration can update its event source mappings
  33. 33. functions can self-optimize
  34. 34. e.g. adjust memory/timeout dynamically to deal with back-pressure
  35. 35. functions can deploy updates to itself updating function configuration causes all warm lambdas to be killed immediately
  36. 36. e.g. slow-changing, static data in global vars or environment vars
  37. 37. auto-generated APIs learning chatbot self-healing architectures inlined IAM role-changes self-building functions …
  38. 38. complexity!
  39. 39. hard to test
  40. 40. security? what security!?
  41. 41. im-immutable infrastructure
  42. 42. local lambda golang SSH server ngrok
  43. 43. lambdashell.com
  44. 44. avoids Lambda timeouts! no need for recursive function
  45. 45. relies on implementation details that can change without notice
  46. 46. local lambda node debugger broker proxy lib
  47. 47. there are easier ways to debug code
  48. 48. there are easier ways to debug code SAM local, sls invoke local, serverless-offline, docker-lambda, etc.
  49. 49. bridge network endpoints to local MAC address
  50. 50. DO try these at home
  51. 51. setup time
  52. 52. setup time initialization
  53. 53. setup time initialization cold start
  54. 54. more memory = slower cold start!
  55. 55. doesn’t take improved execution time (from higher memory) into account
  56. 56. experiment against realistic workload
  57. 57. setup time initialization cold start
  58. 58. full AWS-SDK vs. DynamoDB only
  59. 59. full AWS-SDK vs. DynamoDB only webpack!!
  60. 60. saves ~25ms for every IO op
  61. 61. EXPERIMENTS ARE GOOD
  62. 62. Dreyfus Model for Skill Acquisition experimentation
  63. 63. DON’T TRY THESE AT HOME WORK
  64. 64. headless Chrome in Lambda: http://bit.ly/2FaA2W4 SSH into a Lambda function: http://bit.ly/2KTnKVE Trek10’s live Lambda debugger: https://github.com/trek10inc/aws-lambda-debugger TCP stack over CloudWatch Logs: http://bit.ly/2ZvhbfR the “Richard Linklayer” project: https://github.com/smithclay/rlinklayer Tom Wallace “metaprogramming in Lambda”: http://bit.ly/2WMY9VB Lambda internals: http://bit.ly/2WMqYRT running Docker in Lambda: http://bit.ly/2IQ7lhY the “scar” project for running Docker in Lambda: https://github.com/grycap/scar investigation into Lambda coldstart time: http://bit.ly/2WL1uj0 how expensive is the AWS SDK: http://bit.ly/2Udjl0U optimized AWS SDK layer: https://github.com/lumigo/lambda-layer-optimized-aws-sdk
  65. 65. Friday, 5pm

×