+ All Categories
Home > Presentations & Public Speaking > Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Date post: 15-Jan-2015
Category:
Upload: pierre-alban-dewitte
View: 440 times
Download: 2 times
Share this document with a friend
Description:
At Bouygues Telecom, we rely heavily on our user data to relay the best possible services. We had been using a proprietary solution for our directory of customer services. This system is used by severals other teams, such as voicemail, customer identification, online services and the mobile marketplace, for online payments, OAuth and network authentication. We faced several problems with scalability and the frequent changes in our data model as services changed on a daily basis, and decided to build our own software to meet our needs. MongoDB's sharding and schema free document model made it a perfect fit for our in-house solution. The system is now designed to manage 12 million customers, 3000 request per second and availability of 99.9%. In six months we were able to build the new system that effectively connects the our various systems and partners, leading to a simpler and more streamlines system for access. In this talk we will discuss how we build this system from the ground up with MongoDB, Storm and Tomcat REST Services.
Popular Tags:
44
Adding Flexibility and Scalability to Bouygues Telecom with MongoDB Pierre-Alban DEWITTE @__pad__ Bouygues Telecom MongoDB World 06/24/2014
Transcript
Page 1: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Adding Flexibility and

Scalability to Bouygues

Telecom with MongoDB

Pierre-Alban DEWITTE

@__pad__

Bouygues Telecom

MongoDB World – 06/24/2014

Page 2: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Bouygues Telecom

Page 3: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Who is speaking ?

@__pad__

Page 4: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld
Page 5: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Agenda

Adding Flexibility and Scalability to

Bouygues Telecom with MongoDB

1. Existing problems

2. Design choices

3. Build

4. A few steps back

Page 6: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Agenda

1. Existing problems

Page 7: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Existing problems

Consumer Customers

Existing Sytem Compagny Customers

LDAP access

Micropayment system

Identity and Oauth management system

Network Connexion system

ETL

Page 8: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Existing problems

Two years delay

Schema customization

very hard to design and

implement

Performance issues

Page 9: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Existing problems

Page 10: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Agenda

1. Existing problems

2. Design choices A. MongoDB

B. Tomcat

C. Storm

Page 11: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Design choices - MongoDB

Schema less data integration

High availability

Sharding

Less expensive data storage

allowing duplication

Page 12: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

POC between Tomcat and

NodeJS

We choose our battle,

MongoDB !

Design choices - Tomcat

Page 13: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Page 14: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Design choices - Storm

Distributed real-time computation system

Page 15: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Design choices - Storm

MongoDB database

REST Micropayment

system

Identity and Oauth management system

Network Connexion system

STORM

Consumer Customers

Compagny Customers

Page 16: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Agenda

1. Existing problems

2. Design choices

3. Build

A. Storm topology

B. Schema design

and refactor

C. DevOps

Page 17: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Storm topology

Customer files are pushed every night

Read file line by line

1

… DetectFile

Spout ProcessLine

Bolt

2

line

Page 18: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Storm topology

Emitting tuple for each set of functional

collections

ProcessLine Bolt

4

Oauth UpdaterBolt

Identity UpdaterBolt Transform a line into a

document & check delta

3

Page 19: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Storm topology

Page 20: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Storm topology

Page 21: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Storm topology

Page 22: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Design choices - Storm

Message failure handle

ack(Object msgId)

failed(Object msgId)

Page 23: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Design choices - Storm

We scaled and easily !

Page 24: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Conception User

- Name - Compagny - Billcycle - Payment

Mode

Access Point

- Id - Type - Value

1

1..n

Conception

Page 25: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Develo

pm

ent

Page 26: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Qualification

Page 27: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor D

evelop

men

t

Page 28: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

« That works »

Qualification

Conception

Page 29: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor St

ress

Tes

t

Page 30: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Conception Conception

Page 31: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Conception Conception

Page 32: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Develo

pm

ent

Page 33: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

Develo

pm

ent

Qualification

Conception

Stre

ss T

est

Page 34: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - Schema design and refactor

PERFECT !

Develo

pm

ent

Conception

Stre

ss T

es

Page 35: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - DevOps

Page 36: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - DevOps

Tooling first

Page 37: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - DevOps

Moving the line between Dev and Ops

Page 38: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Build - DevOps

Internal training by development team

Redaction of a play-book dedicated to ops

Pre production tests played by both team

Early write of stress tests, played during

qualification tests

Page 39: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

6 months later

Page 40: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Agenda

1. Existing problems

2. Design choices

3. Iterations during build

4. A few steps back

Page 41: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

A few steps back

Apache Tomcat Apache STORM

Page 42: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

A few steps back

1. Choose your battle

2. Use the right tool for the

right job

3. Be prepare to fail and to

rework

4. To move organization,

training is a key

Page 43: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Thank you for listening

Questions ?

Further talks @__pad__

Page 44: Adding Flexibility and Scalability to Bouygues Telecom with MongoDB @ MongoDBWorld

Pierre-Alban DEWITTE @__pad__ #MongoDBWorld

Photo credits

100 m start : http://fr.wikipedia.org/wiki/100_m%C3%A8tres_%28athl%C3%A9tisme%29#mediaviewer/Fichier:Mens_100m_finals_British_Champs_and_Olympic_Trials.jpg by Paul Foot from Birmingham, UK Question mark block : https://www.flickr.com/photos/jarbo/9379813470 by Jared Cherup Pelleteuse orange : http://fr.123rf.com/photo_3669950_un-grand-pelleteuse-orange-stationne-a-un-chantier-de-construction.html by Stephen Mcsweeny Punaise : https://www.flickr.com/photos/24362608@N05/3501112978/sizes/l/in/photolist-f5R8g4-6kiVfR-6koahu-6ko7US-6ko8Qh-d9NUKU-nDi2eb-ffg13f-8h56wx-cgAcib-hchCtD-decZ4p-6kocrL-6kj2J6-5doxaw-gbTPmK-nCFBBq-672Snf-2sCzvw-e1zAjM-8voRbc-c9Rh1m-amFFGt-2iZNBq-cFSnFU-81Ckk4-2XHZAy-9Ggpfw-m8FfKz-8hW6r5-4xSuxC-awXsp4-5aVn7g-fbXVHZ-9GAPLX-9qr7uU-fcddgA-cP1EN7-np2q92-6V8oBT-cenSsb-cyzaEd-8h5a2F-6V2b3F-ch1RME-fJ52s3-9XthVN-kBs5mW-6qSPaF-5cA9Qb/ par dractrain94 Une longue vue qui louche : https://www.flickr.com/photos/la_bretagne_a_paris/3847733265/ par Yann Caradec NASA-Apollo8-Dec24-Earthrise : http://www.hq.nasa.gov/office/pao/History/alsj/a410/AS8-14-2383HR.jpg par NASA / Bill Anders


Recommended