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
110
Other Decks in Programming
See All in Programming
数百円から始めるRuby電子工作
tarosay
0
130
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
170
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
torikago - Ruby::Boxで照らすモジュラモノリスの実行境界
se4weed
1
330
これって Effect でできたのでは? / TSKaigi Mashup Kansai #2
susisu
0
140
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
400
今さら聞けない .NET CLI
htkym
0
180
Android CLI
fornewid
0
210
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
280
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
960
yield再入門 #phpcon
o0h
PRO
0
930
AIエージェントで 変わるAndroid開発環境
takahirom
2
770
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
980
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
200
How to make the Groovebox
asonas
2
2.3k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.2k
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