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