Solving Imaginary Scaling Issues
See the slides at your own pace:
Who is this guy?
Laurie Voss, COO,
I can't say ****?
What in tarnation is "scaling" anyway?
Making one big thing bigger
Making lots of little things.
Communication does not scale
Links in a network:
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.
Databases with cool-sounding names
Trust not the marketing pages
especially of database techologies
Minifying code makes it run sooner
Missing the point
Putting A Node.js Proxy In Front Of your COBOL Backend
Putting a proxy in front of a server slows it down
Fudge nuggets, let's use BitTorrent for everything
is not speed
is not equal
Running exactly the same software, but in Docker
Docker does not magically make your application better
Rearranging the deck chairs
Splitting everything into 35 microservices all maintained by 1 person
help teams scale
Scaling a team
A team of one doesn't need microservices
300% performance boosts by deleting data validity checks
Scale up by giving fewer fucks
Jiminy Crickets, let's use
Blockchains are not general purpose databases
Do not get me started on ICOs
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.
Put a cache on it
can't be cached
And it's usually the most important stuff.
You can publish scoped packages
- npm Organizations are free!
- You can publish private packages
- $7/month for unlimited packages
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
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
Optimizing your PNGs while hosting 300MB video ads
Not all scaling solutions are technical
Blaming everything on the last
person to quit
Gee willickers, let's try ✨Erlang✨
"Putting the funk in functional programming since 1986"
Functional programming is just different, not better
Sharding your database before adding any indexes
Replacing your SQL DB with a NoSQL DB then implementing SQL in your ORM
General purpose databases are
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.
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
- 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!
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
Golly gee, let's use ✨machine learning✨
Nightmare cats for all!
on your pitch deck!
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.
a kind of scaling
but probably not the kind you need.
Kitty whiskers, let's go
Oh, and also you have to rewrite your whole app
and probably rewire your brain.
The way to scale any application is: carefully
npm has scaled
and so can you
npm t-shirts for good questions in the hallway!
Solving Imaginary Scaling Issues At Scale