nosql learnings from the world of telco

Post on 03-Jul-2015

505 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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!)

TRANSCRIPT

{NoSQL the Telco way

@dieswaytoofast

(V.P. Ubiquiti Networks)

The Business

Phone services for SMBs

The Business

Phone services for SMBs

Hosted Phone services for SMBs

The Business

Phone services for SMBs

Hosted Phone services for SMBs

Hosted Cloud Communications service for SMBs

The Business

Phone services for SMBs

Hosted Phone services for SMBs

Hosted Cloud Communications service for SMBs

The BusinessHUH W

HAT?

The Metrics

Phone Calls per Second

The Metrics

Phone Calls per Second

The Metrics

x 1000

Simultaneous Phone Calls

The Metrics

Simultaneous Phone Calls

The Metrics

x 10,000

HTTP API requests

The Metrics

HTTP API requests

The Metrics

Self-hosted (kinda)

The Infrastructure

Self-hosted (kinda)

Big IP pipes

The Infrastructure

Self-hosted (kinda)

Big IP pipes

Erlang

The Infrastructure

Self-hosted (kinda)

Big IP pipes

Erlang

Polyglot Persistence

The Infrastructure

Self-hosted (kinda)

Big IP pipes

Erlang

Polyglot Persistence

The InfrastructureHUH?

Domain-specific data stores

Polyglot Persistence

Domain-specific data stores

Polyglot Persistence

SQL

Domain-specific data stores

Polyglot Persistence

NoSQL

SQL

Domain-specific data stores

Polyglot Persistence

NoSQL

Files

SQL

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

SQL

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

Excel

SQL

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

Excel

Post-ItSQL

Domain-specific data stores

Polyglot Persistence

NoSQL

Text

Files

Excel

Post-ItSQL

Not (necessarily) structured data

NoSQL

Not (necessarily) structured data

Solution Oriented

NoSQL

Not (necessarily) structured data

Solution Oriented

NoSQLHUH?

SQL

NoSQL

75bhp

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

- Casey Rosenthal

Solution Oriented

Solution Oriented

Key-Value

Solution Oriented

Key-Value

Object

Solution Oriented

Key-Value

Column

Object

Solution Oriented

Key-Value

ColumnDocument

Object

Solution Oriented

Key-Value

ColumnDocument

Graph

Object

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectEventu

ally

Consiste

nt

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectEventu

ally

Consiste

ntOrd

ered

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectMem

ory

Eventually

Consiste

ntOrd

ered

Solution Oriented

Key-Value

ColumnDocument

Graph

ObjectMem

ory

Eventually

Consiste

ntOrd

ered

Multi

ple

Value

Eventually

Consiste

nt

Mem

ory

ObjectSolution Oriented

Key-Value

ColumnDocument

GraphOrdere

d

Multi

ple

Value

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

Example please?

"Everybody Knows"

"EVERYBODY K

NOWS

OVER

ENGINEERIN

G!

Anything else?

I lied about reports

Anything else?

I lied about reports (kind-of)

Anything else?

Do tell…

If its easy, people might actually use it

- <name withheld>

Sad but true…

Friction - Bad...

Friction - Good...

Really?

Friction - Good...

Example please?

Friction - Good...

Anything else?

Scaling Matters

Scaling Matters"E

VERYBODY KNOW

S

Scaling is easy

Scaling is easy"E

VERYBODY KNOW

S

Automatic Scaling is hard

Automatic Scaling is hard

Automatic Scaling is hard

Automatic Scaling is hard

Automatic Scaling is hard

Automatic Scaling is hard

And the Failure modes!

And the Failure modes!

And the Failure modes!

And the Failure modes!

And the Failure modes!

Back Office Systems

New CFO

New CEO

The Bottom Line

AGILITY

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

the power of moving quickly and easily; nimbleness

Agility

Loose Coupling

Agility

Loose Coupling

Hot Upgrades

Agility

Loose Coupling

Hot Upgrades

Polyglot Persistence

Agility

Move call information into one (per-client) database

Redesign

New CFO

Preprocess Call information

Separate out billing information

Redesign

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

New CEO

Move all client info into one Database

Redesign

"EVERYBODY K

NOWS

More pre-computations (Date ranges! Argh!)

Redesign

Expiring calls? Argh!

Redesign

And the Failure modes!

Decouple authentication

Redesign

Mnesia

Automatic Scaling is hard

Caches Caches Everywhere…

Redesign

Mnesia

Automatic Scaling is hard

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Caches Caches Everywhere…

Redesign

MnesiaMnesia

Mnesia

Caches Caches Everywhere…

Redesign

MnesiaMnesia

MnesiaMnesia

Caches Caches Everywhere…

Redesign

MnesiaMnesia

MnesiaMnesia

Mnesia

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Mnesia

MnesiaMnesia

Mnesia

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Caches Caches Everywhere…

Redesign

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Mnesia

Redesign

Back Office Systems

Redesign

top related