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.

Dont try these at home

Learning by doing is hands-down the best way to learn. With serverless, the cost of experimenting (and learning!) in the cloud has reduced to zero, almost. In this talk, Yan Cui discusses the value of experimenting in the cloud and doing so in a tasteful manner (i.e. don't put your experiments into production!), and shares a number of interesting experiments that the serverless community has done, and some ideas and learning that we can take from them.

Recording of the talk is available here: https://www.youtube.com/watch?v=oeomaQR1IT4

  • Be the first to comment

  • Be the first to like this

Dont try these at home

  1. 1. DON’T TRY THESE AT HOME
  2. 2. SPOILERS!!!
  3. 3. @theburningmonk theburningmonk.com 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. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition
  6. 6. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition monkey see, monkey do
  7. 7. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition application of best practices
  8. 8. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition effectively combine practices, and deviates from them as needed
  9. 9. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition
  10. 10. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition “transcends reliance on rules, guidelines and maxims” “intuitive grasp of situations based on deep understanding”
  11. 11. @theburningmonk theburningmonk.com 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. @theburningmonk theburningmonk.com 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. @theburningmonk theburningmonk.com doing the same thing everyday is going to get you there NOT
  14. 14. @theburningmonk theburningmonk.com true expertise requires deliberate learning
  15. 15. @theburningmonk theburningmonk.com 10,000 hours of deliberate practice to reach the top of an ultra-competitive field
  16. 16. @theburningmonk theburningmonk.com
  17. 17. @theburningmonk theburningmonk.com
  18. 18. @theburningmonk theburningmonk.com 10,000 hours of deliberate practice to reach the top of an ultra-competitive field
  19. 19. @theburningmonk theburningmonk.com that’s the 6th walk today WTF is a pokemon?
  20. 20. @theburningmonk theburningmonk.com pickle Rick!
  21. 21. spent decades in LIMBO!
  22. 22. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition experimentation
  23. 23. Yan Cui http://theburningmonk.com @theburningmonk AWS user for 10 years
  24. 24. http://bit.ly/yubl-serverless
  25. 25. Yan Cui http://theburningmonk.com @theburningmonk Developer Advocate @
  26. 26. Yan Cui http://theburningmonk.com @theburningmonk Independent Consultant advisetraining delivery
  27. 27. theburningmonk.com/courses
  28. 28. homeschool.dev/class/production-ready-serverless 4-week virtual workshop, May 4 - May 29
  29. 29. @theburningmonk theburningmonk.com value of experiments
  30. 30. @theburningmonk theburningmonk.com but, do them tastefully value of experiments
  31. 31. @theburningmonk theburningmonk.com they will be g00d for you, too!
  32. 32. @theburningmonk theburningmonk.com 1. do experiment 2. write a blog post 3. do a talk at user groups or conferences
  33. 33. @theburningmonk theburningmonk.com pubby do. write. speak.
  34. 34. @theburningmonk theburningmonk.com pubby do. write. speak. REPEAT!
  35. 35. @theburningmonk theburningmonk.com here be experiments…
  36. 36. @theburningmonk theburningmonk.com
  37. 37. @theburningmonk theburningmonk.com
  38. 38. @theburningmonk theburningmonk.com scrapping snapshotting SPA E2E testing visual testing bots generating PDFs/PNGs/open graph images, etc. rendering canvas animations
  39. 39. @theburningmonk theburningmonk.com
  40. 40. @theburningmonk theburningmonk.com
  41. 41. @theburningmonk theburningmonk.com
  42. 42. @theburningmonk theburningmonk.com metaprogramming: programs that can program itself
  43. 43. @theburningmonk theburningmonk.com a Lambda function… have read-access to its own code
  44. 44. @theburningmonk theburningmonk.com a Lambda function… have read-access to its own code can update its own configuration
  45. 45. @theburningmonk theburningmonk.com a Lambda function… have read-access to its own code can update its own configuration can update its event source mappings
  46. 46. @theburningmonk theburningmonk.com functions can self-optimize
  47. 47. @theburningmonk theburningmonk.com e.g. adjust memory/timeout dynamically to deal with back-pressure
  48. 48. @theburningmonk theburningmonk.com functions can deploy updates to itself updating function configuration causes all warm lambdas to be killed immediately
  49. 49. @theburningmonk theburningmonk.com e.g. slow-changing, static data in global vars or environment vars
  50. 50. @theburningmonk theburningmonk.com auto-generated APIs learning chatbot self-healing architectures inlined IAM role-changes self-building functions …
  51. 51. @theburningmonk theburningmonk.com https://bit.ly/3fpLjCq
  52. 52. @theburningmonk theburningmonk.com
  53. 53. @theburningmonk theburningmonk.com complexity!
  54. 54. @theburningmonk theburningmonk.com hard to test
  55. 55. @theburningmonk theburningmonk.com security? what security!?
  56. 56. @theburningmonk theburningmonk.com im-immutable infrastructure
  57. 57. @theburningmonk theburningmonk.com
  58. 58. @theburningmonk theburningmonk.com local lambda golang SSH server ngrok
  59. 59. @theburningmonk theburningmonk.com lambdashell.com
  60. 60. @theburningmonk theburningmonk.com
  61. 61. @theburningmonk theburningmonk.com
  62. 62. @theburningmonk theburningmonk.com avoids Lambda timeouts! no need for recursive function
  63. 63. @theburningmonk theburningmonk.com
  64. 64. @theburningmonk theburningmonk.com relies on implementation details that can change without notice
  65. 65. @theburningmonk theburningmonk.com
  66. 66. @theburningmonk theburningmonk.com local lambda node debugger broker proxy lib
  67. 67. @theburningmonk theburningmonk.com
  68. 68. @theburningmonk theburningmonk.com there are easier ways to debug code
  69. 69. @theburningmonk theburningmonk.com there are easier ways to debug code SAM local, sls invoke local, serverless-offline, docker-lambda, etc.
  70. 70. @theburningmonk theburningmonk.com
  71. 71. @theburningmonk theburningmonk.com bridge network endpoints to local MAC address
  72. 72. @theburningmonk theburningmonk.com
  73. 73. @theburningmonk theburningmonk.com
  74. 74. @theburningmonk theburningmonk.com DO try these at home
  75. 75. @theburningmonk theburningmonk.com
  76. 76. @theburningmonk theburningmonk.com
  77. 77. @theburningmonk theburningmonk.com setup time
  78. 78. @theburningmonk theburningmonk.com setup time initialization
  79. 79. @theburningmonk theburningmonk.com setup time initialization cold start
  80. 80. @theburningmonk theburningmonk.com
  81. 81. @theburningmonk theburningmonk.com more memory = slower cold start!
  82. 82. @theburningmonk theburningmonk.com results could be different now
  83. 83. @theburningmonk theburningmonk.com experiment against realistic workload
  84. 84. @theburningmonk theburningmonk.com
  85. 85. @theburningmonk theburningmonk.com https://bit.ly/2XkBgI5
  86. 86. @theburningmonk theburningmonk.com http://bit.ly/2Udjl0U
  87. 87. @theburningmonk theburningmonk.com setup time initialization cold start
  88. 88. @theburningmonk theburningmonk.com
  89. 89. @theburningmonk theburningmonk.com full AWS-SDK vs. DynamoDB only
  90. 90. @theburningmonk theburningmonk.com full AWS-SDK vs. DynamoDB only webpack!!
  91. 91. @theburningmonk theburningmonk.com http://bit.ly/2Gep1CB
  92. 92. @theburningmonk theburningmonk.com saves ~25ms for every IO op Set AWS_NODEJS_CONNECTION_REUSE_ENABLED env var to “1”
  93. 93. EXPERIMENTS ARE GOOD
  94. 94. @theburningmonk theburningmonk.com Dreyfus Model for Skill Acquisition experimentation
  95. 95. DON’T TRY THESE AT HOME WORK
  96. 96. 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
  97. 97. https://theburningmonk.com/hire-me AdviseTraining Delivery “Fundamentally, Yan has improved our team by increasing our ability to derive value from AWS and Lambda in particular.” Nick Blair Tech Lead
  98. 98. @theburningmonk theburningmonk.com Production-Ready Serverless
  99. 99. @theburningmonk theburningmonk.com homeschool.dev/class/production-ready-serverless 4-week virtual workshop, May 4 - May 29 burningblogmay202015% off with code
  100. 100. @theburningmonk theburningmonk.com lambdabestpractice.com bit.ly/complete-guide-to-aws-step-functions 20% off my courses slsdays-paris-may2020
  101. 101. @theburningmonk theburningmonk.com github.com/theburningmonk

×