133
{ NoSQL the Telco way @dieswaytoofast (V.P. Ubiquiti Networks)

NoSQL learnings from the world of Telco

Embed Size (px)

DESCRIPTION

Being a decent-sized Telecommunications provider, we process a lot of calls (hundreds/second), and need to keep track of all the events on each call. Technically speaking, this is "A Lot" of data - data that our clients (and our own people!) want real-time access to in a myriad of ways. We've ended up going through quite a few NoSQL stores in our quest to satisfy everyone - and the way we do things now has very little to do with where we started out. Join me as I describe our experience and what we've learned, focusing on the Big 4, viz -The "solution-oriented" nature of NoSQL repeatedly changed our understanding of our problem-space - sometimes drastically. - The system behavior , particularly the failure modes, were significantly different at scale -The software model kept getting overhauled - regardless of how much we planned ahead -We came to value agility - the ability to change direction - above all (yes, even at a Telco!)

Citation preview

Page 1: NoSQL learnings from the world of Telco

{NoSQL the Telco way

@dieswaytoofast

(V.P. Ubiquiti Networks)

Page 2: NoSQL learnings from the world of Telco
Page 3: NoSQL learnings from the world of Telco

The Business

Page 4: NoSQL learnings from the world of Telco

Phone services for SMBs

The Business

Page 5: NoSQL learnings from the world of Telco

Phone services for SMBs

Hosted Phone services for SMBs

The Business

Page 6: NoSQL learnings from the world of Telco

Phone services for SMBs

Hosted Phone services for SMBs

Hosted Cloud Communications service for SMBs

The Business

Page 7: NoSQL learnings from the world of Telco

Phone services for SMBs

Hosted Phone services for SMBs

Hosted Cloud Communications service for SMBs

The BusinessHUH W

HAT?

Page 8: NoSQL learnings from the world of Telco
Page 9: NoSQL learnings from the world of Telco
Page 10: NoSQL learnings from the world of Telco
Page 11: NoSQL learnings from the world of Telco
Page 12: NoSQL learnings from the world of Telco
Page 13: NoSQL learnings from the world of Telco

The Metrics

Page 14: NoSQL learnings from the world of Telco

Phone Calls per Second

The Metrics

Page 15: NoSQL learnings from the world of Telco

Phone Calls per Second

The Metrics

x 1000

Page 16: NoSQL learnings from the world of Telco

Simultaneous Phone Calls

The Metrics

Page 17: NoSQL learnings from the world of Telco

Simultaneous Phone Calls

The Metrics

x 10,000

Page 18: NoSQL learnings from the world of Telco

HTTP API requests

The Metrics

Page 19: NoSQL learnings from the world of Telco

HTTP API requests

The Metrics

Page 20: NoSQL learnings from the world of Telco

Self-hosted (kinda)

The Infrastructure

Page 21: NoSQL learnings from the world of Telco

Self-hosted (kinda)

Big IP pipes

The Infrastructure

Page 22: NoSQL learnings from the world of Telco

Self-hosted (kinda)

Big IP pipes

Erlang

The Infrastructure

Page 23: NoSQL learnings from the world of Telco

Self-hosted (kinda)

Big IP pipes

Erlang

Polyglot Persistence

The Infrastructure

Page 24: NoSQL learnings from the world of Telco

Self-hosted (kinda)

Big IP pipes

Erlang

Polyglot Persistence

The InfrastructureHUH?

Page 25: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

Page 26: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

SQL

Page 27: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

NoSQL

SQL

Page 28: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

NoSQL

Files

SQL

Page 29: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

SQL

Page 30: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

Excel

SQL

Page 31: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

Excel

Post-ItSQL

Page 32: NoSQL learnings from the world of Telco

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

Excel

Post-ItSQL

Page 33: NoSQL learnings from the world of Telco

Not (necessarily) structured data

NoSQL

Page 34: NoSQL learnings from the world of Telco

Not (necessarily) structured data

Solution Oriented

NoSQL

Page 35: NoSQL learnings from the world of Telco

Not (necessarily) structured data

Solution Oriented

NoSQLHUH?

Page 36: NoSQL learnings from the world of Telco

SQL

Page 37: NoSQL learnings from the world of Telco

NoSQL

Page 38: NoSQL learnings from the world of Telco

75bhp

Page 39: NoSQL learnings from the world of Telco

What d’you want the data to look like when you fetch it from the database?

- Casey Rosenthal

Solution Oriented

Page 40: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

Page 41: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

Object

Page 42: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

Column

Object

Page 43: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

ColumnDocument

Object

Page 44: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

ColumnDocument

Graph

Object

Page 45: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectEventu

ally

Consiste

nt

Page 46: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectEventu

ally

Consiste

ntOrd

ered

Page 47: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectMem

ory

Eventually

Consiste

ntOrd

ered

Page 48: NoSQL learnings from the world of Telco

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectMem

ory

Eventually

Consiste

ntOrd

ered

Multi

ple

Value

Page 49: NoSQL learnings from the world of Telco

Eventually

Consiste

nt

Mem

ory

ObjectSolution Oriented

Key-Value

ColumnDocument

GraphOrdere

d

Multi

ple

Value

Page 50: NoSQL learnings from the world of Telco

http://techcrunch.com/2012/10/27/big-data-right-now-five-trendy-open-source-technologies/

Page 51: NoSQL learnings from the world of Telco
Page 52: NoSQL learnings from the world of Telco

Example please?

Page 53: NoSQL learnings from the world of Telco
Page 54: NoSQL learnings from the world of Telco

"Everybody Knows"

Page 55: NoSQL learnings from the world of Telco

"EVERYBODY K

NOWS

Page 56: NoSQL learnings from the world of Telco
Page 57: NoSQL learnings from the world of Telco

OVER

ENGINEERIN

G!

Page 58: NoSQL learnings from the world of Telco

Anything else?

Page 59: NoSQL learnings from the world of Telco

I lied about reports

Anything else?

Page 60: NoSQL learnings from the world of Telco

I lied about reports (kind-of)

Anything else?

Page 61: NoSQL learnings from the world of Telco

Do tell…

Page 62: NoSQL learnings from the world of Telco

If its easy, people might actually use it

- <name withheld>

Sad but true…

Page 63: NoSQL learnings from the world of Telco

Friction - Bad...

Page 64: NoSQL learnings from the world of Telco
Page 65: NoSQL learnings from the world of Telco

Friction - Good...

Page 66: NoSQL learnings from the world of Telco

Really?

Friction - Good...

Page 67: NoSQL learnings from the world of Telco

Example please?

Friction - Good...

Page 68: NoSQL learnings from the world of Telco
Page 69: NoSQL learnings from the world of Telco

Anything else?

Page 70: NoSQL learnings from the world of Telco

Scaling Matters

Page 71: NoSQL learnings from the world of Telco

Scaling Matters"E

VERYBODY KNOW

S

Page 72: NoSQL learnings from the world of Telco

Scaling is easy

Page 73: NoSQL learnings from the world of Telco

Scaling is easy"E

VERYBODY KNOW

S

Page 74: NoSQL learnings from the world of Telco
Page 75: NoSQL learnings from the world of Telco
Page 76: NoSQL learnings from the world of Telco
Page 77: NoSQL learnings from the world of Telco
Page 78: NoSQL learnings from the world of Telco
Page 79: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 80: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 81: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 82: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 83: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 84: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 85: NoSQL learnings from the world of Telco

And the Failure modes!

Page 86: NoSQL learnings from the world of Telco

And the Failure modes!

Page 87: NoSQL learnings from the world of Telco

And the Failure modes!

Page 88: NoSQL learnings from the world of Telco

And the Failure modes!

Page 89: NoSQL learnings from the world of Telco

And the Failure modes!

Page 90: NoSQL learnings from the world of Telco

Back Office Systems

Page 91: NoSQL learnings from the world of Telco

New CFO

Page 92: NoSQL learnings from the world of Telco

New CEO

Page 93: NoSQL learnings from the world of Telco
Page 94: NoSQL learnings from the world of Telco

The Bottom Line

AGILITY

Page 95: NoSQL learnings from the world of Telco
Page 96: NoSQL learnings from the world of Telco

a·gil·i·ty /əˈdʒɪlɪti/noun

the power of moving quickly and easily; nimbleness

Agility

Page 97: NoSQL learnings from the world of Telco
Page 98: NoSQL learnings from the world of Telco
Page 99: NoSQL learnings from the world of Telco

Loose Coupling

Agility

Page 100: NoSQL learnings from the world of Telco

Loose Coupling

Hot Upgrades

Agility

Page 101: NoSQL learnings from the world of Telco

Loose Coupling

Hot Upgrades

Polyglot Persistence

Agility

Page 102: NoSQL learnings from the world of Telco
Page 103: NoSQL learnings from the world of Telco
Page 104: NoSQL learnings from the world of Telco
Page 105: NoSQL learnings from the world of Telco

Move call information into one (per-client) database

Redesign

Page 106: NoSQL learnings from the world of Telco

New CFO

Page 107: NoSQL learnings from the world of Telco

Preprocess Call information

Separate out billing information

Redesign

Page 108: NoSQL learnings from the world of Telco

Preprocess Call information

Separate out billing information

Redesign

What d’you want the data to look like when you fetch it from the database?

- Casey Rosenthal

Page 109: NoSQL learnings from the world of Telco

New CEO

Page 110: NoSQL learnings from the world of Telco

Move all client info into one Database

Redesign

Page 111: NoSQL learnings from the world of Telco

"EVERYBODY K

NOWS

Page 112: NoSQL learnings from the world of Telco

More pre-computations (Date ranges! Argh!)

Redesign

Page 113: NoSQL learnings from the world of Telco
Page 114: NoSQL learnings from the world of Telco

Expiring calls? Argh!

Redesign

Page 115: NoSQL learnings from the world of Telco

And the Failure modes!

Page 116: NoSQL learnings from the world of Telco

Decouple authentication

Redesign

Mnesia

Page 117: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 118: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

Mnesia

Page 119: NoSQL learnings from the world of Telco

Automatic Scaling is hard

Page 120: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Page 121: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

MnesiaMnesia

Mnesia

Page 122: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

MnesiaMnesia

MnesiaMnesia

Page 123: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

MnesiaMnesia

MnesiaMnesia

Mnesia

Page 124: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Mnesia

MnesiaMnesia

Mnesia

Page 125: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Page 126: NoSQL learnings from the world of Telco

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Page 127: NoSQL learnings from the world of Telco
Page 128: NoSQL learnings from the world of Telco

Redesign

Page 129: NoSQL learnings from the world of Telco
Page 130: NoSQL learnings from the world of Telco

Back Office Systems

Page 131: NoSQL learnings from the world of Telco

Redesign

Page 132: NoSQL learnings from the world of Telco
Page 133: NoSQL learnings from the world of Telco