Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to...

58
Colorado Software Summit: October 19 – 24, 2008 © Copyright 2008, Linkedin Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 1 0-1 Million in 46 Days Scaling a Facebook Application in Rails Ikai Lan Linkedin

Transcript of Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to...

Page 1: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 1

0-1 Million in 46 DaysScaling a Facebook Application in Rails

Ikai Lan

Linkedin

Page 2: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 2

Hi! I’m Ikai Lan

Page 3: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3

What this talk is not

One-size-fits all solution to scalingproblems

Example source code

An in-depth discussion of Ruby onRails

Page 4: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 4

What this talk is

A look into the challenges we facedwith scaling a rapid growth webapplication

Page 5: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 5

This is a detective story.

Page 6: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 6

Rather than telling you bestpractices

Page 7: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 7

We’ll talk about how we came todefine them.

Page 8: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 8

Bumper Sticker?

Investigation of the Facebookplatform

Investigation of Ruby on Rails as aserious development platform

Page 9: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 9

Reid Hoffman’s wager

Page 10: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 10

1 million users in 45 days!

Page 11: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 11

Personal Badging

Create and display badges

Share badges

Find badges

Page 12: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 12

= Bumper Sticker!

Page 13: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 13

Success!

Page 14: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 14

… 1 million in 46 days

Page 15: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 15

Trouble in Paradise

Page 16: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 16

Throw hardware at it!

Page 17: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 17

More hardware!

Page 18: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 18

This is not working.

Page 19: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 19

Current state of affairs

7 million adds

20 million pageviews

3 million timeouts a day

Page 20: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 20

Strategy

Analyze MySQL slow queries log

Application log

Page 21: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 21

D’oh! No logging!

Page 22: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 22

Logging -> Syslog

Rails does not buffer writes tofilesystem

Page 23: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 23

Clue 1: Slaves ran several hoursbehind Master

Page 24: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 24

Clue 2: Updates to add count

One by one updates

Page 25: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 25

Counter Cache

SQL Updates not batched

Very inefficient!

Page 26: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 26

Result: less slow queries

Page 27: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 27

Lesson 1: Buffereverything!

Page 28: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 28

Still had lots of timeouts!

Page 29: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 29

Clue 3: 80% of traffic to staticcontent

Page 30: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 30

Next attempt: edge caching!

Page 31: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 31

Edge caching using fb:ref

Facebook mechanism for storingdata

Page 32: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 32

Fb:ref on the load balancer!

F5 BigIP set to conditionally respondto static URIs with fb:ref

Background process to constantlyupdate fb:ref in Facebook cache

Page 33: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 33

Result: Static pages =perfect

Page 34: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 34

Lesson 2: Edge cachewhen possible

Page 35: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 35

But we were still servingmillions of timeouts!

Page 36: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 36

Clue 4: Most CPU time acceptingstickers

Request taking up to 10 secondsduring peak

Page 37: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 37

Slow database writes

Page 38: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 38

1st attempt: Background processwrites

Page 39: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 39

Result: Timeouts droppedsignificantly!

Page 40: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 40

Success … ?

Page 41: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 41

No.

Page 42: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 42

Application would notseem responsive to useractions and seem out ofsync.

Page 43: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 43

2nd attempt: Two stepwrite

Page 44: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 44

Step 1: Synchronouswrite to MemCache

Step 2: Asynchronous write to

database (queue)

Page 45: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 45

Result: Success!

Page 46: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 46

Lesson 3: Useasynchronous processingwhen possible

Page 47: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 47

Lesson 3.1: Keeping datain sync is not trivial!

Page 48: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 48

Lesson 3.2: Lack ofconcurrency in Railspresents problem earlier

Page 49: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 49

Lesson 3.3: Very fewproblems can be reducedto a linear equation

Page 50: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 50

QED: Rails can scale.

Page 51: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 51

Latest stats

16 million installs

30 million pageviews a day

Average response time of <80ms

Page 52: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 52

Scaling has a price!

Page 53: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 53

Complexity

Page 54: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 54

No new functionality!

Page 55: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 55

Key takeaways

Make long running tasksasynchronous

Use edge caching

Buffer long operations when possible

Page 56: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 56

The bigger picture

Language choice is less importantthan architecture

Be creative – brute force doesn’twork

Be ready to be wrong

Page 57: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 57

Questions?

Page 58: Scaling a Facebook Application in Rails - Software Summit · 2009. 6. 3. · Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 3 What this

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

Ikai Lan — From 0 to 1,000,000 in 46 Days: Scaling a Facebook Application in Rails Slide 58

Thanks for coming!

[email protected]

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