Top Banner
Internet Scale Service [email protected]
70

Internet scaleservice

Apr 21, 2017

Download

Engineering

DaeMyung Kang
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Internet scaleservice

Internet Scale Service

[email protected]

Page 2: Internet scaleservice

About Me•KakaoStory Backend Engineer

•Redis Contributor

•Apache Tajo Committer

Page 3: Internet scaleservice

Internet Scale Service

Page 4: Internet scaleservice

High Scale Service

Page 5: Internet scaleservice

Mass Traffic

Huge Users

Many IDCs

Page 6: Internet scaleservice

BuildInternet Scale Service

Page 7: Internet scaleservice

Paperhttps://www.usenix.org/legacy/event/lisa07/tech/full_pape

rs/hamilton/hamilton_html/

Page 8: Internet scaleservice

Check Listhttps://gist.github.com/acolyer/95ef23

802803cb8b4eb5

Page 9: Internet scaleservice

What should be considered?

Page 10: Internet scaleservice

Your Service is Elastic?

Page 11: Internet scaleservice

ShardingShared Nothing

Page 12: Internet scaleservice

Shared Nothing

Page 13: Internet scaleservice

Stateless

Page 14: Internet scaleservice

StatelessLoad Balancer

Storage Layer

API Servers

API Servers

API Servers

API Servers

Page 15: Internet scaleservice

StatelessLoad Balancer

Storage Layer

API Servers

API Servers

API Servers

API Servers

Page 16: Internet scaleservice

Need Log Collector

Page 17: Internet scaleservice

Sharding

Page 18: Internet scaleservice

Database Partitioning

Page 19: Internet scaleservice

Vertical Partitioning

Page 20: Internet scaleservice

Horizontal Partitioning

Page 21: Internet scaleservice

Sharding = HorizontalPartitioning

Page 22: Internet scaleservice

But Not only DB

Page 23: Internet scaleservice

Searching Key

Page 24: Internet scaleservice

Range

User #1

User #10

User #1000000

User #1000001

User #1000100

User #2000000

User #2000001

User #2000200

User #3000000

User #1000005

Page 25: Internet scaleservice

Moduler

User #1

User #4

User #7

User #2

User #5

User #8

User #3

User #6

User #9

User #0

#0 / 3 = 0

Page 26: Internet scaleservice

IndexedUser #5000 Index Server

User #1

User #2000

User #1000000

User #2

User #2001

User #10000

User #3

User #6

User #5000

#5000 is in Server2

Page 27: Internet scaleservice

Searching Keywith

Coordinator

Page 28: Internet scaleservice

Clustering

Page 29: Internet scaleservice

Don’t need Search Key

Page 30: Internet scaleservice

HbaseCassandraMongoDB

etc

Page 31: Internet scaleservice

MatureBut

Not Mature

Page 32: Internet scaleservice

Cache Solution

Page 33: Internet scaleservice

Memcached/Redis

Page 34: Internet scaleservice

Memcached

ChunkSlab Algorithm

Page 35: Internet scaleservice

Redis

CollectionsReplication

Page 36: Internet scaleservice

Redis is Single Threaded

Page 37: Internet scaleservice

Redis

150,000 TPSIn commodity server

Page 38: Internet scaleservice

Redis

Must manage Redis Memory(RSS)

Page 39: Internet scaleservice

Redis

Don’t execute long-timeSpend Commands.

Page 40: Internet scaleservice

Cache is Storage

Server

Cache #1

Cache #2

Cache #3

Cache #4

Searching Key

Page 41: Internet scaleservice

Client Side Load Balancing

Server

Cache #1

Cache #2

Cache #3

Cache #4

Searching Key

Cache #1Cache #2Cache #3Cache #4

Coordinator

Page 42: Internet scaleservice

Server Side Load Balancing

proxy

Cache #1

Cache #2

Cache #3

Cache #4

Searching Key

Server

Page 43: Internet scaleservice

Circuit Breaker

Page 44: Internet scaleservice
Page 45: Internet scaleservice

How many API Calls?

Page 46: Internet scaleservice

If one call fails?

Page 47: Internet scaleservice

Fast FailBackand Background Check

Page 48: Internet scaleservice

Netflix Hystrix

Page 49: Internet scaleservice

Using Coordinator

Page 50: Internet scaleservice

ZookeeperConsulEtcd

Page 51: Internet scaleservice

Get ConfigurationFrom Coordinator

Page 52: Internet scaleservice

Servers ListFeature Flags

Page 53: Internet scaleservice

Failover

Page 54: Internet scaleservice

VIPDynamic DNS

Page 55: Internet scaleservice

VIP

Server

DB Master192.168.0.10

DB Slave192.168.0.11

VIP 192.168.0.12

Page 56: Internet scaleservice

VIP

Server

DB Master192.168.0.10

DB Slave192.168.0.11

VIP 192.168.0.12

Page 57: Internet scaleservice

Dynamic DNS

Server

DB Master192.168.0.10

DB Slave192.168.0.11

db1-master.a.com

Page 58: Internet scaleservice

Dynamic DNS

Server

DB Master192.168.0.10

DB Slave192.168.0.11

db1-master.a.com

Page 59: Internet scaleservice

Must Check Environments

For Dynamic DNS

Page 60: Internet scaleservice

JVM DNS Cache Issue

Page 61: Internet scaleservice

Latency #1

Page 62: Internet scaleservice

Latency #1

IDC 1 IDC 2

API Server DB ServerLatency 50ms

Page 63: Internet scaleservice

What Happen?

Page 64: Internet scaleservice

Latency #1

IDC 1 IDC 2

API Server DB Server

Select * from posts where id=123;

results

Select member from members where id=poster.group;

results

Page 65: Internet scaleservice

Latency #1

IDC 1 IDC 2

API ServerDB Server

getMembersList()

results

Logic Server

Page 66: Internet scaleservice

Latency #2

Page 67: Internet scaleservice
Page 68: Internet scaleservice
Page 69: Internet scaleservice

QnA

Page 70: Internet scaleservice

Thanks