learning to build distributed systems the hard way

22
LEARNING TO BUILD DISTRIBUTED SYSTEMS THE HARD WAY @iconara NEW and improved!

Upload: iconara

Post on 01-Nov-2014

351 views

Category:

Technology


0 download

DESCRIPTION

Scandinavian Developer Conference 2013

TRANSCRIPT

Page 1: Learning to build distributed systems the hard way

LEARNING TO BUILDDISTRIBUTED SYSTEMS

THE HARD WAY

@iconara

NEWand improved!

Page 2: Learning to build distributed systems the hard way

LEARNING TO BUILDDISTRIBUTED SYSTEMS

THE HARD WAY

@iconara

NEWand improved!

Page 3: Learning to build distributed systems the hard way

speakerdeck.com/iconara

Page 4: Learning to build distributed systems the hard way

Theo / @iconara

Page 5: Learning to build distributed systems the hard way

chief architect at BURT

Page 6: Learning to build distributed systems the hard way

FAILUREembrace it

Page 7: Learning to build distributed systems the hard way

SCALEhow hard can it be? let’s worry about that later.

Page 8: Learning to build distributed systems the hard way

KNOW YOUR LIMITSwho’s the largest customer you could sign?

what would happen if you did?

Page 9: Learning to build distributed systems the hard way

BALANCE“customer” is a really bad shard key,

find something that distributes evenly & uniformly

Page 10: Learning to build distributed systems the hard way

SCALE OUT, NOT UPbigger boxes aren’t going to save you

<

Page 11: Learning to build distributed systems the hard way

START WITH TWOOF EVERYTHINGgoing from one to two is the hardest,

force yourself to solve the scaling problem up front

Page 12: Learning to build distributed systems the hard way

START WITH TWOOF EVERYTHING

you’ll solve the scaling problem,and need less overcapacity

THREE

Page 13: Learning to build distributed systems the hard way

LIMITSwe’ll probably never run out of memory

Page 14: Learning to build distributed systems the hard way

BACK PRESSUREwhat happens when the system is working at full

capacity? what happens next?

Page 15: Learning to build distributed systems the hard way

PRODUCTION = QAproduction is where the weird shit happens,

can you test production traffic without deploying to production?

=

Page 16: Learning to build distributed systems the hard way

MONOLITHSrunning all the things on the same box is really fast.

what could ever go wrong?

1:4:9

Page 17: Learning to build distributed systems the hard way

DECOUPLEUNTIL IT BREAKS

moving things to separate services means that you will be able to scale them independently

Page 18: Learning to build distributed systems the hard way

PROCESSING& STORAGE

separate processing from storage,they almost never scale together.

Page 19: Learning to build distributed systems the hard way

SCALEexponential scaling is also scaling,

but you want it as cheaply as possible

Page 20: Learning to build distributed systems the hard way

SCALEyour CFO may not agree that O(2n) = O(n)

Page 21: Learning to build distributed systems the hard way

GÖTEBORG, DISTRIBUTED

@gbgdistrmeetup.com/gbgdistributed

Page 22: Learning to build distributed systems the hard way

KTHXBAI@iconara

github.com/iconaraarchitecturalatrocities.com

burtcorp.com