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,493