SlideShare une entreprise Scribd logo
1  sur  46
Recruiting SolutionsRecruiting SolutionsRecruiting Solutions
*
***
Sid Anand
QCon NY 2013
Building a Modern Website for Scale
About Me
2
*
Current Life…
 LinkedIn
 Search, Network, and Analytics (SNA)
 Search Infrastructure
 Me
In a Previous Life…
 LinkedIn, Data Infrastructure, Architect
 Netflix, Cloud Database Architect
 eBay, Web Development, Research Lab, & Search Engine
And Many Years Prior…
 Studying Distributed Systems at Cornell University
@r39132 2
Our mission
Connect the world‟s professionals to make
them more productive and successful
3@r39132 3
Over 200M members and counting
2 4 8
17
32
55
90
145
2004 2005 2006 2007 2008 2009 2010 2011 2012
LinkedIn Members (Millions)
200+
The world‟s largest professional network
Growing at more than 2 members/sec
Source :
http://press.linkedin.com/about
5
*
>88%Fortune 100 Companies
use LinkedIn Talent Soln to hire
Company Pages
>2.9M
Professional searches in 2012
>5.7B
Languages
19
@r39132 5
>30MFastest growing demographic:
Students and NCGs
The world‟s largest professional network
Over 64% of members are now international
Source :
http://press.linkedin.com/about
Other Company Facts
6
*
• Headquartered in Mountain View, Calif., with offices around the world!
• As of June 1, 2013, LinkedIn has ~3,700 full-time employees located around the
world
@r39132 6
Source :
http://press.linkedin.com/about
Agenda
 Company Overview
 Serving Architecture
 How Does LinkedIn Scale
– Web Services
– Databases
– Messaging
– Other
 Q & A
7@r39132
Serving Architecture
8@r39132 8
Overview
• Our site runs primarily on Java, with some use of Scala for specific
infrastructure
• The presentation tier is an exception – runs on everything!
• What runs on Scala?
• Network Graph Engine
• Kafka
• Some front ends (Play)
• Most of our services run on Jetty
LinkedIn : Serving Architecture
@r39132 9
LinkedIn : Serving Architecture
@r39132 10
Frontier
Presentation Tier
Play
Spring
MVC
NodeJS JRuby Grails Django
USSR (Chrome V8 JS Engine)
Our presentation tier is composed of ATS with 2 plugins:
• Fizzy
• A content aggregator that unifies content across a diverse set of front-ends
• Open-source JS templating framework
• USSR (a.k.a. Unified Server-Side Rendering)
• Packages Google Chrome‟s V8 JS engine as an ATS plugin
A A B B
Master
C C
D D E E F F
Presentation Tier
Business Service Tier
Data Service Tier
Data Infrastructure
Slave Master Master
Memcached
 A web page requests
information A and B
 A thin layer focused on
building the UI. It assembles
the page by making parallel
requests to BST services
 Encapsulates business
logic. Can call other BST
clusters and its own DST
cluster.
 Encapsulates DAL logic and
concerned with one Oracle
Schema.
 Concerned with the
persistent storage of and
easy access to data
LinkedIn : Serving Architecture
Hadoop
@r39132 11
Other
12
Serving Architecture : Other?
Oracle or
Espresso Data Change Events
Search
Index
Graph
Index
Read
Replicas
Updates
Standard
ization
As I will discuss later, data that is committed to Databases needs to also be made
available to a host of other online serving systems :
• Search
• Standardization Services
• These provider canonical names for your
titles, companies, schools, skills, fields of study, etc..
• Graph engine
• Recommender Systems
This data change feed needs to be scalable, reliable, and fast. [ Databus ]
@r39132
13
Serving Architecture : Hadoop
@r39132
How do we Hadoop to Serve?
• Hadoop is central to our analytic infrastructure
• We ship data streams into Hadoop from our
primary Databases via Databus & from
applications via Kafka
• Hadoop jobs take daily or hourly dumps of this
data and compute data files that Voldemort can
load!
• Voldemort loads these files and serves them on
the site
Voldemort : RO Store Usage at LinkedIn
People You May Know
LinkedIn Skills
Related SearchesViewers of this profile also viewed
Events you may be interested in Jobs you may be
interested in
@r39132 14
How Does LinkedIn Scale?
15@r39132 15
Scaling Web Services
LinkedIn : Web Services
16@r39132
LinkedIn : Scaling Web Services
@r39132 17
Problem
• How do 150+ web services communicate with each other to fulfill user requests in
the most efficient and fault-tolerant manner?
• How do they handle slow downstream dependencies?
• For illustration sake, consider the following scenario:
• Service B has 2 hosts
• Service C has 2 hosts
• A machine in Service B sends a web request to a machine in Service C
A A B B C C
LinkedIn : Scaling Web Services
@r39132 18
What sorts of failure modes are we concerned about?
• A machine in service C
• has a long GC pause
• calls a service that has a long GC pause
• calls a service that calls a service that has a long GC pause
• … see where I am going?
• A machine in service C or in its downstream dependencies may be slow for any
reason, not just GC (e.g. bottlenecks on CPU, IO, and memory, lock-contention)
Goal : Given all of this, how can we ensure high uptime?
Hint : Pick the right architecture and implement best-practices on top of it!
LinkedIn : Scaling Web Services
@r39132 19
In the early days, LinkedIn made a big bet on Spring and Spring RPC.
Issues
1. Spring RPC is difficult to debug
• You cannot call the service using simple command-line tools like Curl
• Since the RPC call is implemented as a binary payload over HTTP, http access
logs are not very useful
B B
C C
LB
2. A Spring RPC-based architecture leads to high MTTR
• Spring RPC is not flexible and pluggable -- we cannot use
• custom client-side load balancing strategies
• custom fault-tolerance features
• Instead, all we can do is to put all of our service nodes
behind a hardware load-balancer & pray!
• If a Service C node experiences a slowness issue, a
NOC engineer needs to be alerted and then manually
remove it from the LB (MTTR > 30 minutes)
LinkedIn : Scaling Web Services
@r39132 20
Solution
A better solution is one that we see often in both cloud-based architectures and
NoSQL systems : Dynamic Discovery + Client-side load-balancing
Step 1 :
Service C nodes announce their
availability to serve traffic to a ZK
registry
Step 2 :
Service B nodes get updates
from ZK
B B
C C
ZK
ZK
ZK
B B
C C
ZK
ZK
ZK
Step 3 :
Service B nodes route
traffic to service C nodes
B B
C C
ZK
ZK
ZK
LinkedIn : Scaling Web Services
@r39132 21
With this new paradigm for discovering services and routing requests to
them, we can incorporate additional fault-tolerant services
LinkedIn : Scaling Web Services
@r39132 22
Best Practices
• Fault-tolerance Support
1. No client should wait indefinitely for a response from a service
• Issues
• Waiting causes a traffic jam : all upstream clients end up also getting
blocked
• Each service has a fixed number of Jetty or Tomcat threads. Once
those are all tied up waiting, no new requests can be handled
• Solution
• After a configurable timeout, return
• Store different SLAs in ZK for each REST end-points
• In other words, all calls are not the same and should not have
the same read time out
LinkedIn : Scaling Web Services
@r39132 23
Best Practices
• Fault-tolerance Support
2. Isolate calls to back-ends from one another
• Issues
• You depend on a responses from independent services A and B. If A
slows down, will you still be able to serve B?
• Details
• This is a common use-case for federated services and for shard-
aggregators :
• E.g. Search at LinkedIn is federated and will call people-
search, job-search, group-search, etc... In parallel
• E.g. People-search is itself sharded, so an additional shard-
aggregation step needs to happen across 100s of shards
• Solution
• Use Async requests or independent ExecutorServices for sync
requests (one per each shard or vertical)
LinkedIn : Scaling Web Services
@r39132 24
Best Practices
• Fault-tolerance Support
3. Cancel Unnecessary Work
• Issues
• Work issued down the call-graphs is unnecessary if the clients at the
top of the call graph have already timed out
• Imagine that as a call reaches half-way down your call-tree, the
caller at the root times out.
• You will still issue work down the remaining half-depth of your
tree unless you cancel it!
• Solution
• A possible approach
• Root of the call-tree adds (<tree-UUID>, inProgress status) to
Memcached
• All services pass the tree-UUID down the call-tree (e.g. as a
HTTP custom request header)
• Servlet filters at each hop check whether inProgress == false. If
so, immediately respond with an empty response
LinkedIn : Scaling Web Services
@r39132 25
Best Practices
• Fault-tolerance Support
4. Avoid Sending Requests to Hosts that are GCing
• Issues
• If a client sends a web request to a host in Service C and if that host
is experiencing a GC pause, the client will wait 50-200ms, depending
on the read time out for the request
• During that GC pause other requests will also be sent to that node
before they all eventually time out
• Solution
• Send a “GC scout” request before every “real” web request
LinkedIn : Scaling Web Services
@r39132 26
Why is this a good idea?
• Scout requests are cheap and provide negligible overhead for requests
Step 1 :
A Service B node sends a cheap
1 msec TCP request to a
dedicated “scout” Netty port
Step 2 :
If the scout request comes
back within 1 msec, send the
real request to the Tomcat or
Jetty port
Step 3 :
Else repeat with a different
host in Service C
B B
Netty Tomcat
ZK
ZK
ZK
C
B B
Netty Tomcat
ZK
ZK
ZK
C
B B ZK
ZK
ZK
Netty Tomcat
C
Netty Tomcat
C
LinkedIn : Scaling Web Services
@r39132 27
Best Practice
• Fault-tolerance Support
5. Services should protect themselves from traffic bursts
• Issues
• Service nodes should protect themselves from being over-whelmed
by requests
• This will also protect their downstream servers from being
overwhelmed
• Simply setting the tomcat or jetty thread pool size is not always an
option. Often times, these are not configurable per application.
• Solution
• Use a sliding window counter. If the counter exceeds a configured
threshold, return immediately with a 503 („service unavailable‟)
• Set threshold below Tomcat or Jetty thread pool size
Espresso : Scaling Databases
LinkedIn : Databases
28@r39132
Espresso : Overview
@r39132 29
Problem
• What do we do when we run out of QPS capacity on an Oracle database server?
• You can only buy yourself out of this problem so far (i.e. buy a bigger box)
• Read-replicas and memcached will help scale reads, but not writes!
Solution  Espresso
You need a horizontally-scalable database!
Espresso is LinkedIn‟s newest NoSQL store. It offers the following features:
• Horizontal Scalability
• Works on commodity hardware
• Document-centric
• Avro documents supporting rich-nested data models
• Schema-evolution is drama free
• Extensions for Lucene indexing
• Supports Transactions (within a partition, e.g. memberId)
• Supports conditional reads & writes using standard HTTP headers (e.g. if-modified-since)
Espresso : Overview
@r39132 30
Why not use Open-source?
• Change capture stream (e.g. Databus)
• Backup-restore
• Mature storage-engine (innodb)
31
• Components
• Request Routing Tier
• Consults Cluster Manager to
discover node to route to
• Forwards request to
appropriate storage node
• Storage Tier
• Data Store (MySQL)
• Local Secondary Index
(Lucene)
• Cluster Manager
• Responsible for data set
partitioning
• Manages storage nodes
• Relay Tier
• Replicates data to
consumers
Espresso: Architecture
@r39132
Databus : Scaling Databases
LinkedIn : Database Streams
32@r39132
33
DataBus : Overview
Problem
Our databases (Oracle & Espresso) are used for R/W web-site traffic.
However, various services (Search, Graph DB, Standardization, etc…) need the ability
to
• Read the data as it is changed in these OLTP stores
• Occasionally, scan the contents in order rebuild their entire state
Solution  Databus
Databus provides a consistent, in-time-order stream of database changes that
• Scales horizontally
• Protects the source database from high-read-load
@r39132
Where Does LinkedIn use
DataBus?
34@r39132 34
35
DataBus : Usage @ LinkedIn
Oracle or
Espresso Data Change Events
Search
Index
Graph
Index
Read
Replicas
Updates
Standard
ization
A user updates the company, title, & school on his profile. He also accepts a
connection
• The write is made to an Oracle or Espresso Master and DataBus replicates:
• the profile change is applied to the Standardization service
 E.g. the many forms of IBM were canonicalized for search-friendliness and
recommendation-friendliness
• the profile change is applied to the Search Index service
 Recruiters can find you immediately by new keywords
• the connection change is applied to the Graph Index service
 The user can now start receiving feed updates from his new connections immediately
@r39132
Relay
Event Win
36
DB
Bootstrap
Capture
Changes
On-line
Changes
DB
DataBus consists of 2 services
• Relay Service
• Sharded
• Maintain an in-memory buffer per
shard
• Each shard polls Oracle and then
deserializes transactions into Avro
• Bootstrap Service
• Picks up online changes as they
appear in the Relay
• Supports 2 types of operations
from clients
 If a client falls behind and
needs records older than what
the relay has, Bootstrap can
send consolidated deltas!
 If a new client comes on line
or if an existing client fell too
far behind, Bootstrap can
send a consistent snapshot
DataBus : Architecture
@r39132
Relay
Event Win
37
DB
Bootstrap
Capture
Changes
On-line
Changes
On-line
Changes
DB
Consistent
Snapshot at U
Consumer 1
Consumer n
Databus
ClientLib
Client
Consumer 1
Consumer n
Databus
ClientLib
Client
Guarantees
 Transactions
 In-commit-order Delivery  commits are replicated in order
 Durability  you can replay the change stream at any time in the future
 Reliability  0% data loss
 Low latency  If your consumers can keep up with the relay  sub-second
response time
DataBus : Architecture
@r39132
38
DataBus : Architecture
Cool Features
 Server-side (i.e. relay-side & bootstrap-side) filters
 Problem
 Say that your consuming service is sharded 100 ways
 e.g. Member Search Indexes sharded by member_id % 100
 index_0, index_1, …, index_99
 However, you have a single member Databus stream
 How do you avoid having every shard read data it is not interested in?
 Solution
 Easy, Databus already understands the notion of server-side filters
 It will only send updates to your consumer instance for the shard it is
interested in
@r39132
Kafka: Scaling Messaging
LinkedIn : Messaging
39@r39132
40
Kafka : Overview
Problem
We have Databus to stream changes that were committed to a database. How do we
capture and stream high-volume data if we relax the requirement that the data needs
long-term durability?
• In other words, the data can have limited retention
Challenges
• Needs to handle a large volume of events
• Needs to be highly-available, scalable, and low-latency
• Needs to provide limited durability guarantees (e.g. data retained for a week)
Solution  Kafka
Kafka is a messaging system that supports topics. Consumers can subscribe to topics
and read all data within the retention window. Consumers are then notified of new
messages as they appear!
@r39132
41
Kafka is used at LinkedIn for a variety of business-critical needs:
Examples:
• End-user Activity Tracking (a.k.a. Web Tracking)
• Emails opened
• Logins
• Pages Seen
• Executed Searches
• Social Gestures : Likes, Sharing, Comments
• Data Center Operational Metrics
• Network & System metrics such as
• TCP metrics (connection resets, message resends, etc…)
• System metrics (iops, CPU, load average, etc…)
Kafka : Usage @ LinkedIn
@r39132
42
WebTier
Topic 1
Broker Tier
Push
Event
s
Topic 2
Topic N
Zookeeper Message Id
Management
Topic, Partition
Ownership
Sequential write sendfile
Kafka
ClientLib
Consumers
Pull
Events Iterator 1
Iterator n
Topic  Message Id
100 MB/sec 200 MB/sec
 Pub/Sub
 Batch Send/Receive
 E2E Compression
 System Decoupling
Features Guarantees
 At least once delivery
 Very high throughput
 Low latency (0.8)
 Durability (for a time period)
 Horizontally Scalable
Kafka : Architecture
@r39132
• Average Unique Message @Peak
• writes/sec = 460k
• reads/sec: 2.3m
• # topics: 693
28 billion unique messages written per day
Scale at LinkedIn
43
Improvements in 0.8
• Low Latency Features
• Kafka has always been designed for high-throughput, but E2E latency could
have been as high as 30 seconds
• Feature 1 : Long-polling
• For high throughput requests, a consumer‟s request for data will always be
fulfilled
• For low throughput requests, a consumer‟s request will likely return 0 bytes,
causing the consumer to back-off and wait. What happens if data arrives on
the broker in the meantime?
• As of 0.8, a consumer can “park” a request on the broker for as much
as “m milliseconds have passed”
• If data arrives during this period, it is instantly returned to the
consumer
Kafka : Overview
@r39132
44
Improvements in 0.8
• Low Latency Features
• In the past, data was not visible to a consumer until it was flushed to disk on the
broker.
• Feature 2 : New Commit Protocol
• In 0.8, replicas and a new commit protocol has been introduced. As long as
data has been replicated to the memory of all replicas, even if it has not
been flushed to disk on any one of them, it is considered “committed” and
becomes visible to consumers
Kafka : Overview
@r39132
 Jay Kreps (Kafka)
 Neha Narkhede (Kafka)
 Kishore Gopalakrishna (Helix)
 Bob Shulman (Espresso)
 Cuong Tran (Perfomance & Scalability)
 Diego “Mono” Buthay (Search Infrastructure)
45
Acknowledgments
@r39132
y Questions?
46@r39132 46

Contenu connexe

Tendances

Максим Хромцов "Yandex MapKit для Android OS в примерах"
Максим Хромцов "Yandex MapKit для Android OS в примерах"Максим Хромцов "Yandex MapKit для Android OS в примерах"
Максим Хромцов "Yandex MapKit для Android OS в примерах"Yandex
 
Pastrimi i parave(Punim)
Pastrimi i parave(Punim)Pastrimi i parave(Punim)
Pastrimi i parave(Punim)Vilma Hoxha
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01KuliahKita
 
61053021 etica-juridica
61053021 etica-juridica61053021 etica-juridica
61053021 etica-juridicaexodumuser
 
Krimi ekonomik
Krimi ekonomikKrimi ekonomik
Krimi ekonomikegzona1
 
Crypto currency - a digital asset
Crypto currency - a digital asset Crypto currency - a digital asset
Crypto currency - a digital asset mayil vealan
 
042 -055_-_drept_civil__partea_speciala_i,_ii
042  -055_-_drept_civil__partea_speciala_i,_ii042  -055_-_drept_civil__partea_speciala_i,_ii
042 -055_-_drept_civil__partea_speciala_i,_iiexodumuser
 
The Art of the Layover - Paris
The Art of the Layover - ParisThe Art of the Layover - Paris
The Art of the Layover - ParisEmmanuel Rozenblum
 
Serba-serbi Latex
Serba-serbi LatexSerba-serbi Latex
Serba-serbi Latexsopier
 
Menentukan Nilai Maksimum dan Minimum
Menentukan Nilai Maksimum dan MinimumMenentukan Nilai Maksimum dan Minimum
Menentukan Nilai Maksimum dan MinimumWina Ariyani
 
Makalah Erick matematika diskrit 2013
Makalah Erick matematika diskrit 2013Makalah Erick matematika diskrit 2013
Makalah Erick matematika diskrit 2013OnsirTus STn
 
Metodologjia dhe Shkrimi Ligjor
Metodologjia dhe Shkrimi LigjorMetodologjia dhe Shkrimi Ligjor
Metodologjia dhe Shkrimi LigjorRefik Mustafa
 

Tendances (13)

Максим Хромцов "Yandex MapKit для Android OS в примерах"
Максим Хромцов "Yandex MapKit для Android OS в примерах"Максим Хромцов "Yandex MapKit для Android OS в примерах"
Максим Хромцов "Yandex MapKit для Android OS в примерах"
 
Pastrimi i parave(Punim)
Pastrimi i parave(Punim)Pastrimi i parave(Punim)
Pastrimi i parave(Punim)
 
Kalkulus modul viii turunan
Kalkulus modul viii turunanKalkulus modul viii turunan
Kalkulus modul viii turunan
 
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
Matematika Diskrit - 05 rekursi dan relasi rekurens - 01
 
61053021 etica-juridica
61053021 etica-juridica61053021 etica-juridica
61053021 etica-juridica
 
Krimi ekonomik
Krimi ekonomikKrimi ekonomik
Krimi ekonomik
 
Crypto currency - a digital asset
Crypto currency - a digital asset Crypto currency - a digital asset
Crypto currency - a digital asset
 
042 -055_-_drept_civil__partea_speciala_i,_ii
042  -055_-_drept_civil__partea_speciala_i,_ii042  -055_-_drept_civil__partea_speciala_i,_ii
042 -055_-_drept_civil__partea_speciala_i,_ii
 
The Art of the Layover - Paris
The Art of the Layover - ParisThe Art of the Layover - Paris
The Art of the Layover - Paris
 
Serba-serbi Latex
Serba-serbi LatexSerba-serbi Latex
Serba-serbi Latex
 
Menentukan Nilai Maksimum dan Minimum
Menentukan Nilai Maksimum dan MinimumMenentukan Nilai Maksimum dan Minimum
Menentukan Nilai Maksimum dan Minimum
 
Makalah Erick matematika diskrit 2013
Makalah Erick matematika diskrit 2013Makalah Erick matematika diskrit 2013
Makalah Erick matematika diskrit 2013
 
Metodologjia dhe Shkrimi Ligjor
Metodologjia dhe Shkrimi LigjorMetodologjia dhe Shkrimi Ligjor
Metodologjia dhe Shkrimi Ligjor
 

En vedette

Airflow @ Agari
Airflow @ Agari Airflow @ Agari
Airflow @ Agari Sid Anand
 
Cloud Native Data Pipelines (in Eng & Japanese) - QCon Tokyo
Cloud Native Data Pipelines (in Eng & Japanese)  - QCon TokyoCloud Native Data Pipelines (in Eng & Japanese)  - QCon Tokyo
Cloud Native Data Pipelines (in Eng & Japanese) - QCon TokyoSid Anand
 
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Sid Anand
 
Introduction to Apache Airflow - Data Day Seattle 2016
Introduction to Apache Airflow - Data Day Seattle 2016Introduction to Apache Airflow - Data Day Seattle 2016
Introduction to Apache Airflow - Data Day Seattle 2016Sid Anand
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn
 
LinkedIn Data Infrastructure (QCon London 2012)
LinkedIn Data Infrastructure (QCon London 2012)LinkedIn Data Infrastructure (QCon London 2012)
LinkedIn Data Infrastructure (QCon London 2012)Sid Anand
 

En vedette (6)

Airflow @ Agari
Airflow @ Agari Airflow @ Agari
Airflow @ Agari
 
Cloud Native Data Pipelines (in Eng & Japanese) - QCon Tokyo
Cloud Native Data Pipelines (in Eng & Japanese)  - QCon TokyoCloud Native Data Pipelines (in Eng & Japanese)  - QCon Tokyo
Cloud Native Data Pipelines (in Eng & Japanese) - QCon Tokyo
 
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)Software Developer and Architecture @ LinkedIn (QCon SF 2014)
Software Developer and Architecture @ LinkedIn (QCon SF 2014)
 
Introduction to Apache Airflow - Data Day Seattle 2016
Introduction to Apache Airflow - Data Day Seattle 2016Introduction to Apache Airflow - Data Day Seattle 2016
Introduction to Apache Airflow - Data Day Seattle 2016
 
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
LinkedIn - A Professional Network built with Java Technologies and Agile Prac...
 
LinkedIn Data Infrastructure (QCon London 2012)
LinkedIn Data Infrastructure (QCon London 2012)LinkedIn Data Infrastructure (QCon London 2012)
LinkedIn Data Infrastructure (QCon London 2012)
 

Similaire à Building a Modern Website for Scale (QCon NY 2013)

Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksDatabricks
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Min Fang
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureHuxing Zhang
 
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Amazon Web Services
 
Webinar: An Enterprise Architect’s View of MongoDB
Webinar: An Enterprise Architect’s View of MongoDBWebinar: An Enterprise Architect’s View of MongoDB
Webinar: An Enterprise Architect’s View of MongoDBMongoDB
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsRandy Shoup
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...Ambassador Labs
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cachecornelia davis
 
Outsourcing Your SharePoint Hosting - the clouds fine print magnified
Outsourcing Your SharePoint Hosting - the clouds fine print magnifiedOutsourcing Your SharePoint Hosting - the clouds fine print magnified
Outsourcing Your SharePoint Hosting - the clouds fine print magnifiedSherWeb
 
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...SherWeb
 
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...SherWeb
 
Framing the Argument: How to Scale Faster with NoSQL
Framing the Argument: How to Scale Faster with NoSQLFraming the Argument: How to Scale Faster with NoSQL
Framing the Argument: How to Scale Faster with NoSQLInside Analysis
 
How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...
How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...
How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...Amazon Web Services
 
ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...
ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...
ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...Amazon Web Services
 
MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...
MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...
MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...MongoDB
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingPhil Wilkins
 
The Evolving Data Center – Past, Present and Future
The Evolving Data Center – Past, Present and FutureThe Evolving Data Center – Past, Present and Future
The Evolving Data Center – Past, Present and FutureCisco Canada
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsMike Broberg
 

Similaire à Building a Modern Website for Scale (QCon NY 2013) (20)

Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at DatabricksLessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
Lessons from Building Large-Scale, Multi-Cloud, SaaS Software at Databricks
 
The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013Service Virtualization - Next Gen Testing Conference Singapore 2013
Service Virtualization - Next Gen Testing Conference Singapore 2013
 
Dubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architectureDubbo and Weidian's practice on micro-service architecture
Dubbo and Weidian's practice on micro-service architecture
 
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
Scaling to millions of users with Amazon CloudFront - April 2017 AWS Online T...
 
Webinar: An Enterprise Architect’s View of MongoDB
Webinar: An Enterprise Architect’s View of MongoDBWebinar: An Enterprise Architect’s View of MongoDB
Webinar: An Enterprise Architect’s View of MongoDB
 
Scaling Your Architecture with Services and Events
Scaling Your Architecture with Services and EventsScaling Your Architecture with Services and Events
Scaling Your Architecture with Services and Events
 
Above the clouds
Above the cloudsAbove the clouds
Above the clouds
 
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
2017 Microservices Practitioner Virtual Summit: Microservices at Squarespace ...
 
Cloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a CacheCloud-native Data: Every Microservice Needs a Cache
Cloud-native Data: Every Microservice Needs a Cache
 
Outsourcing Your SharePoint Hosting - the clouds fine print magnified
Outsourcing Your SharePoint Hosting - the clouds fine print magnifiedOutsourcing Your SharePoint Hosting - the clouds fine print magnified
Outsourcing Your SharePoint Hosting - the clouds fine print magnified
 
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...
 
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...Sps chicago suburbs   outsourcing your share point hosting - the clouds fine ...
Sps chicago suburbs outsourcing your share point hosting - the clouds fine ...
 
Framing the Argument: How to Scale Faster with NoSQL
Framing the Argument: How to Scale Faster with NoSQLFraming the Argument: How to Scale Faster with NoSQL
Framing the Argument: How to Scale Faster with NoSQL
 
How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...
How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...
How Encirca Services by DuPont Pioneer Exited Their Data Center in Less Than ...
 
ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...
ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...
ENT213-How Encirca Services by DuPont Pioneer Exited Their Data Center in Les...
 
MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...
MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...
MongoDB .local London 2019: Nationwide Building Society: Building Mobile Appl...
 
APIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go StreamingAPIs, STOP Polling, lets go Streaming
APIs, STOP Polling, lets go Streaming
 
The Evolving Data Center – Past, Present and Future
The Evolving Data Center – Past, Present and FutureThe Evolving Data Center – Past, Present and Future
The Evolving Data Center – Past, Present and Future
 
SQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 QuestionsSQL to NoSQL: Top 6 Questions
SQL to NoSQL: Top 6 Questions
 

Plus de Sid Anand

Building High Fidelity Data Streams (QCon London 2023)
Building High Fidelity Data Streams (QCon London 2023)Building High Fidelity Data Streams (QCon London 2023)
Building High Fidelity Data Streams (QCon London 2023)Sid Anand
 
Building & Operating High-Fidelity Data Streams - QCon Plus 2021
Building & Operating High-Fidelity Data Streams - QCon Plus 2021Building & Operating High-Fidelity Data Streams - QCon Plus 2021
Building & Operating High-Fidelity Data Streams - QCon Plus 2021Sid Anand
 
Low Latency Fraud Detection & Prevention
Low Latency Fraud Detection & PreventionLow Latency Fraud Detection & Prevention
Low Latency Fraud Detection & PreventionSid Anand
 
YOW! Data Keynote (2021)
YOW! Data Keynote (2021)YOW! Data Keynote (2021)
YOW! Data Keynote (2021)Sid Anand
 
Big Data, Fast Data @ PayPal (YOW 2018)
Big Data, Fast Data @ PayPal (YOW 2018)Big Data, Fast Data @ PayPal (YOW 2018)
Big Data, Fast Data @ PayPal (YOW 2018)Sid Anand
 
Building Better Data Pipelines using Apache Airflow
Building Better Data Pipelines using Apache AirflowBuilding Better Data Pipelines using Apache Airflow
Building Better Data Pipelines using Apache AirflowSid Anand
 
Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)Sid Anand
 
Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)Sid Anand
 
Cloud Native Data Pipelines (DataEngConf SF 2017)
Cloud Native Data Pipelines (DataEngConf SF 2017)Cloud Native Data Pipelines (DataEngConf SF 2017)
Cloud Native Data Pipelines (DataEngConf SF 2017)Sid Anand
 
Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)
Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)
Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)Sid Anand
 
Resilient Predictive Data Pipelines (GOTO Chicago 2016)
Resilient Predictive Data Pipelines (GOTO Chicago 2016)Resilient Predictive Data Pipelines (GOTO Chicago 2016)
Resilient Predictive Data Pipelines (GOTO Chicago 2016)Sid Anand
 
Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)Sid Anand
 
LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)
LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)
LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)Sid Anand
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with MavenSid Anand
 
Learning git
Learning gitLearning git
Learning gitSid Anand
 
LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)Sid Anand
 
Linked in nosql_atnetflix_2012_v1
Linked in nosql_atnetflix_2012_v1Linked in nosql_atnetflix_2012_v1
Linked in nosql_atnetflix_2012_v1Sid Anand
 
Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Sid Anand
 
OSCON Data 2011 -- NoSQL @ Netflix, Part 2
OSCON Data 2011 -- NoSQL @ Netflix, Part 2OSCON Data 2011 -- NoSQL @ Netflix, Part 2
OSCON Data 2011 -- NoSQL @ Netflix, Part 2Sid Anand
 
Intuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the CloudIntuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the CloudSid Anand
 

Plus de Sid Anand (20)

Building High Fidelity Data Streams (QCon London 2023)
Building High Fidelity Data Streams (QCon London 2023)Building High Fidelity Data Streams (QCon London 2023)
Building High Fidelity Data Streams (QCon London 2023)
 
Building & Operating High-Fidelity Data Streams - QCon Plus 2021
Building & Operating High-Fidelity Data Streams - QCon Plus 2021Building & Operating High-Fidelity Data Streams - QCon Plus 2021
Building & Operating High-Fidelity Data Streams - QCon Plus 2021
 
Low Latency Fraud Detection & Prevention
Low Latency Fraud Detection & PreventionLow Latency Fraud Detection & Prevention
Low Latency Fraud Detection & Prevention
 
YOW! Data Keynote (2021)
YOW! Data Keynote (2021)YOW! Data Keynote (2021)
YOW! Data Keynote (2021)
 
Big Data, Fast Data @ PayPal (YOW 2018)
Big Data, Fast Data @ PayPal (YOW 2018)Big Data, Fast Data @ PayPal (YOW 2018)
Big Data, Fast Data @ PayPal (YOW 2018)
 
Building Better Data Pipelines using Apache Airflow
Building Better Data Pipelines using Apache AirflowBuilding Better Data Pipelines using Apache Airflow
Building Better Data Pipelines using Apache Airflow
 
Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)Cloud Native Predictive Data Pipelines (micro talk)
Cloud Native Predictive Data Pipelines (micro talk)
 
Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)Cloud Native Data Pipelines (GoTo Chicago 2017)
Cloud Native Data Pipelines (GoTo Chicago 2017)
 
Cloud Native Data Pipelines (DataEngConf SF 2017)
Cloud Native Data Pipelines (DataEngConf SF 2017)Cloud Native Data Pipelines (DataEngConf SF 2017)
Cloud Native Data Pipelines (DataEngConf SF 2017)
 
Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)
Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)
Cloud Native Data Pipelines (QCon Shanghai & Tokyo 2016)
 
Resilient Predictive Data Pipelines (GOTO Chicago 2016)
Resilient Predictive Data Pipelines (GOTO Chicago 2016)Resilient Predictive Data Pipelines (GOTO Chicago 2016)
Resilient Predictive Data Pipelines (GOTO Chicago 2016)
 
Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)Resilient Predictive Data Pipelines (QCon London 2016)
Resilient Predictive Data Pipelines (QCon London 2016)
 
LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)
LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)
LinkedIn's Segmentation & Targeting Platform (Hadoop Summit 2013)
 
Hands On with Maven
Hands On with MavenHands On with Maven
Hands On with Maven
 
Learning git
Learning gitLearning git
Learning git
 
LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)LinkedIn Data Infrastructure Slides (Version 2)
LinkedIn Data Infrastructure Slides (Version 2)
 
Linked in nosql_atnetflix_2012_v1
Linked in nosql_atnetflix_2012_v1Linked in nosql_atnetflix_2012_v1
Linked in nosql_atnetflix_2012_v1
 
Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!Keeping Movies Running Amid Thunderstorms!
Keeping Movies Running Amid Thunderstorms!
 
OSCON Data 2011 -- NoSQL @ Netflix, Part 2
OSCON Data 2011 -- NoSQL @ Netflix, Part 2OSCON Data 2011 -- NoSQL @ Netflix, Part 2
OSCON Data 2011 -- NoSQL @ Netflix, Part 2
 
Intuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the CloudIntuit CTOF 2011 - Netflix for Mobile in the Cloud
Intuit CTOF 2011 - Netflix for Mobile in the Cloud
 

Dernier

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 

Dernier (20)

Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 

Building a Modern Website for Scale (QCon NY 2013)

  • 1. Recruiting SolutionsRecruiting SolutionsRecruiting Solutions * *** Sid Anand QCon NY 2013 Building a Modern Website for Scale
  • 2. About Me 2 * Current Life…  LinkedIn  Search, Network, and Analytics (SNA)  Search Infrastructure  Me In a Previous Life…  LinkedIn, Data Infrastructure, Architect  Netflix, Cloud Database Architect  eBay, Web Development, Research Lab, & Search Engine And Many Years Prior…  Studying Distributed Systems at Cornell University @r39132 2
  • 3. Our mission Connect the world‟s professionals to make them more productive and successful 3@r39132 3
  • 4. Over 200M members and counting 2 4 8 17 32 55 90 145 2004 2005 2006 2007 2008 2009 2010 2011 2012 LinkedIn Members (Millions) 200+ The world‟s largest professional network Growing at more than 2 members/sec Source : http://press.linkedin.com/about
  • 5. 5 * >88%Fortune 100 Companies use LinkedIn Talent Soln to hire Company Pages >2.9M Professional searches in 2012 >5.7B Languages 19 @r39132 5 >30MFastest growing demographic: Students and NCGs The world‟s largest professional network Over 64% of members are now international Source : http://press.linkedin.com/about
  • 6. Other Company Facts 6 * • Headquartered in Mountain View, Calif., with offices around the world! • As of June 1, 2013, LinkedIn has ~3,700 full-time employees located around the world @r39132 6 Source : http://press.linkedin.com/about
  • 7. Agenda  Company Overview  Serving Architecture  How Does LinkedIn Scale – Web Services – Databases – Messaging – Other  Q & A 7@r39132
  • 9. Overview • Our site runs primarily on Java, with some use of Scala for specific infrastructure • The presentation tier is an exception – runs on everything! • What runs on Scala? • Network Graph Engine • Kafka • Some front ends (Play) • Most of our services run on Jetty LinkedIn : Serving Architecture @r39132 9
  • 10. LinkedIn : Serving Architecture @r39132 10 Frontier Presentation Tier Play Spring MVC NodeJS JRuby Grails Django USSR (Chrome V8 JS Engine) Our presentation tier is composed of ATS with 2 plugins: • Fizzy • A content aggregator that unifies content across a diverse set of front-ends • Open-source JS templating framework • USSR (a.k.a. Unified Server-Side Rendering) • Packages Google Chrome‟s V8 JS engine as an ATS plugin
  • 11. A A B B Master C C D D E E F F Presentation Tier Business Service Tier Data Service Tier Data Infrastructure Slave Master Master Memcached  A web page requests information A and B  A thin layer focused on building the UI. It assembles the page by making parallel requests to BST services  Encapsulates business logic. Can call other BST clusters and its own DST cluster.  Encapsulates DAL logic and concerned with one Oracle Schema.  Concerned with the persistent storage of and easy access to data LinkedIn : Serving Architecture Hadoop @r39132 11 Other
  • 12. 12 Serving Architecture : Other? Oracle or Espresso Data Change Events Search Index Graph Index Read Replicas Updates Standard ization As I will discuss later, data that is committed to Databases needs to also be made available to a host of other online serving systems : • Search • Standardization Services • These provider canonical names for your titles, companies, schools, skills, fields of study, etc.. • Graph engine • Recommender Systems This data change feed needs to be scalable, reliable, and fast. [ Databus ] @r39132
  • 13. 13 Serving Architecture : Hadoop @r39132 How do we Hadoop to Serve? • Hadoop is central to our analytic infrastructure • We ship data streams into Hadoop from our primary Databases via Databus & from applications via Kafka • Hadoop jobs take daily or hourly dumps of this data and compute data files that Voldemort can load! • Voldemort loads these files and serves them on the site
  • 14. Voldemort : RO Store Usage at LinkedIn People You May Know LinkedIn Skills Related SearchesViewers of this profile also viewed Events you may be interested in Jobs you may be interested in @r39132 14
  • 15. How Does LinkedIn Scale? 15@r39132 15
  • 16. Scaling Web Services LinkedIn : Web Services 16@r39132
  • 17. LinkedIn : Scaling Web Services @r39132 17 Problem • How do 150+ web services communicate with each other to fulfill user requests in the most efficient and fault-tolerant manner? • How do they handle slow downstream dependencies? • For illustration sake, consider the following scenario: • Service B has 2 hosts • Service C has 2 hosts • A machine in Service B sends a web request to a machine in Service C A A B B C C
  • 18. LinkedIn : Scaling Web Services @r39132 18 What sorts of failure modes are we concerned about? • A machine in service C • has a long GC pause • calls a service that has a long GC pause • calls a service that calls a service that has a long GC pause • … see where I am going? • A machine in service C or in its downstream dependencies may be slow for any reason, not just GC (e.g. bottlenecks on CPU, IO, and memory, lock-contention) Goal : Given all of this, how can we ensure high uptime? Hint : Pick the right architecture and implement best-practices on top of it!
  • 19. LinkedIn : Scaling Web Services @r39132 19 In the early days, LinkedIn made a big bet on Spring and Spring RPC. Issues 1. Spring RPC is difficult to debug • You cannot call the service using simple command-line tools like Curl • Since the RPC call is implemented as a binary payload over HTTP, http access logs are not very useful B B C C LB 2. A Spring RPC-based architecture leads to high MTTR • Spring RPC is not flexible and pluggable -- we cannot use • custom client-side load balancing strategies • custom fault-tolerance features • Instead, all we can do is to put all of our service nodes behind a hardware load-balancer & pray! • If a Service C node experiences a slowness issue, a NOC engineer needs to be alerted and then manually remove it from the LB (MTTR > 30 minutes)
  • 20. LinkedIn : Scaling Web Services @r39132 20 Solution A better solution is one that we see often in both cloud-based architectures and NoSQL systems : Dynamic Discovery + Client-side load-balancing Step 1 : Service C nodes announce their availability to serve traffic to a ZK registry Step 2 : Service B nodes get updates from ZK B B C C ZK ZK ZK B B C C ZK ZK ZK Step 3 : Service B nodes route traffic to service C nodes B B C C ZK ZK ZK
  • 21. LinkedIn : Scaling Web Services @r39132 21 With this new paradigm for discovering services and routing requests to them, we can incorporate additional fault-tolerant services
  • 22. LinkedIn : Scaling Web Services @r39132 22 Best Practices • Fault-tolerance Support 1. No client should wait indefinitely for a response from a service • Issues • Waiting causes a traffic jam : all upstream clients end up also getting blocked • Each service has a fixed number of Jetty or Tomcat threads. Once those are all tied up waiting, no new requests can be handled • Solution • After a configurable timeout, return • Store different SLAs in ZK for each REST end-points • In other words, all calls are not the same and should not have the same read time out
  • 23. LinkedIn : Scaling Web Services @r39132 23 Best Practices • Fault-tolerance Support 2. Isolate calls to back-ends from one another • Issues • You depend on a responses from independent services A and B. If A slows down, will you still be able to serve B? • Details • This is a common use-case for federated services and for shard- aggregators : • E.g. Search at LinkedIn is federated and will call people- search, job-search, group-search, etc... In parallel • E.g. People-search is itself sharded, so an additional shard- aggregation step needs to happen across 100s of shards • Solution • Use Async requests or independent ExecutorServices for sync requests (one per each shard or vertical)
  • 24. LinkedIn : Scaling Web Services @r39132 24 Best Practices • Fault-tolerance Support 3. Cancel Unnecessary Work • Issues • Work issued down the call-graphs is unnecessary if the clients at the top of the call graph have already timed out • Imagine that as a call reaches half-way down your call-tree, the caller at the root times out. • You will still issue work down the remaining half-depth of your tree unless you cancel it! • Solution • A possible approach • Root of the call-tree adds (<tree-UUID>, inProgress status) to Memcached • All services pass the tree-UUID down the call-tree (e.g. as a HTTP custom request header) • Servlet filters at each hop check whether inProgress == false. If so, immediately respond with an empty response
  • 25. LinkedIn : Scaling Web Services @r39132 25 Best Practices • Fault-tolerance Support 4. Avoid Sending Requests to Hosts that are GCing • Issues • If a client sends a web request to a host in Service C and if that host is experiencing a GC pause, the client will wait 50-200ms, depending on the read time out for the request • During that GC pause other requests will also be sent to that node before they all eventually time out • Solution • Send a “GC scout” request before every “real” web request
  • 26. LinkedIn : Scaling Web Services @r39132 26 Why is this a good idea? • Scout requests are cheap and provide negligible overhead for requests Step 1 : A Service B node sends a cheap 1 msec TCP request to a dedicated “scout” Netty port Step 2 : If the scout request comes back within 1 msec, send the real request to the Tomcat or Jetty port Step 3 : Else repeat with a different host in Service C B B Netty Tomcat ZK ZK ZK C B B Netty Tomcat ZK ZK ZK C B B ZK ZK ZK Netty Tomcat C Netty Tomcat C
  • 27. LinkedIn : Scaling Web Services @r39132 27 Best Practice • Fault-tolerance Support 5. Services should protect themselves from traffic bursts • Issues • Service nodes should protect themselves from being over-whelmed by requests • This will also protect their downstream servers from being overwhelmed • Simply setting the tomcat or jetty thread pool size is not always an option. Often times, these are not configurable per application. • Solution • Use a sliding window counter. If the counter exceeds a configured threshold, return immediately with a 503 („service unavailable‟) • Set threshold below Tomcat or Jetty thread pool size
  • 28. Espresso : Scaling Databases LinkedIn : Databases 28@r39132
  • 29. Espresso : Overview @r39132 29 Problem • What do we do when we run out of QPS capacity on an Oracle database server? • You can only buy yourself out of this problem so far (i.e. buy a bigger box) • Read-replicas and memcached will help scale reads, but not writes! Solution  Espresso You need a horizontally-scalable database! Espresso is LinkedIn‟s newest NoSQL store. It offers the following features: • Horizontal Scalability • Works on commodity hardware • Document-centric • Avro documents supporting rich-nested data models • Schema-evolution is drama free • Extensions for Lucene indexing • Supports Transactions (within a partition, e.g. memberId) • Supports conditional reads & writes using standard HTTP headers (e.g. if-modified-since)
  • 30. Espresso : Overview @r39132 30 Why not use Open-source? • Change capture stream (e.g. Databus) • Backup-restore • Mature storage-engine (innodb)
  • 31. 31 • Components • Request Routing Tier • Consults Cluster Manager to discover node to route to • Forwards request to appropriate storage node • Storage Tier • Data Store (MySQL) • Local Secondary Index (Lucene) • Cluster Manager • Responsible for data set partitioning • Manages storage nodes • Relay Tier • Replicates data to consumers Espresso: Architecture @r39132
  • 32. Databus : Scaling Databases LinkedIn : Database Streams 32@r39132
  • 33. 33 DataBus : Overview Problem Our databases (Oracle & Espresso) are used for R/W web-site traffic. However, various services (Search, Graph DB, Standardization, etc…) need the ability to • Read the data as it is changed in these OLTP stores • Occasionally, scan the contents in order rebuild their entire state Solution  Databus Databus provides a consistent, in-time-order stream of database changes that • Scales horizontally • Protects the source database from high-read-load @r39132
  • 34. Where Does LinkedIn use DataBus? 34@r39132 34
  • 35. 35 DataBus : Usage @ LinkedIn Oracle or Espresso Data Change Events Search Index Graph Index Read Replicas Updates Standard ization A user updates the company, title, & school on his profile. He also accepts a connection • The write is made to an Oracle or Espresso Master and DataBus replicates: • the profile change is applied to the Standardization service  E.g. the many forms of IBM were canonicalized for search-friendliness and recommendation-friendliness • the profile change is applied to the Search Index service  Recruiters can find you immediately by new keywords • the connection change is applied to the Graph Index service  The user can now start receiving feed updates from his new connections immediately @r39132
  • 36. Relay Event Win 36 DB Bootstrap Capture Changes On-line Changes DB DataBus consists of 2 services • Relay Service • Sharded • Maintain an in-memory buffer per shard • Each shard polls Oracle and then deserializes transactions into Avro • Bootstrap Service • Picks up online changes as they appear in the Relay • Supports 2 types of operations from clients  If a client falls behind and needs records older than what the relay has, Bootstrap can send consolidated deltas!  If a new client comes on line or if an existing client fell too far behind, Bootstrap can send a consistent snapshot DataBus : Architecture @r39132
  • 37. Relay Event Win 37 DB Bootstrap Capture Changes On-line Changes On-line Changes DB Consistent Snapshot at U Consumer 1 Consumer n Databus ClientLib Client Consumer 1 Consumer n Databus ClientLib Client Guarantees  Transactions  In-commit-order Delivery  commits are replicated in order  Durability  you can replay the change stream at any time in the future  Reliability  0% data loss  Low latency  If your consumers can keep up with the relay  sub-second response time DataBus : Architecture @r39132
  • 38. 38 DataBus : Architecture Cool Features  Server-side (i.e. relay-side & bootstrap-side) filters  Problem  Say that your consuming service is sharded 100 ways  e.g. Member Search Indexes sharded by member_id % 100  index_0, index_1, …, index_99  However, you have a single member Databus stream  How do you avoid having every shard read data it is not interested in?  Solution  Easy, Databus already understands the notion of server-side filters  It will only send updates to your consumer instance for the shard it is interested in @r39132
  • 39. Kafka: Scaling Messaging LinkedIn : Messaging 39@r39132
  • 40. 40 Kafka : Overview Problem We have Databus to stream changes that were committed to a database. How do we capture and stream high-volume data if we relax the requirement that the data needs long-term durability? • In other words, the data can have limited retention Challenges • Needs to handle a large volume of events • Needs to be highly-available, scalable, and low-latency • Needs to provide limited durability guarantees (e.g. data retained for a week) Solution  Kafka Kafka is a messaging system that supports topics. Consumers can subscribe to topics and read all data within the retention window. Consumers are then notified of new messages as they appear! @r39132
  • 41. 41 Kafka is used at LinkedIn for a variety of business-critical needs: Examples: • End-user Activity Tracking (a.k.a. Web Tracking) • Emails opened • Logins • Pages Seen • Executed Searches • Social Gestures : Likes, Sharing, Comments • Data Center Operational Metrics • Network & System metrics such as • TCP metrics (connection resets, message resends, etc…) • System metrics (iops, CPU, load average, etc…) Kafka : Usage @ LinkedIn @r39132
  • 42. 42 WebTier Topic 1 Broker Tier Push Event s Topic 2 Topic N Zookeeper Message Id Management Topic, Partition Ownership Sequential write sendfile Kafka ClientLib Consumers Pull Events Iterator 1 Iterator n Topic  Message Id 100 MB/sec 200 MB/sec  Pub/Sub  Batch Send/Receive  E2E Compression  System Decoupling Features Guarantees  At least once delivery  Very high throughput  Low latency (0.8)  Durability (for a time period)  Horizontally Scalable Kafka : Architecture @r39132 • Average Unique Message @Peak • writes/sec = 460k • reads/sec: 2.3m • # topics: 693 28 billion unique messages written per day Scale at LinkedIn
  • 43. 43 Improvements in 0.8 • Low Latency Features • Kafka has always been designed for high-throughput, but E2E latency could have been as high as 30 seconds • Feature 1 : Long-polling • For high throughput requests, a consumer‟s request for data will always be fulfilled • For low throughput requests, a consumer‟s request will likely return 0 bytes, causing the consumer to back-off and wait. What happens if data arrives on the broker in the meantime? • As of 0.8, a consumer can “park” a request on the broker for as much as “m milliseconds have passed” • If data arrives during this period, it is instantly returned to the consumer Kafka : Overview @r39132
  • 44. 44 Improvements in 0.8 • Low Latency Features • In the past, data was not visible to a consumer until it was flushed to disk on the broker. • Feature 2 : New Commit Protocol • In 0.8, replicas and a new commit protocol has been introduced. As long as data has been replicated to the memory of all replicas, even if it has not been flushed to disk on any one of them, it is considered “committed” and becomes visible to consumers Kafka : Overview @r39132
  • 45.  Jay Kreps (Kafka)  Neha Narkhede (Kafka)  Kishore Gopalakrishna (Helix)  Bob Shulman (Espresso)  Cuong Tran (Perfomance & Scalability)  Diego “Mono” Buthay (Search Infrastructure) 45 Acknowledgments @r39132

Notes de l'éditeur

  1. For us, fundamentally changing the way the world works begins with our mission statement: To connect the world’s professionals to make them more productive and successful. This means not only helping people to find their dream jobs, but also enabling them to be great at the jobs they’re already in.
  2. We’re making great strides toward our mission:LinkedIn has over 225 million members, and we’re now adding more than two members per second. This is the fastest rate of absolute member growth in the company’s history. Sixty-four percent of LinkedIn members are currently located outside of the United States.LinkedIn counts executives from all 2012 Fortune 500 companies as members; its corporate talent solutions are used by 88 of the Fortune 100 companies.More than 2.9 million companies have LinkedIn Company Pages.LinkedIn members did over 5.7 billion professionally-oriented searches on the platform in 2012.[See http://press.linkedin.com/about for a complete list of LinkedIn facts and stats]
  3. The functionality above is computed by Hadoop but served to the site via Voldemort We leverage these profiles and social graph to extract insightsSome examples are here like recommendation people you may know, jobs you may be interested in
  4. Kafka provides best-effort message transport at high throughput with durability.For replication, consistency and ordering of messages with extremely low latency is critical.Databus is about timeline-consistent change capture between two persistent systems. This leads to slightly different design tradeoffs in the two systems.
  5. What do we mean when we say that Databus is LinkedIn’s data-change propagation system.On change in the primary stores (e.g. the profiles DB, the connections DB, etc.), the changes are buffered in a broker (the Databus Relay). This can be either through push or pull. The relay can also capture the transactional semantics of updates.Clients poll (including long polls) for changes in the relay. A special client is the Bootstrap DB which allows long for long look-back queries into the history of changes. If a client falls behind the stream of change events in the relay, it will be automatically redirected the Bootstrap DB which can deliver a compressed delta of the changes since the last event seen by the client. By “compressed” we mean that only the latest change to a row is delivered. An extreme case is when a new machine is add to the client cluster and it needs to *bootstrap* its initial case. In this case, the Bootstrap DB will deliver a consistent snapshot of the data as of some point in time which can later be used to continue consumption from the relay.Databus provides …The guarantees given by Databus are …
  6. Simple, Efficient, Persistent, High-Volume, Messaging SystemDecouple message production from consumptionPublish/Subscribe model:Producer(s) publish messages to a topicClient(s) subscribe to a topicPublishers PUSH to broker (sync &amp; asynch options)Subscribers PULL from broker