Upload
mahesh-paolini-subramanya
View
505
Download
1
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
{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