User & Device Identity For Microservices @ Netflix Scale - - PowerPoint PPT Presentation

user device identity for microservices netflix scale
SMART_READER_LITE
LIVE PREVIEW

User & Device Identity For Microservices @ Netflix Scale - - PowerPoint PPT Presentation

User & Device Identity For Microservices @ Netflix Scale Satyajit Thadeshwar QCon San Francisco 2019 Logged out? #$%&! User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar Logged out? #$%&! User


slide-1
SLIDE 1

User & Device Identity For Microservices @ Netflix Scale

Satyajit Thadeshwar QCon San Francisco 2019

slide-2
SLIDE 2 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Logged out? #$%&!

slide-3
SLIDE 3 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Logged out? #$%&!

slide-4
SLIDE 4 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Time Core Streaming Metric Current Last Week

slide-5
SLIDE 5 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Satyajit Thadeshwar Product Edge Access Systems

sthadeshwar@netflix.com

slide-6
SLIDE 6 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Complicated

slide-7
SLIDE 7 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-8
SLIDE 8 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

9 teams 57 watchers

slide-9
SLIDE 9

Netflix subscribers and the devices that they use

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-10
SLIDE 10 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Where we were What we did Wins

slide-11
SLIDE 11

Where we were

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-12
SLIDE 12 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568

User Login

slide-13
SLIDE 13 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

EDGE ORIGIN Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login

User Login

slide-14
SLIDE 14 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

auth

service

EDGE ORIGIN MID-TIER SERVICES Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login success

User Login

slide-15
SLIDE 15 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

auth

service

EDGE ORIGIN MID-TIER SERVICES Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login success

User Login

customerId: 10192378 ESN: LGTV20165-193456G568 Expires: In 8 hours

slide-16
SLIDE 16 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

auth

service

EDGE ORIGIN MID-TIER SERVICES Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login success Set-Cookie

User Login

customerId: 10192378 ESN: LGTV20165-193456G568 Expires: In 8 hours

slide-17
SLIDE 17 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE

Authenticate Request

/browse

slide-18
SLIDE 18 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

EDGE ORIGIN /browse

Authenticate Request

/browse

slide-19
SLIDE 19 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

EDGE ORIGIN /browse

Authenticate Request

success

KEY MANAGEMENT SERVICE /browse

slide-20
SLIDE 20 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

EDGE ORIGIN /browse

Authenticate Request

success

MID-TIER SERVICES

customerId: 10192378 ESN: LGTV20165-193456G568 KEY MANAGEMENT SERVICE /browse

slide-21
SLIDE 21 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

EDGE ORIGIN /browse

Authenticate Request

success

MID-TIER SERVICES

customerId: 10192378 ESN: LGTV20165-193456G568 KEY MANAGEMENT SERVICE /browse

slide-22
SLIDE 22

More than one service consuming cookies

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-23
SLIDE 23 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-24
SLIDE 24 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES /ios /android /atv ...

slide-25
SLIDE 25 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-26
SLIDE 26 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-27
SLIDE 27 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-28
SLIDE 28 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-29
SLIDE 29

At massive scale

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-30
SLIDE 30 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Netflix

158M+ subscribers

slide-31
SLIDE 31 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Netflix

158M+ subscribers 1B+ devices

slide-32
SLIDE 32 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Netflix

158M+ subscribers 1B+ devices 2M peak RPS

slide-33
SLIDE 33 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Authenticate Request / Extract Identity

API

ORIGIN KEY MANAGEMENT SERVICE

= 2 million Requests Per Second

slide-34
SLIDE 34

More than one token type

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-35
SLIDE 35

Cookies

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-36
SLIDE 36

Cookies

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • Signup
slide-37
SLIDE 37

Cookies

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • Signup
  • Login
slide-38
SLIDE 38

Cookies

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • Signup
  • Login
  • Discovery
slide-39
SLIDE 39

MSL Tokens

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • Device authentication
  • Encryption

Message Security Layer (MSL)

https://www.infoq.com/news/2014/11/netflix-msl/

slide-40
SLIDE 40

MSL Tokens

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • License
  • Playback
slide-41
SLIDE 41

CTicket

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • Legacy devices
slide-42
SLIDE 42

Partner Tokens

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
  • JWS, JWE
  • Non-member

experiences

slide-43
SLIDE 43
  • Signup
  • Sign-in
  • Discovery
  • License
  • Playback
  • Legacy

devices

  • Non-member

experience

Cookies MSL Tokens CTicket Partner Tokens

(JWS, JWE)

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-44
SLIDE 44 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-45
SLIDE 45
  • Multiple services consuming auth tokens
  • Multiple types of auth tokens
  • Massive scale
  • Inefficient, insecure & complicated

Where we were

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-46
SLIDE 46 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API Device Auth Service Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service lolomo / Search DRM Other services EDGE ORIGINS MID-TIER SERVICES

slide-47
SLIDE 47 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Device Auth Service

Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service EDGE ORIGINS MID-TIER SERVICES

NodeJS Services

Lolomo / Search DRM Other services Discovery API Playback API

slide-48
SLIDE 48

What we did

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-49
SLIDE 49

Moved authentication to the edge

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-50
SLIDE 50 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Device Auth Service

Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service EDGE ORIGINS MID-TIER SERVICES

NodeJS Services

Lolomo / Search DRM Other services Discovery API Playback API

slide-51
SLIDE 51 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Device Auth Service

Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service EDGE ORIGINS MID-TIER SERVICES

NodeJS Services

Lolomo / Search DRM Other services Discovery API Playback API Cookie Service MSL Service Partner Service EAS

slide-52
SLIDE 52 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Device Auth Service

Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service EDGE ORIGINS MID-TIER SERVICES

NodeJS Services

Lolomo / Search DRM Other services Discovery API Playback API Cookie Service MSL Service Partner Service EAS EDGE AUTHENTICATION SERVICES

slide-53
SLIDE 53 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE EAS

renewal / device auth / key exchange

Cookie Service MSL Service Partner Service

valid and not expired 95% 5%

slide-54
SLIDE 54 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE Cookie Service EAS

valid but expired renewal call

slide-55
SLIDE 55 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE Cookie Service EAS

valid but expired renewal call failed

slide-56
SLIDE 56 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE Cookie Service EAS

valid but expired renewal call rescheduled resolved identity

slide-57
SLIDE 57 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE Cookie Service EAS

valid but expired renewal call rescheduled rescheduled cookie resolved identity

slide-58
SLIDE 58 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Device Auth Service

Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service EDGE ORIGINS MID-TIER SERVICES

NodeJS Services

Lolomo / Search DRM Other services Discovery API Playback API Cookie Service MSL Service Partner Service EAS EDGE AUTHENTICATION SERVICES

slide-59
SLIDE 59 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Device Auth Service

Legacy API

Netflix Microservices SIGNUP FLOW SERVICE subscriber auth service EDGE ORIGINS MID-TIER SERVICES

NodeJS Services

Lolomo / Search DRM Other services Discovery API Playback API Cookie Service MSL Service Partner Service EAS EDGE AUTHENTICATION SERVICES

slide-60
SLIDE 60 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

slide-61
SLIDE 61 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

  • Identity structure created at the edge for each request
slide-62
SLIDE 62 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

  • Identity structure created at the edge for each request
  • Contains user & device identity
slide-63
SLIDE 63 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

  • Identity structure created at the edge for each request
  • Contains user & device identity
  • Internal to Netflix ecosystem
slide-64
SLIDE 64 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

  • Identity structure created at the edge for each request
  • Contains user & device identity
  • Internal to Netflix ecosystem
  • Integrity protected by HMAC
slide-65
SLIDE 65 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

  • Identity structure created at the edge for each request
  • Contains user & device identity
  • Internal to Netflix ecosystem
  • Integrity protected by HMAC
  • Protobuf format
slide-66
SLIDE 66 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message Passport { Header header = 1; UserInfo user_info = 2; DeviceInfo device_info = 3; Integrity user_integrity = 4; Integrity device_integrity = 5; }

slide-67
SLIDE 67 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message Passport { Header header = 1; UserInfo user_info = 2; DeviceInfo device_info = 3; Integrity user_integrity = 4; Integrity device_integrity = 5; } message Header { string originator = 1; }

slide-68
SLIDE 68 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message Passport { Header header = 1; UserInfo user_info = 2; DeviceInfo device_info = 3; Integrity user_integrity = 4; Integrity device_integrity = 5; }

slide-69
SLIDE 69 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message Passport { Header header = 1; UserInfo user_info = 2; DeviceInfo device_info = 3; Integrity user_integrity = 4; Integrity device_integrity = 5; } message UserInfo { Source source = 1; AuthenticationLevel auth_level = 2; Int64Wrapper customer_id = 3; Int64Wrapper account_owner_id = 4; repeated UserAction actions = ; }

slide-70
SLIDE 70 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message Passport { Header header = 1; UserInfo user_info = 2; DeviceInfo device_info = 3; Integrity user_integrity = 4; Integrity device_integrity = 5; } message DeviceInfo { Source source = 1; AuthenticationLevel auth_level = 2; StringValue esn = 3; Int32Value device_type = 4; repeated DeviceAction actions = 5; }

slide-71
SLIDE 71 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message UserInfo { Source source = 1; AuthenticationLevel auth_level = 2; } message DeviceInfo { Source source = 1; AuthenticationLevel auth_level = 2; }

slide-72
SLIDE 72 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message UserInfo { Source source = 1; AuthenticationLevel auth_level = 2; } message DeviceInfo { Source source = 1; AuthenticationLevel auth_level = 2; } enum Source { COOKIE = 1; MSL = 2; PARTNER_TOKEN = 3; CTICKET = 4; }

slide-73
SLIDE 73 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message UserInfo { Source source = 1; AuthenticationLevel auth_level = 2; } message DeviceInfo { Source source = 1; AuthenticationLevel auth_level = 2; } enum AuthenticationLevel { LOW = 1; // untrusted transport HIGH = 2; // secure tokens over TLS HIGHEST = 3; // MSL or user credentials }

slide-74
SLIDE 74 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport

message Passport { Header header = 1; UserInfo user_info = 2; DeviceInfo device_info = 3; Integrity user_integrity = 4; Integrity device_integrity = 5; } message Integrity { string key_name = 1; bytes hmac = 2; }

slide-75
SLIDE 75 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Introspector

  • Wrapper over passport

binary data

slide-76
SLIDE 76 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Introspector

  • Wrapper over passport

binary data public interface PassportIntrospector { Long getCustomerId(); Long getAccountOwnerId(); String getEsn(); String getPassportAsString(); ... }

slide-77
SLIDE 77 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Introspector

  • Wrapper over passport

binary data public interface PassportIntrospector { Long getCustomerId(); Long getAccountOwnerId(); String getEsn(); String getPassportAsString(); ... }

  • Consumers create

passportIntrospector from binary passport data factory.createIntrospector(passport);

slide-78
SLIDE 78 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Tooling

Self-service tool for teams to decrypt passport

slide-79
SLIDE 79 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Actions

message UserInfo { repeated UserAction actions = 6; ... } message DeviceInfo { repeated DeviceAction actions = 5; ... }

slide-80
SLIDE 80 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Actions

message UserInfo { repeated UserAction actions = 6; ... } message DeviceInfo { repeated DeviceAction actions = 5; ... }

  • Explicit signal sent by the

downstream services, when an update to user or device identity has been performed

slide-81
SLIDE 81 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Actions

message UserInfo { repeated UserAction actions = 6; ... } message DeviceInfo { repeated DeviceAction actions = 5; ... }

  • Explicit signal sent by the

downstream services, when an update to user or device identity has been performed

  • This "signal" is used by EAS to either

create or update the corresponding type of token

slide-82
SLIDE 82 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Action

slide-83
SLIDE 83 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Action: User Login

slide-84
SLIDE 84 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul

EDGE Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568

Passport Action: User Login

slide-85
SLIDE 85 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

EDGE ORIGIN Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login

Passport Action: User Login

(Device Bound)

slide-86
SLIDE 86 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

auth

service

EDGE ORIGIN MID-TIER SERVICES Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login success

Passport Action: User Login

(Device Bound)

slide-87
SLIDE 87 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

auth

service

EDGE ORIGIN MID-TIER SERVICES Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login success

Passport Action: User Login

(Device Bound) user login user login

slide-88
SLIDE 88 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Zuul API

Netflix Microservices

auth

service

EDGE ORIGIN MID-TIER SERVICES Email: jsmith@gmail.com Password: ******** ESN: LGTV20165-193456G568 /login success Set-Cookie

Passport Action: User Login

Cookie Service

(Device Bound) user login user login

slide-89
SLIDE 89 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Action: Profile Switch

slide-90
SLIDE 90 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Action: Profile Switch

  • Each profile has its own

identity

slide-91
SLIDE 91 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Action: Profile Switch

  • Each profile has its own

identity

  • Switched profile tokens

sent back to the device

slide-92
SLIDE 92 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Passport Actions Separation Of Concerns Increased Visibility

slide-93
SLIDE 93
  • Moved authentication to the edge
  • Streamlined the identity resolution and mutation path
  • Making consumption of user & device identity
  • Efficient, secure & simple

What we did

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-94
SLIDE 94

Wins

User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar
slide-95
SLIDE 95 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Token Agnostic Identity

Downstream systems don't have to worry about authentication concerns

slide-96
SLIDE 96 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Simplified Authorization

Downstream services use authentication level for authorization decisions

slide-97
SLIDE 97 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Simplified Authorization

Before: long customerId = 2123125603L; String ESN = "NFXBOX-235F…";

slide-98
SLIDE 98 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Extensible Identity Model

New attributes about user or device can be added

slide-99
SLIDE 99 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Local cache for up to date subscriber data

message UserInfo { BytesValue subscriber_account ... } Placeholder for local cache of subscriber data

slide-100
SLIDE 100 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Offloaded & Fine Tuned

Offloaded token processing which resulted into significant gains for

  • CPU
  • Request Latency
  • GC
  • Cluster Footprint

We were able to fine-tune EAS systems based on the token processing profile

slide-101
SLIDE 101 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Offloaded & Fine Tuned

Offloaded token processing which resulted into significant gains for

  • CPU
  • Request Latency
  • GC
  • Cluster Footprint

We were able to fine tune EAS systems based on the token processing profile

slide-102
SLIDE 102 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Offloaded & Fine Tuned

  • 30% reduction in CPU

cost per request

  • 40% reduction in load

average CPU to RPS ratio for API instance

slide-103
SLIDE 103 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Offloaded & Fine Tuned

  • 30% reduction in

average latency

  • 99th percentile latency

dropping by 20% Response time for API instance

slide-104
SLIDE 104 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Offloaded & Fine Tuned

  • Significant reduction in

GC pressure and GC pause times Stop the world GC for API cluster

slide-105
SLIDE 105 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Increased Visibility

Increased visibility into identities flowing in and out of Netflix ecosystem ...and into the identity mutations happening in a request

slide-106
SLIDE 106 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Developer Velocity

Greatly increased developer velocity for authentication related changes

slide-107
SLIDE 107 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Team focused on security

Separation of concerns among the teams

slide-108
SLIDE 108 User & Device Identity for Microservices @ Netflix Scale Satyajit Thadeshwar

Key Takeaways

  • Token agnostic identity model
  • Simplified authorization
  • Extensible identity model
  • Offloaded all the token processing from many systems
  • Fine tuned individual microservices to suit the token processing profile
  • Increased visibility into identities flowing and corresponding mutations
  • Increased developer velocity for authentication & identity related changes
  • Team focused on security
slide-109
SLIDE 109

Thank You.

Satyajit Thadeshwar sthadeshwar@netflix.com https://www.linkedin.com/in/satyajit-thadeshwar