Секреты Фейсбука: как выдержать 50 миллионов запросов в...

42

Upload: ontico

Post on 16-Jun-2015

987 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)
Page 2: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

!"" Million Active Users

!M

"!M

#$!M

#%!M

$&!M

'!!M

#""$ #""! #""% #""& #""' #""(

!""M

Page 3: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

## property on the Internet (time on site)

)""s of billions of monthly page views

>$ trillion feed actions processed per day

)""s of millions of cache queries per second

Over # trillion objects cached

Over !"" million active users, half log in every day

)"" billion photo files stored

Over #" billion minutes spent every Day

Over # billion pieces of content uploaded every week

Page 4: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Move FastServer ScalingReliability

Page 5: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

!"" Million Active Users

!M

"!M

#$!M

#%!M

$&!M

'!!M

#""$ #""! #""% #""& #""' #""(

!""M

Page 6: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Over ) million active users per engineer

!

"#!,!!!

#$!,!!!

%"!,!!!

&'!,!!!

(,"!!,!!!

Facebook Google* Amazon* Microsoft*

&!,"""$%,"""#$","""

#,#"","""

* Conservative estimates based on publicly available data

Page 7: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Few external deadlines... but

Page 8: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

The site can’t go down

Page 9: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Frequent small changesNever a delay waiting for a pushEasier to isolate bugs

Major changes dark launched

Page 10: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)
Page 11: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)
Page 12: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Traditional websites

Bob

Bob’s data

Page 13: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Traditional websites

Bob

Bob’s data

Julie

Julie’s data

Dan

Dan’s data

Beth

Beth’s data

Sue

Sue’s data

Erin

Erin’s data

Page 14: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Facebook the data is interconnectedBob ErinBeth

Servers

Page 15: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)
Page 16: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)
Page 17: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Scale Horizontally

Page 18: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Database

Memcache

Web Server

Page 19: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Database

Memcache

Web Server

Page 20: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Database

Memcache

Web Server

Page 21: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Database

Memcache

Web Server

Page 22: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Network Incast

Memcache Memcache Memcache Memcache

Switch

PHP Client

Page 23: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Network Incast

Many SmallGet Requests

Memcache Memcache Memcache Memcache

Switch

PHP Client

Page 24: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Memcache Memcache Memcache Memcache

Switch

PHP Client

Many bigdata packets

Network Incast

Page 25: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Memcache Memcache Memcache Memcache

Switch

PHP Client

Network Incast

Page 26: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Memcache Memcache Memcache Memcache

Switch

PHP Client

Network Incast

Page 27: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Memcache Memcache Memcache Memcache

Switch

PHP Client

Network Incast

Page 28: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Reliability

Page 29: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Single Points of Failure

Page 30: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Single Points of FailureSoftware can be a SPOF

Page 31: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Don’t make small problems big

Page 32: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Don’t make small problems bigDon’t push problems upstream

Page 33: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Don’t make small problems bigDon’t push problems upstreamBe wary of “smart” failover

Page 34: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Don’t make small problems bigDon’t push problems upstreamBe wary of “smart” failoverShed load when you’re in trouble

Page 35: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

If you lose half of your machinesyou’re doing well if you’re serving half of your traffic

Page 36: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Measure Everything

Page 37: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

p(! vs p((

Page 38: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)
Page 39: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

CultureAlways do a post-mortemRelease oftenControl and Responsibility

Page 40: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Facebook Platform

Page 41: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

Lessons LearnedFederate everythingKeep failures containedMeasure distributionsUnderstand every problemMake a person responsible

Page 42: Секреты Фейсбука: как выдержать 50 миллионов запросов в секунду (Robert Johnson)

(c) $!!( Facebook, Inc. or its licensors. )"Facebook" is a registered trademark of Facebook, Inc.. All rights reserved. #.!