+ All Categories
Home > Technology > Luca Maraschi presentation nodeday Amsterdam Feb 2016

Luca Maraschi presentation nodeday Amsterdam Feb 2016

Date post: 06-Jan-2017
Category:
Upload: nearform
View: 1,555 times
Download: 1 times
Share this document with a friend
74
TO BE ANNOUNCED
Transcript
Page 1: Luca Maraschi presentation nodeday Amsterdam Feb 2016

TO BEANNOUNCED

Page 2: Luca Maraschi presentation nodeday Amsterdam Feb 2016

The Day afterPRODUCTION

Page 3: Luca Maraschi presentation nodeday Amsterdam Feb 2016

@lucamaraschi

Page 4: Luca Maraschi presentation nodeday Amsterdam Feb 2016

❤ !

Page 5: Luca Maraschi presentation nodeday Amsterdam Feb 2016

I LOVE CORE DUMPS!

Page 6: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 7: Luca Maraschi presentation nodeday Amsterdam Feb 2016

do epic shit!

Page 8: Luca Maraschi presentation nodeday Amsterdam Feb 2016

"Production is WAR"— Bryan Cantrill

Page 9: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 10: Luca Maraschi presentation nodeday Amsterdam Feb 2016

3 storiesof real production war

Page 11: Luca Maraschi presentation nodeday Amsterdam Feb 2016

at scale!

Page 12: Luca Maraschi presentation nodeday Amsterdam Feb 2016

ya…we faced all 3!

Page 13: Luca Maraschi presentation nodeday Amsterdam Feb 2016

“Poor is the pupil who does not surpass his

master.”— Leonardo da Vinci

Page 14: Luca Maraschi presentation nodeday Amsterdam Feb 2016

1.Walmart

Page 15: Luca Maraschi presentation nodeday Amsterdam Feb 2016

The ’handleScope’ Saga

Page 16: Luca Maraschi presentation nodeday Amsterdam Feb 2016

handleScopekeeps track of the objects on stack

Page 17: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 18: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 19: Luca Maraschi presentation nodeday Amsterdam Feb 2016

150MB leak per day!

Page 20: Luca Maraschi presentation nodeday Amsterdam Feb 2016

down to 22…

Page 21: Luca Maraschi presentation nodeday Amsterdam Feb 2016

but still too muchfor the volume of Walmart!

Page 22: Luca Maraschi presentation nodeday Amsterdam Feb 2016

3 months of debugging…

Page 23: Luca Maraschi presentation nodeday Amsterdam Feb 2016

mdb…or suffer!

Page 24: Luca Maraschi presentation nodeday Amsterdam Feb 2016

and Dtrace…or die!

Page 25: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Yep…and our workerswere leaking too! ;-)

Page 26: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Thank you Walmart!

Page 27: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Page 28: Luca Maraschi presentation nodeday Amsterdam Feb 2016

2.Netflix

Page 29: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Node.js in ’Flames’

Page 30: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 31: Luca Maraschi presentation nodeday Amsterdam Feb 2016

v8 perf_events

Page 32: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Flame graphs

Page 33: Luca Maraschi presentation nodeday Amsterdam Feb 2016

and…

Page 34: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Route handlers storedin 1 global array

Page 35: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Express.js recursively iterates and invokes

all handlersuntil it finds the right one!

Page 36: Luca Maraschi presentation nodeday Amsterdam Feb 2016

next();

function next(err) { if (err && err === 'route') { return done(); }

var layer = stack[idx++]; if (!layer) { return done(err); }

if (layer.method && layer.method !== method) { return next(err); }

if (err) { layer.handle_error(err, req, res, next); } else { layer.handle_request(req, res, next); } }

Page 37: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 38: Luca Maraschi presentation nodeday Amsterdam Feb 2016

the answeris…

Page 39: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Restify

Page 40: Luca Maraschi presentation nodeday Amsterdam Feb 2016

First class residentTraceability

Page 41: Luca Maraschi presentation nodeday Amsterdam Feb 2016

but how?

Page 42: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Bunyan

Page 43: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Dtrace probesor die!

Page 44: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Thank u Netflix!and chill…

Page 45: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Page 46: Luca Maraschi presentation nodeday Amsterdam Feb 2016

3.Joyent

Page 47: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 48: Luca Maraschi presentation nodeday Amsterdam Feb 2016

PostgreSQL autovacuum

Page 49: Luca Maraschi presentation nodeday Amsterdam Feb 2016

github.com/joyent/pglockanalyze

Page 50: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Thank you Joyent!

Page 51: Luca Maraschi presentation nodeday Amsterdam Feb 2016

in progress…

Page 52: Luca Maraschi presentation nodeday Amsterdam Feb 2016

actually…I just heard…

Page 53: Luca Maraschi presentation nodeday Amsterdam Feb 2016

quote_literal()vs.

quote_ident()

Page 54: Luca Maraschi presentation nodeday Amsterdam Feb 2016

wrong quote===

∞ LOOP

Page 55: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 56: Luca Maraschi presentation nodeday Amsterdam Feb 2016

ProductionOperability

Page 57: Luca Maraschi presentation nodeday Amsterdam Feb 2016

?

Page 58: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Traceability

Page 59: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Post-mortem

Page 60: Luca Maraschi presentation nodeday Amsterdam Feb 2016

github.com/nodejs/tracing-wggithub.com/nodejs/post-mortem

Page 61: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 62: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 63: Luca Maraschi presentation nodeday Amsterdam Feb 2016

--abort-on-uncaught-exception

Page 64: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 65: Luca Maraschi presentation nodeday Amsterdam Feb 2016

what’s next?

Page 66: Luca Maraschi presentation nodeday Amsterdam Feb 2016

post-mortem analysiscross platform!

Page 67: Luca Maraschi presentation nodeday Amsterdam Feb 2016

mdb likeeverywhere!

Page 68: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 69: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 70: Luca Maraschi presentation nodeday Amsterdam Feb 2016
Page 71: Luca Maraschi presentation nodeday Amsterdam Feb 2016

github.com/indutny/llnode@indutny

Page 72: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Community drivenenterprise effort

Page 73: Luca Maraschi presentation nodeday Amsterdam Feb 2016

“One reason I think debugging is so hard: you need to know much more about how computers work to debug than you do to

program.”Dave Pacheco(Twitter - 18 August 2015)

Page 74: Luca Maraschi presentation nodeday Amsterdam Feb 2016

Thank you all!do u like Epic Shit?

JOIN #IceMobile!


Recommended