75

Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Embed Size (px)

Citation preview

Page 1: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 2: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 3: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Microservice Layout in Netflix

Page 4: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 5: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 6: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 7: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 8: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Polyglot Persistence Powering Microservices

Roopa Tangirala

Engineering Manager

Netflix

Page 9: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Agenda• 5 Use Cases• Challenges• Current Approach• Takeaway

Page 10: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 11: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 12: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 13: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

AWS S3

CDE

Page 14: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Search, Analyze and visualize in near real time

Distributed in-memory caching solution based on memcached

Distributed NOSQL database to handle large datasets providing high availability.

Distributed dynamo layer for different storage engines and protocols supporting Redis, memcached, RocksDB

TitanDB is scalable graph database optimized for storing and querying graph datasets.

Page 15: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Us-west-2Oregon

Us-east-1 North Virginia

Eu-west-1 Ireland

Page 16: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

CDN URL

Page 17: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 18: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Requirements - CDN URL

• High availability• Very low latency reads/writes (less than 1ms)• High Throughput per node

Page 19: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

GUESS?

Page 20: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Distributed In Memory

Very low Latency

responses

Page 21: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Playback Error

Page 22: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

PLAYBACK CONTEXT (Tracks + Track Urls)

NETFLIX OPENCONNECT CDN URLS

Page 23: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

PLAYBACKCONTEXT

COUNTRY

USER PREFERENCES

TITLEMETADATA

DEVICE

NETWORK

Page 24: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Requirements - Playback Error• Quick Incident Resolution• Interactive Dashboards• Near realtime Search• Ad Hoc Queries

Page 25: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

GUESS?

Page 26: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Powerful Search & Analytics

Interactive Dashboards

Page 27: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Interactive Exploration

Page 28: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Top N queries

Page 29: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Incident To Resolution Time

2+ Hours Under 10 Minutes

Page 30: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Viewing History

Page 31: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 32: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Requirements - Viewing History

• Time series dataset• Support high writes• Cross region replication• Large dataset

Page 33: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Growth of Viewing History

33

Page 34: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

GUESS?

Page 35: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Multi-datacenter,

multi-directional replication

Highly availability

and scalability

Page 36: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Data Model

36

Page 37: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

New Data Model

37

Page 38: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Artwork Display Set B

Display Set A

Character Movie

VideoTrack

PNGWebp

AudioTrack

JPG VideoSeg

EsSub

FrDub

Montage

TEXTTrack

Trailer FrSub

Person

Digital Asset Management

Page 39: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Requirements - DAM

• One backend plane for all asset metadata

• Storage of relationships/connected data

• Searchable

Page 40: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

GUESS?

Page 41: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Distributed GraphDB

Support for various

storage backends

Page 42: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Distributed Delayed Queues

Page 43: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Requirements - Delayed Queues

• Distributed

• Highly concurrent

• At-least-once delivery semantics

• Delayed queue

• Priorities within the shard

Page 44: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

GUESS?

Page 45: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Pluggable datastore

supporting Redis

Multi-datacenter

replication

Page 46: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Data ModelFor each queue three set of Redis data structures are

maintained:

1. A Sorted Set containing queued elements by score.

2. A Hash set that contains message payload, with key as

message ID.

3. A Sorted Set containing messages consumed by client but

yet to be acknowledged. Un-ack set.

Page 47: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 48: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 49: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Prediction @ CDE

Page 50: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 51: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 52: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Current Approach

Page 53: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

SubjectMatterExpert

Page 54: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 55: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

CDE Service

Empowering CDE to provide datastores as a service

Page 56: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

CDE Service•Thresholds/SLAs•Cluster metadata•Self Service•Contact information•Maintenance windows

Page 57: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Architecture

PAGE CDE

Alert if needed

SCHEDULER

REMEDIATION

CDE SERVICE

Alert Atlas Mantis

Datastore

Cluster Metadata

Cluster Metadata/ Advisor

Maintenance

Remediation

MONITORING

Page 58: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

SLAcass_xyz

[email protected]

cde

[email protected]

Page 60: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 61: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 62: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Machine learning

Automic (UC4)

Page 63: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Pattern in Disk usage

Page 64: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 65: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Cde Channel

Page 66: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 67: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 68: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 69: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE
Page 70: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Common Approach

CRON System

JobRunnerJob

RunnerJobRunnerJob

Runner

Page 71: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Streaming micro-services

Source

Stage

Sink

Source

Stage

SinkSource

Stage

Sink

Source - input, handles backpressureStage - business logicSink - output, handles backpressure

Source

Stage

Sink

MantisJob

Page 72: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Real Time Dash (Macro View)

cluster_3

cluster_6

Page 73: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Real Time Dash (Cluster View)

1

Page 74: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE

Takeaway

Page 75: Microservice Layout in Netflix - QCon SF · PDF fileMicroservice Layout in Netflix. ... TitanDB is scalable graph database optimized for storing ... R E M E D I A T I O N CDE SERVICE