Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Crónica de una escala anunciada
Search
Damian Schenkelman
June 23, 2016
Programming
200
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Crónica de una escala anunciada
Damian Schenkelman
June 23, 2016
More Decks by Damian Schenkelman
See All by Damian Schenkelman
Identidad en Web3
dschenkelman
0
350
Demo Identidad en Web3
dschenkelman
1
190
Deep Dive Into Google Zanzibar and its Concepts for Authorization Scenarios
dschenkelman
1
1.4k
Authorization is on the rise. What if there was an API for it?
dschenkelman
0
160
All About AuthZ
dschenkelman
1
470
Evolving Auth0's architecture: From 0 to 2.5+ billion logins per month in 5 years
dschenkelman
1
1.3k
Remote work at Auth0
dschenkelman
0
200
El camino a SRE
dschenkelman
0
210
IDaaS at Scale - From 0 to 2.5B+ logins/month (Auth0 Webinar)
dschenkelman
0
120
Other Decks in Programming
See All in Programming
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
500
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
350
ソフトウェアエンジニアにとっての生成AI - 特性を知って使い倒す / generative ai for software enginner
kishida
7
2.1k
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
250
属人化した知識を、 AIが辿れる地図にする
pkshadeck
PRO
1
210
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
380
KotlinConf Extended South Korea 2026 Keynote
l2hyunwoo
0
120
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1.9k
typoなんかねぇよ
raspython3
0
550
AI時代に学ぶ 好きなルール 嫌いなルール Linter編
shorty5121
0
150
仕様駆動開発の消費期限
watany
20
9k
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
180
Featured
See All Featured
Building an army of robots
kneath
306
46k
The Limits of Empathy - UXLibs8
cassininazir
1
610
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
650
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
390
Designing for Timeless Needs
cassininazir
1
450
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
620
What's in a price? How to price your products and services
michaelherold
247
13k
For a Future-Friendly Web
brad_frost
183
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
sira's awesome portfolio website redesign presentation
elsirapls
0
340
Transcript
Crónica de una escala anunciada npm i dschenkelman
Building a product
Demand
Stabilize
Auth API Identity provider DB Scenario Client
Expected response times
Actual response times
Admit the problem
The problem
Flame graphs
T-shirt time
Password Hashing app.post('/authenticate', (req, res) => { // fetch the
user by req.username from db db.users.findOne({ email: req.body.email }, (err, user) => { ... // compare bcrypt for req.password to db hash const success = bcrypt.compare(req.body.password, user.passwordHash); res.send(success ? 200 : 401); }); });
Scale
Faster Hash
Caching
Scale up
Multiple IdP instances ELB IdP IdP IdP IdP
BaaS app.use('/login', (req, res) => { // fetch the user
by req.username from db db.users.findOne({ email: req.body.email }, (err, user) => { ... // compare bcrypt for req.password to db hash baas.compare(req.body.password, user.passwordHash).then((e success) => { res.send(err || !success ? 401 : 200); }); }); });
Auto Scaling Identity provider ELB BaaS BaaS BaaS BaaS
Cost comparison Price / (1M req) #req per sec /
vCPU t2-micro $0.36 10.00 t2-medium $0.76 9.50 c4-large $1.53 10.00 c3-8xlarge $1.64 8.88
Fail gracefully
Bye
Links • http://security.stackexchange.com/a/83382 • http://www.brendangregg.com/FlameGraphs/ cpuflamegraphs.html • https://github.com/thlorenz/v8-perf/issues/4 • https://github.com/auth0/node-baas
• http://docs.aws.amazon.com/AutoScaling/latest/ DeveloperGuide/US_SetUpASLBApp.html • https://gist.github.com/trevnorris/9616784
Thanks https://github.com/dschenkelman/bcrypt-sample @dschenkelman npm i dschenkelman