Your language doesn't scale

Post on 29-Nov-2014

646 views 0 download

Tags:

description

Another set of slides for Colorado Software Summit 2008. Again, I never ended up giving this talk because I had to ship product.

transcript

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 1

Your Language Doesn't ScaleA Discussion of the Nature of Scaling

Ikai Lan

Linkedin

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 2

Hi! I’m Ikai Lan

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 3

This talk is about scaling

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 4

Particularly with regards to theweb

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 5

Attributes of a web app

Client pull based

Operations must finish “fast”

“Fresh” information

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 6

The chip on my shoulder

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 7

Ruby on Rails can’t scale!

Ruby is slow

Default SQL used is not optimal

Page rendering is slow

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 8

All of these are true

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 9

1. Ruby is slow

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 10

2. SQL used is not optimal

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 11

3. Rendering is slow

I don’t have a clever picture here.

Just take my word for it.

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 12

Why do these fall flat?

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 13

Scaling != efficiency

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 14

Efficiency is

Minimizing input foroutput

Bang for your buck

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 15

Scaling != performance

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 16

Performance is

Maximizing outputfor some input

Speed

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 17

Scalability is

Being able to growcapacity withdemand

How well a solutionto some problemwill work when thesize of the problemincreases

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 18

In an ideal world …

We achieve scalability

efficiently while maintaining

performance

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 19

Myth: Needing to throwhardware to solve acapacity problem meansyour application is notscalable

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 20

Truth: If this works, bythe definition, yourapplication IS scalable

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 21

… maybe not efficient

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 22

So the arguments …

Ruby is slow

Default SQL is notoptimal

Page rendering isslow

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 23

Internet

User

Concerning performance …

BrowserDatabase

Assets

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 24

Internet

User

How much time?

Rendering: LONG TIMELONG TIME

Assets

Tiny fraction

Network: ???

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 25

Scaling case study

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 26

First let’s define terms

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 27

Vertical scaling

Improvingperformance in oneof our componenttiers

Adding a tieroptimized for someportion of the load

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 28

Vertical scaling examples

Upgrading hardware

Edge caching

Adding a caching tier for the data store

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 29

Horizontal scaling

Increase capacity byincreasing instancesof components

Spreading loadacross instances

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 30

Horizontal scaling examples

Load balancing (hardware LB or DNSload balancing)

Data partitioning

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 31

Different strokes …

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 32

On to the case study!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 33

These guys made a site

Matt Ikai

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 34

To share pictures!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 35

Our first architecture

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 36

Awesome! We have users!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 37

We have too many users!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 38

Dude! Add more

hardware!

You don’t think I tried?

The hardware - it does

nothing!

The yelling begins

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 39

Our current architecture

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 40

Why isn’t this working?

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 41

Bottlenecks! Bottlenecks!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 42

The first bottleneck is always thepersistent store

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 43

Solution: Replicate data

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 44

New problem: replication delay

How come everything I do

takes a few minutes to work?

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 45

Solution: caching

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 46

New problem: stale data

I can’t remove this tag!

Sometimes things aren’t up

to date!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 47

So now we’ve spent all thatengineering effort and addedno new functionality

(would have been a lot harder if wewere also trying to add features tostay competitive)

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 48

Are we done? Maybe …

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 49

More growth: allpersistence operations areexpensive

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 50

Have to partition DB

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 51

Our application has to nowunderstand how to speakto a partitioned store

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 52

This is really hard!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 53

And I haven’t even gottento transactional integrityor backups

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 54

We’re also introducingmany more points offailure = ops burden

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 55

Engineering problems

Cross functional development

Merging

Regression testing

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 56

Things now cost too much!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 57

Do we even have a businessmodel?

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 58

No one is spared!

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 59

Questions?

Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin

Ikai Lan — Your Language Doesn’t Scale Slide 60

Thanks for coming!

ilan@linkedin.com

http://www.linkedin.com/in/ikailan