Solving Imaginary Scaling Issues
at scale
Thunderplains, 2017-11-03
See the slides at your own pace:
http://slides.com/seldo/solving-imaginary-scaling-issues
Who is this guy?
Laurie Voss, COO,
Twitter: @seldo
Holy ****,
I can't say ****?
Subtitle
Imaginary
Scaling
Problems
24 chapters
in
34 minutes
What in tarnation is "scaling" anyway?
Vertical scaling
Making one big thing bigger
Horizontal scaling
Making lots of little things.
Team scaling
Communication does not scale
Links in a network:
n(n-1)/2
No app can scale unless the team scales with it
Speed is not scaling, but speed can help you scale
"Not a question, more of a comment"
Don't be that person.
Chapter 1:
Databases with cool-sounding names
Trust not the marketing pages
especially of database techologies
Novelty
Chapter 2:
Minifying the JavaScript of your O(n^3) to-do list
Minifying code makes it run sooner
Not faster
Missing the point
Chapter 3:
Putting A Node.js Proxy In Front Of your COBOL Backend
Putting a proxy in front of a server slows it down
(usually)
So close
Chapter 4:
Fudge nuggets, let's use BitTorrent for everything
BitTorrent is
✨distributed✨
Throughput
is not speed
All scaling
is not equal
Chapter 5:
Running exactly the same software, but in Docker
Docker does not magically make your application better
Rearranging the deck chairs
Chapter 6:
Splitting everything into 35 microservices all maintained by 1 person
Microservices
help teams scale
Not software
Scaling a team
A team of one doesn't need microservices
Chapter 7:
300% performance boosts by deleting data validity checks
Scale up by giving fewer fucks
Chapter 8:
Jiminy Crickets, let's use
✨the blockchain✨
for everything
Blockchains are not general purpose databases
Do not get me started on ICOs
Chapter 9:
Using protobufs to poll 300 times per second
Don't scale by doing dumb stuff faster
Most problems aren't hard
Don't go for extra credit.
Chapter 10:
Put a cache on it
Some stuff
can't be cached
And it's usually the most important stuff.
Commercial break
-
You can publish scoped packages
- npm Organizations are free!
- You can publish private packages
- $7/month for unlimited packages
Chapter 11:
Rewriting your APIs in C when your payload is 3MB of JSON
Optimize your API before optimizing your code
A badly designed API is slow in any language
Chapter 12:
Fiddlesticks, let's rewrite it in Go
"Go" is a really hard name to Google
Which is funny 'cause Google invented it
Rewrites make your code faster
And your team slower
Chapter 13:
Optimizing your PNGs while hosting 300MB video ads
Not all scaling solutions are technical
https://www.soasta.com/blog/google-mobile-web-performance-study/
Chapter 14:
Blaming everything on the last
person to quit
Chapter 15:
Gee willickers, let's try ✨Erlang✨
"Putting the funk in functional programming since 1986"
Functional programming is just different, not better
Chapter 16:
Sharding your database before adding any indexes
Chapter 17:
Replacing your SQL DB with a NoSQL DB then implementing SQL in your ORM
General purpose databases are
pretty great
Chapter 18:
A type-checked transpilation step will surely speed things up
Type checking helps you write bigger applications
This is not the same as scaling.
Types are great
They're just not a scaling technique.
Chapter 19:
Fraggle Rock, let's use a Bloom filter
Bloom filters: useful at Google scale
You're not at Google scale, and never will be.
npm uses a bloom filter now
Chapter 20:Renting a 32-core machine with 500GB of RAM
when your limit is disk I/O
Bigger boxes are not necessarily better
Commercial break
- npm 5 is 10x faster than npm 4!
- Holy cow!
- npm 5 locks by default!
- Yes, like yarn!
- npm supports 2FA
- So security, much factor!
Chapter 21:
Writing a new language almost the same as your old language but faster
Guest chapter by Mark Zuckerberg
If you can afford this, go right ahead
Chapter 22:
Golly gee, let's use ✨machine learning✨
for everything
Nightmare cats for all!
Sprinkle ML
on your pitch deck!
Chapter 23:
Moving from the cloud to bare metal
Bare metal is about economics
You are not better at running servers than Jeff Bezos
Also, Jeff Bezos can probably kick your ass in a fight.
Finance is
a kind of scaling
but probably not the kind you need.
Chapter 24:
Kitty whiskers, let's go
✨serverless✨
Oh, and also you have to rewrite your whole app
and probably rewire your brain.
Bonus chapter:
Guessing
The way to scale any application is: carefully
npm has scaled
and so can you
Thank you
Twitter: @seldo
npm t-shirts for good questions in the hallway!
These slides:
https://slides.com/seldo/solving-imaginary-scaling-issues
Solving Imaginary Scaling Issues At Scale
By seldo
Solving Imaginary Scaling Issues At Scale
- 6,041