Dont try these at home

Yan Cui
Yan CuiSpeaker at Self
DON’T
TRY
THESE
AT
HOME
Dont try these at home
SPOILERS!!!
@theburningmonk theburningmonk.com
dream lvl 1
dream lvl 2
dream lvl 3
dream lvl 4
dream lvl 5
Dont try these at home
Dont try these at home
always telling people not
to do something,
and then does it himself!
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
monkey see,
monkey do
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
application of
best practices
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
effectively combine
practices, and deviates
from them as needed
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
“transcends reliance on rules, guidelines and maxims”
“intuitive grasp of situations based on deep understanding”
@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”
@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?
@theburningmonk theburningmonk.com
doing the same thing everyday is
going to get you there
NOT
@theburningmonk theburningmonk.com
true expertise requires deliberate learning
@theburningmonk theburningmonk.com
10,000 hours of deliberate
practice to reach the top of an
ultra-competitive field
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
10,000 hours of deliberate
practice to reach the top of an
ultra-competitive field
@theburningmonk theburningmonk.com
that’s the 6th walk today
WTF is a pokemon?
Dont try these at home
@theburningmonk theburningmonk.com
pickle Rick!
spent decades in LIMBO!
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
experimentation
Yan Cui
http://theburningmonk.com
@theburningmonk
AWS user for 10 years
http://bit.ly/yubl-serverless
Yan Cui
http://theburningmonk.com
@theburningmonk
Developer Advocate @
Dont try these at home
Yan Cui
http://theburningmonk.com
@theburningmonk
Independent Consultant
advisetraining delivery
theburningmonk.com/courses
homeschool.dev/class/production-ready-serverless
4-week virtual workshop, May 4 - May 29
@theburningmonk theburningmonk.com
value of experiments
@theburningmonk theburningmonk.com
but, do them tastefully
value of experiments
@theburningmonk theburningmonk.com
they will be g00d for you, too!
@theburningmonk theburningmonk.com
1. do experiment
2. write a blog post
3. do a talk at user groups or conferences
@theburningmonk theburningmonk.com
pubby
do. write. speak.
@theburningmonk theburningmonk.com
pubby
do. write. speak.
REPEAT!
Dont try these at home
@theburningmonk theburningmonk.com
here be experiments…
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
scrapping
snapshotting SPA
E2E testing
visual testing
bots
generating PDFs/PNGs/open graph images, etc.
rendering canvas animations
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
Dont try these at home
@theburningmonk theburningmonk.com
metaprogramming: programs that can program itself
@theburningmonk theburningmonk.com
a Lambda function…
have read-access to its own code
@theburningmonk theburningmonk.com
a Lambda function…
have read-access to its own code
can update its own configuration
@theburningmonk theburningmonk.com
a Lambda function…
have read-access to its own code
can update its own configuration
can update its event source mappings
@theburningmonk theburningmonk.com
functions can self-optimize
@theburningmonk theburningmonk.com
e.g. adjust memory/timeout dynamically to
deal with back-pressure
@theburningmonk theburningmonk.com
functions can deploy updates to itself
updating function configuration causes all warm
lambdas to be killed immediately
@theburningmonk theburningmonk.com
e.g. slow-changing, static data in global vars
or environment vars
@theburningmonk theburningmonk.com
auto-generated APIs
learning chatbot
self-healing architectures
inlined IAM role-changes
self-building functions
…
@theburningmonk theburningmonk.com
https://bit.ly/3fpLjCq
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
complexity!
@theburningmonk theburningmonk.com
hard to test
@theburningmonk theburningmonk.com
security? what security!?
@theburningmonk theburningmonk.com
im-immutable infrastructure
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
local lambda
golang SSH server
ngrok
@theburningmonk theburningmonk.com
lambdashell.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
avoids Lambda timeouts!
no need for recursive function
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
relies on implementation details that can
change without notice
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
local lambda
node debugger
broker
proxy lib
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
there are easier ways to debug code
@theburningmonk theburningmonk.com
there are easier ways to debug code
SAM local, sls invoke local, serverless-offline,
docker-lambda, etc.
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
bridge network endpoints
to local MAC address
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
DO try these
at home
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
setup time
@theburningmonk theburningmonk.com
setup time initialization
@theburningmonk theburningmonk.com
setup time initialization
cold start
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
more memory =
slower cold start!
@theburningmonk theburningmonk.com
results could be different now
@theburningmonk theburningmonk.com
experiment against realistic workload
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
https://bit.ly/2XkBgI5
@theburningmonk theburningmonk.com
http://bit.ly/2Udjl0U
@theburningmonk theburningmonk.com
setup time initialization
cold start
@theburningmonk theburningmonk.com
@theburningmonk theburningmonk.com
full AWS-SDK vs.
DynamoDB only
@theburningmonk theburningmonk.com
full AWS-SDK vs.
DynamoDB only
webpack!!
@theburningmonk theburningmonk.com
http://bit.ly/2Gep1CB
@theburningmonk theburningmonk.com
saves ~25ms for every IO op
Set AWS_NODEJS_CONNECTION_REUSE_ENABLED env var to “1”
Dont try these at home
EXPERIMENTS
ARE
GOOD
@theburningmonk theburningmonk.com
Dreyfus Model for Skill Acquisition
experimentation
DON’T
TRY
THESE
AT
HOME WORK
Dont try these at home
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
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
@theburningmonk theburningmonk.com
Production-Ready Serverless
@theburningmonk theburningmonk.com
homeschool.dev/class/production-ready-serverless
4-week virtual workshop, May 4 - May 29
burningblogmay202015% off with code
@theburningmonk theburningmonk.com
lambdabestpractice.com bit.ly/complete-guide-to-aws-step-functions
20% off my courses
slsdays-paris-may2020
@theburningmonk
theburningmonk.com
github.com/theburningmonk
1 of 110

More Related Content

Recently uploaded(20)

CXL at OCPCXL at OCP
CXL at OCP
CXL Forum203 views
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet49 views
ThroughputThroughput
Throughput
Moisés Armani Ramírez31 views
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
METHOD AND SYSTEM FOR PREDICTING OPTIMAL LOAD FOR WHICH THE YIELD IS MAXIMUM ...
Prity Khastgir IPR Strategic India Patent Attorney Amplify Innovation24 views
The Research Portal of Catalonia: Growing more (information) & more (services)The Research Portal of Catalonia: Growing more (information) & more (services)
The Research Portal of Catalonia: Growing more (information) & more (services)
CSUC - Consorci de Serveis Universitaris de Catalunya59 views
Liqid: Composable CXL PreviewLiqid: Composable CXL Preview
Liqid: Composable CXL Preview
CXL Forum120 views
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web Developers
Maximiliano Firtman161 views

Dont try these at home