SlideShare a Scribd company logo
1 of 38
Download to read offline
SPDY at LinkedIn 
Omer Shapira
Agenda 
What to expect before beers 
 LinkedIn 
 Bandwidth vs. Latency 
 Challenges with HTTP 
 What is SPDY 
 How LinkedIn network stack looks today 
 How we are adopting SPDY
Speed matters 
Who we are and what we do 
 Social network for business 
 Founded in 2002 
 300M+ users 
 200 countries 
 Users first
Let’s talk about speed 
What’s speed, anyway? 
 We measure vehicle speed in m/s 
 How do we measure the Internet 
speed? 
 Cars vs. trains as analogy 
 Bandwidth vs. latency
Let’s talk about bandwidth 
One bazzillion MBps… 
 Bandwidth is analogous to 
number of seats in a plane 
 Adding bandwidth is 
expensive – but simple 
 Typically sold as “speed” 
 Matters for streaming 
 Bandwidth does not 
matter that much for 
business applications
Let’s talk about latency 
Latency: time it takes for the server to receive and process 
request for a page object 
 Shorten the pipe 
 Or move faster 
 Speed of light is a hard limit 
 Decreasing latency is hard and 
sometimes impossible
Important latency limits 
No one will advertise latency 
 100ms – user perceives as instantaneous. 
 1s – is about the upper limit of human flow of thought. User loses the 
feeling direct feedback. 
 10s – upper limit of attention. Feedback is important, and the chance 
of context switch is high. 
 Source: Nielsen Norman Group
Reality check 
Signal latency in vacuum and fiber 
Route Distance 
(km) 
Time in 
vacuum (ms) 
Time in fiber 
(ms) 
TCP handshake in 
fiber (ms) 
NYC to SF 4148 14 21 63 
NYC to London 5585 19 28 84 
NYC to Sydney 15993 53 80 240
More about network latency 
Not all latencies are the same
In reality 
Not all latencies are the same
Fast Internet 
Short latencies, high bandwidth, opportunities 
 Low latency 
 High bandwidth 
 … 
 PROFIT!
Let’s talk about HTTP 
Long latencies, low bandwidth, lots of client time 
 Mimics interactions between a person and a newspaper 
– Reading a page takes time. 
– Transferring text is easy 
– Single browser window 
 On a Sunday morning, with a cup of coffee
Hyper TEXT transfer protocol 
In reality we mostly transfer images
Challenges with HTTP 
The protocol is getting obsolete
Challenges with HTTP 
5 requests in flight, the rest wait… 
Once all threads are used, 
the browser blocks the next request…
Challenges with HTTP 
Congestion Control
Challenges with HTTP 
Data from server 
 Under HTTP/1.1, browser has to parse the page to get more URLs 
 This includes executing JS in <head> section 
 Extra latency
Challenges with HTTP 
Headers are never compressed 
 Headers are transmitted with every request 
 But some of the headers need to be only transferred once 
– Accepts-Encoding 
 Headers are never compressed 
Server sent 914 bytes to 
transfer 57 bytes of response. 
This is 15x overhead
SPDY – a new beginning 
Foundations for HTTP/2
Overview of SPDY 
Drop in replacement, transparent for webdevs and SWEs 
 Starts with NPN negotiation (optionally as HTTP) 
 If both server and browser support SPDY, they switch to SPDY
Overview of SPDY 
Multiplexing instead of thread pools 
 Single connection is maintained between browser and server 
 Congestion window grows, increasing utilization of the network 
 Unlimited resources in flight – browser is not blocked
Overview of SPDY 
Based on SSL/TLS 
 Negotiated over SSL (NPN/ALPN) or as HTTP upgrade 
 Transport layer security (always in SPDY, optional in HTTP/2.0) 
 Compression (including headers) 
22
Overview of SPDY 
Server push 
 Server can speculatively push resources to client before base page 
has been parsed 
 Resources can be reused between pages through the browser cache. 
23
Overview of SPDY 
Header elimination and compression 
 Explicit headers are 
eliminated 
 Headers are further 
compressed 
24
So what? 
Putting SPDY to work at LinkedIn 
25
Anatomy of a page 
One base page and tons of static content 
26 
Base page 
Static 
Content
LinkedIn network stack 
Or rather non-planar graph 
27
CDNs 
Blazing fast, ubiquitous and not flexible 
 Distribute the content 
around the globe 
 Make the web pretty fast 
by shortening the pipes
There is a CDN edge near you
Can we beat CDNs locally? 
Let’s use science to experiment!
Comparing SPDY with CDN - 
results 
Results 
 Profile page is better across 
the board 
 Homepage is better for 
regions closer to ECH 
Benefits of SPDY increased with 
for regions close to the PoP
LinkedIn network stack 
Overly simplified
LinkedIn network stack 
Pushing the CDN aside
Static content vs. base pages – 
round 2
Combining SPDY with CDNs 
Deploy SPDY stacks around the globe
Bottom line 
SPDY makes web faster; so do CDNs 
 Modern CDNs do pretty good job accelerating HTTP 
 SPDY accelerates web content delivery further 
 Serving static content through SPDY accelerates LinkedIn page 
 In the long run, CDNs will support SPDY (HTTP/2.0). This will 
make the web faster for everybody.
Questions
We are hiring

More Related Content

What's hot

NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX, Inc.
 
Learn WordPress - Live Session 2 Slides
Learn WordPress - Live Session 2 SlidesLearn WordPress - Live Session 2 Slides
Learn WordPress - Live Session 2 SlidesAhmed Mohammed Nagdy
 
(CDN) Content Delivery Network
(CDN) Content Delivery Network(CDN) Content Delivery Network
(CDN) Content Delivery NetworkKenton Spence
 
Cdn slides
Cdn slidesCdn slides
Cdn slidesmasmanx
 
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itWhy your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itstrommen
 
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itWhy your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itRobert Flournoy
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceSpark::red
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101Mike Willbanks
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafkavishnu rao
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQelliando dias
 
Message Queue (MQ) Testing
Message Queue (MQ) TestingMessage Queue (MQ) Testing
Message Queue (MQ) TestingUjjwal Gupta
 
Request routing in CDN
Request routing in CDNRequest routing in CDN
Request routing in CDNSandeep Kath
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for ScalabilityTuenti
 
Bluehost vs hostgator
Bluehost vs hostgatorBluehost vs hostgator
Bluehost vs hostgatorJITENPRUSTY
 
Altitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopAltitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopFastly
 
Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory Engine
Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory EngineRedis vs. MongoDB: Comparing In-Memory Databases with Percona Memory Engine
Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory EngineScaleGrid.io
 

What's hot (20)

NGINX for Application Delivery & Acceleration
NGINX for Application Delivery & AccelerationNGINX for Application Delivery & Acceleration
NGINX for Application Delivery & Acceleration
 
Learn WordPress - Live Session 2 Slides
Learn WordPress - Live Session 2 SlidesLearn WordPress - Live Session 2 Slides
Learn WordPress - Live Session 2 Slides
 
(CDN) Content Delivery Network
(CDN) Content Delivery Network(CDN) Content Delivery Network
(CDN) Content Delivery Network
 
Cdn slides
Cdn slidesCdn slides
Cdn slides
 
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itWhy your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix it
 
Why your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix itWhy your slow loading website is costing you sales and how to fix it
Why your slow loading website is costing you sales and how to fix it
 
Configuring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web PerormanceConfiguring Apache Servers for Better Web Perormance
Configuring Apache Servers for Better Web Perormance
 
Scalable Architecture 101
Scalable Architecture 101Scalable Architecture 101
Scalable Architecture 101
 
Introduction to Apache Kafka
Introduction to Apache KafkaIntroduction to Apache Kafka
Introduction to Apache Kafka
 
Enterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQEnterprise Messaging with Apache ActiveMQ
Enterprise Messaging with Apache ActiveMQ
 
Message Queue (MQ) Testing
Message Queue (MQ) TestingMessage Queue (MQ) Testing
Message Queue (MQ) Testing
 
Eng
EngEng
Eng
 
Caching for Cash - Part 4
Caching for Cash - Part 4Caching for Cash - Part 4
Caching for Cash - Part 4
 
Ui perf
Ui perfUi perf
Ui perf
 
Request routing in CDN
Request routing in CDNRequest routing in CDN
Request routing in CDN
 
AJAX for Scalability
AJAX for ScalabilityAJAX for Scalability
AJAX for Scalability
 
Bluehost vs hostgator
Bluehost vs hostgatorBluehost vs hostgator
Bluehost vs hostgator
 
Altitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation WorkshopAltitude San Francisco 2018: HTTP Invalidation Workshop
Altitude San Francisco 2018: HTTP Invalidation Workshop
 
Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory Engine
Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory EngineRedis vs. MongoDB: Comparing In-Memory Databases with Percona Memory Engine
Redis vs. MongoDB: Comparing In-Memory Databases with Percona Memory Engine
 
Frontend Caching - The "new" frontier
Frontend Caching - The "new" frontierFrontend Caching - The "new" frontier
Frontend Caching - The "new" frontier
 

Similar to Внедрение протокола SPDY в социальной сети LinkedIn, Omer Shapira (LinkedIn)

HTTP/2 and a Faster Web
HTTP/2 and a Faster WebHTTP/2 and a Faster Web
HTTP/2 and a Faster WebC4Media
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed FundamentalsMartin Breest
 
introduction to Web system
introduction to Web systemintroduction to Web system
introduction to Web systemhashim102
 
Web Performance – die effektivsten Techniken aus der Praxis
Web Performance – die effektivsten Techniken aus der PraxisWeb Performance – die effektivsten Techniken aus der Praxis
Web Performance – die effektivsten Techniken aus der PraxisFelix Gessert
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGMaarten Balliauw
 
Contents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceContents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceBangladesh Network Operators Group
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocolsDaniel Austin
 
A SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduA SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduOlaniyi Jinadu
 
TR14-05_Martindell.pdf
TR14-05_Martindell.pdfTR14-05_Martindell.pdf
TR14-05_Martindell.pdfTomTom149267
 
Webcast: Fastly takes drupal.org to extremes
Webcast: Fastly takes drupal.org to extremesWebcast: Fastly takes drupal.org to extremes
Webcast: Fastly takes drupal.org to extremesJoshua Mitchell
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonNeotys
 
Content Delivery Network – CDN
Content Delivery Network – CDNContent Delivery Network – CDN
Content Delivery Network – CDNAhmed Banafa
 

Similar to Внедрение протокола SPDY в социальной сети LinkedIn, Omer Shapira (LinkedIn) (20)

HTTP/2 and a Faster Web
HTTP/2 and a Faster WebHTTP/2 and a Faster Web
HTTP/2 and a Faster Web
 
What is SPDY
What is SPDYWhat is SPDY
What is SPDY
 
SPDY.pdf
SPDY.pdfSPDY.pdf
SPDY.pdf
 
Site Speed Fundamentals
Site Speed FundamentalsSite Speed Fundamentals
Site Speed Fundamentals
 
SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0SPDY - or maybe HTTP2.0
SPDY - or maybe HTTP2.0
 
Spdy
SpdySpdy
Spdy
 
introduction to Web system
introduction to Web systemintroduction to Web system
introduction to Web system
 
Web Performance – die effektivsten Techniken aus der Praxis
Web Performance – die effektivsten Techniken aus der PraxisWeb Performance – die effektivsten Techniken aus der Praxis
Web Performance – die effektivsten Techniken aus der Praxis
 
Reducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAGReducing latency on the web with the Azure CDN - DevSum - SWAG
Reducing latency on the web with the Azure CDN - DevSum - SWAG
 
SPDY
SPDY SPDY
SPDY
 
Sp wr2
Sp wr2Sp wr2
Sp wr2
 
Contents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User ExperienceContents Localization Initiatives to get better User Experience
Contents Localization Initiatives to get better User Experience
 
Next generation web protocols
Next generation web protocolsNext generation web protocols
Next generation web protocols
 
REST & RESTful Web Services
REST & RESTful Web ServicesREST & RESTful Web Services
REST & RESTful Web Services
 
A SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi JinaduA SPDYier Experience by Olaniyi Jinadu
A SPDYier Experience by Olaniyi Jinadu
 
TR14-05_Martindell.pdf
TR14-05_Martindell.pdfTR14-05_Martindell.pdf
TR14-05_Martindell.pdf
 
Webcast: Fastly takes drupal.org to extremes
Webcast: Fastly takes drupal.org to extremesWebcast: Fastly takes drupal.org to extremes
Webcast: Fastly takes drupal.org to extremes
 
SPDY
SPDYSPDY
SPDY
 
PAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark TomlinsonPAC 2019 virtual Mark Tomlinson
PAC 2019 virtual Mark Tomlinson
 
Content Delivery Network – CDN
Content Delivery Network – CDNContent Delivery Network – CDN
Content Delivery Network – CDN
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Внедрение протокола SPDY в социальной сети LinkedIn, Omer Shapira (LinkedIn)

  • 1. SPDY at LinkedIn Omer Shapira
  • 2. Agenda What to expect before beers  LinkedIn  Bandwidth vs. Latency  Challenges with HTTP  What is SPDY  How LinkedIn network stack looks today  How we are adopting SPDY
  • 3. Speed matters Who we are and what we do  Social network for business  Founded in 2002  300M+ users  200 countries  Users first
  • 4. Let’s talk about speed What’s speed, anyway?  We measure vehicle speed in m/s  How do we measure the Internet speed?  Cars vs. trains as analogy  Bandwidth vs. latency
  • 5. Let’s talk about bandwidth One bazzillion MBps…  Bandwidth is analogous to number of seats in a plane  Adding bandwidth is expensive – but simple  Typically sold as “speed”  Matters for streaming  Bandwidth does not matter that much for business applications
  • 6. Let’s talk about latency Latency: time it takes for the server to receive and process request for a page object  Shorten the pipe  Or move faster  Speed of light is a hard limit  Decreasing latency is hard and sometimes impossible
  • 7. Important latency limits No one will advertise latency  100ms – user perceives as instantaneous.  1s – is about the upper limit of human flow of thought. User loses the feeling direct feedback.  10s – upper limit of attention. Feedback is important, and the chance of context switch is high.  Source: Nielsen Norman Group
  • 8. Reality check Signal latency in vacuum and fiber Route Distance (km) Time in vacuum (ms) Time in fiber (ms) TCP handshake in fiber (ms) NYC to SF 4148 14 21 63 NYC to London 5585 19 28 84 NYC to Sydney 15993 53 80 240
  • 9. More about network latency Not all latencies are the same
  • 10. In reality Not all latencies are the same
  • 11. Fast Internet Short latencies, high bandwidth, opportunities  Low latency  High bandwidth  …  PROFIT!
  • 12. Let’s talk about HTTP Long latencies, low bandwidth, lots of client time  Mimics interactions between a person and a newspaper – Reading a page takes time. – Transferring text is easy – Single browser window  On a Sunday morning, with a cup of coffee
  • 13. Hyper TEXT transfer protocol In reality we mostly transfer images
  • 14. Challenges with HTTP The protocol is getting obsolete
  • 15. Challenges with HTTP 5 requests in flight, the rest wait… Once all threads are used, the browser blocks the next request…
  • 16. Challenges with HTTP Congestion Control
  • 17. Challenges with HTTP Data from server  Under HTTP/1.1, browser has to parse the page to get more URLs  This includes executing JS in <head> section  Extra latency
  • 18. Challenges with HTTP Headers are never compressed  Headers are transmitted with every request  But some of the headers need to be only transferred once – Accepts-Encoding  Headers are never compressed Server sent 914 bytes to transfer 57 bytes of response. This is 15x overhead
  • 19. SPDY – a new beginning Foundations for HTTP/2
  • 20. Overview of SPDY Drop in replacement, transparent for webdevs and SWEs  Starts with NPN negotiation (optionally as HTTP)  If both server and browser support SPDY, they switch to SPDY
  • 21. Overview of SPDY Multiplexing instead of thread pools  Single connection is maintained between browser and server  Congestion window grows, increasing utilization of the network  Unlimited resources in flight – browser is not blocked
  • 22. Overview of SPDY Based on SSL/TLS  Negotiated over SSL (NPN/ALPN) or as HTTP upgrade  Transport layer security (always in SPDY, optional in HTTP/2.0)  Compression (including headers) 22
  • 23. Overview of SPDY Server push  Server can speculatively push resources to client before base page has been parsed  Resources can be reused between pages through the browser cache. 23
  • 24. Overview of SPDY Header elimination and compression  Explicit headers are eliminated  Headers are further compressed 24
  • 25. So what? Putting SPDY to work at LinkedIn 25
  • 26. Anatomy of a page One base page and tons of static content 26 Base page Static Content
  • 27. LinkedIn network stack Or rather non-planar graph 27
  • 28. CDNs Blazing fast, ubiquitous and not flexible  Distribute the content around the globe  Make the web pretty fast by shortening the pipes
  • 29. There is a CDN edge near you
  • 30. Can we beat CDNs locally? Let’s use science to experiment!
  • 31. Comparing SPDY with CDN - results Results  Profile page is better across the board  Homepage is better for regions closer to ECH Benefits of SPDY increased with for regions close to the PoP
  • 32. LinkedIn network stack Overly simplified
  • 33. LinkedIn network stack Pushing the CDN aside
  • 34. Static content vs. base pages – round 2
  • 35. Combining SPDY with CDNs Deploy SPDY stacks around the globe
  • 36. Bottom line SPDY makes web faster; so do CDNs  Modern CDNs do pretty good job accelerating HTTP  SPDY accelerates web content delivery further  Serving static content through SPDY accelerates LinkedIn page  In the long run, CDNs will support SPDY (HTTP/2.0). This will make the web faster for everybody.

Editor's Notes

  1. We are currently limited in scope of our
  2. We are currently limited in scope of our
  3. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  4. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  5. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  6. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  7. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  8. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  9. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  10. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  11. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  12. Most of the time is being spent by the person reading the newspaper, spilling the coffee on the newspaper, answering the phone or yelling on children to start behaving themselves.
  13. Connections start slow to avoid router congestions HTTP/1.1 has “Keep-Alive” option… But connections will timeout during inactivity, causing new connections to start slowly again
  14. ----- Meeting Notes (9/22/14 16:28) ----- Packet loss will be much more painful in SPDY. 3% (Leif Hedstrom) ATT public data - packet loss. Custom congestion control. Perhaps different algorithm. TCP cubic will keep me stable for longer.
  15. ----- Meeting Notes (9/22/14 16:28) ----- Not always negotiated through upgrade. The problem with upgrade is the extra RTT for request and response. byte sniffing, upgrade header. over SSL - NPN. SSL price has been already paid. ----- Meeting Notes (9/22/14 16:31) ----- HTTP/2.0 does allow clients talking SPDY.
  16. ----- Meeting Notes (9/22/14 16:40) ----- User Agent Host Accept-Encoding
  17. ----- Meeting Notes (9/22/14 16:40) ----- Majority of the page weight are coming from the CDN. Base page is coming from the PoP. The key is the static content.
  18. ----- Meeting Notes (9/22/14 16:40) ----- Majority of the page weight are coming from the CDN. Base page is coming from the PoP. The key is the static content.
  19. ----- Meeting Notes (9/22/14 16:40) ----- Still going through t
  20. ----- Meeting Notes (9/22/14 16:40) ----- Just static content.
  21. ----- Meeting Notes (9/22/14 16:40) ----- Majority of the page weight are coming from the CDN. Base page is coming from the PoP. The key is the static content.
  22. ----- Meeting Notes (9/22/14 16:40) ----- Majority of the page weight are coming from the CDN. Base page is coming from the PoP. The key is the static content.