learning to build distributed systems the hard way
DESCRIPTION
Scandinavian Developer Conference 2013TRANSCRIPT
![Page 1: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/1.jpg)
LEARNING TO BUILDDISTRIBUTED SYSTEMS
THE HARD WAY
@iconara
NEWand improved!
![Page 2: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/2.jpg)
LEARNING TO BUILDDISTRIBUTED SYSTEMS
THE HARD WAY
@iconara
NEWand improved!
![Page 3: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/3.jpg)
speakerdeck.com/iconara
![Page 4: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/4.jpg)
Theo / @iconara
![Page 5: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/5.jpg)
chief architect at BURT
![Page 6: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/6.jpg)
FAILUREembrace it
![Page 7: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/7.jpg)
SCALEhow hard can it be? let’s worry about that later.
![Page 8: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/9.jpg)
BALANCE“customer” is a really bad shard key,
find something that distributes evenly & uniformly
![Page 10: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/10.jpg)
SCALE OUT, NOT UPbigger boxes aren’t going to save you
<
![Page 11: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/13.jpg)
LIMITSwe’ll probably never run out of memory
![Page 14: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/14.jpg)
BACK PRESSUREwhat happens when the system is working at full
capacity? what happens next?
![Page 15: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/17.jpg)
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](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/18.jpg)
PROCESSING& STORAGE
separate processing from storage,they almost never scale together.
![Page 19: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/19.jpg)
SCALEexponential scaling is also scaling,
but you want it as cheaply as possible
![Page 20: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/20.jpg)
SCALEyour CFO may not agree that O(2n) = O(n)
![Page 21: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/21.jpg)
GÖTEBORG, DISTRIBUTED
@gbgdistrmeetup.com/gbgdistributed
![Page 22: Learning to build distributed systems the hard way](https://reader034.vdocuments.mx/reader034/viewer/2022042813/5457951daf795994188b516c/html5/thumbnails/22.jpg)
KTHXBAI@iconara
github.com/iconaraarchitecturalatrocities.com
burtcorp.com