plus de flexibilité et de scalabilité chez bouygues télécom grâce à mongodb

Post on 29-Jun-2015

534 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Comme de nombreux opérateur Bouygues télécom dispose d'un annuaire des services de ses clients. Ce système est critique pour réaliser les paiements sur facture des abonnées, s'authentifier sur sa boite de messagerie, regarder la télévision en streaming et bien d'autres services. Il y a quelque années une solution du marché avait été choisie. Après de nombreux problèmes - de performances et de trop grande rigidé du modèle - ce systême a été remplacé par un dévelopement spécifique architecturé autour de MongoDB, Apache Storm et Apache Tomcat. Cette présentation retrace l'histoire de cette refonte et les écueils rencontrés puis surmontés pour mettre en place un système disponible à 99,9% avec des sollicitations pouvant aller jusqu'à 3000 req/s. Nous parlerons de construction de modèle, de devops et aussi de topologie storm.

TRANSCRIPT

Plus de flexibilité et de scalabilité chez

Bouygues Télécom grâce à MongoDB

Pierre-Alban DEWITTE@__pad__MongoDB Days Paris 18 novembre 2014

Bouygues Telecom

13 M de clients

@__pad__

Merci!

Agenda

Plus de flexibilité et de scalabilité chez Bouygues Télécom

1.Problèmes existants2.Protoype3.Build4.Ce que nous avons appris

Agenda

1.Problèmes existants

Problèmes existants

ConsumerCustomers

Existing Sytem

CompagnyCustomers

LDAPaccess

Micropayment system

Identity and Oauth management system

Network Connexion system

ETL

Existing problems

Projet avec deux ans de retard

Adaptation du schéma très arduePerformance

Existing problems

Agenda

1.Problèmes existants

2.ProtoypeA.MongoDBB.TomcatC.Storm

Protoype - MongoDB

Schéma flexibleHaute disponibilitéCapacité à monter en chargeCout modéré du stockage permettant la duplication

POC entre Tomcat et NodeJS

Pas de dispersion, focalisation sur MongoDB !

Protoype - Tomcat

Protoype - Storm

Système de traitement des données en parallèle

Protoype – Schéma global

ConsumerCustomer

MongoDB database

CompagnyCustomers

RESTMicropayment

system

Identity and Oauth management system

Network Connexion system

API

STORM

VOD Key

FAICustomer

Agenda

1.Problèmes existants2.Protoype

3.BuildA.Topologie StormB.Architecture MongoDBC.Schema design D.Approche DevOps

Build - Topologie Storm

Customer files are pushed every night

Read file line by line

1

…DetectFile

SpoutProcessLine

Bolt

2

line

Build - Topologie Storm

Build - Topologie Storm

Emitting tuple for each set of functional

collections

ProcessLineBolt

4

OauthUpdaterBolt

IdentityUpdaterBoltTransform a line into a

document & check delta

3

Build - Topologie Storm

Build - Topologie Storm

Build - Topologie Storm

Gestion des acquittements et des erreurs

ack(Object msgId) failed(Object msgId)

Build - Topologie Storm

Rapidité de mise à l’échelle des traitements

batch

Build - Architecture MongoDB

Customer collections

Reference collections

Customer (Photo) Customer (Delta)

Delta computation Delta filtering

Reference update Customers collection update

Consultation Services

Build - Architecture MongoDB

Choix de dupliquer les données Une collection est modélisée pour l’écriture ou la lectureLe traitement d’alimentation est garant de la cohérencePossibilité de reprocessOutillage de l’audit de cohérence

Build - Architecture MongoDB

Les questions lors de l’estimation de la volumétrie 1.Quels sont les cas d’utilisation ? 2.Quels sont leurs volumes ?3.Quelle est la modélisation associée ?4.Quelle est la proportion du document mise à jour en cas d’update ?

5.Quelle proportion des données doit être accessible de façon concurrente ?

6.Quelle est la durée de vie des données ?

Build - Architecture MongoDB

20 collections750 Go de données utiles9 serveurs « Data » physiques3 shards, sharding par hash2 To de RAM3 serveurs « Config » virtuels3 serveurs virtuels pour le backup

Architecture MongoDB

Build - Schema design

Conception User- Name- Compagny- Billcycle- Payment

Mode

Acces Point- Name- Compagny- Billcycle- Payment

Mode

1

1..n

Conception

Build - Schema design

Developm

ent

Build - Schema design

Qualification

Build - Schema designD

evelopment

Build - Schema design

« Ca marche !»

Qualification

Conception

Build - Schema designSt

ress

Tes

t

Build - Schema design

ConceptionConception

Build - Schema design

ConceptionConception

Build - Schema design

Developm

ent

Build - Schema design

Developm

ent

Qualification

Conception

Stre

ss T

est

Build - Schema design and refactor

Parfait !

Developm

entConception

Stre

ss T

es

Build - DevOps

Build - DevOps

Coopération entre Dev et Ops

Build - DevOps

Formation internes par l’équipe de développementRédaction d’un manuel d’exploitation dédiéExécution conjointe DEV et PROD des tests de pré-productionEcriture précoce des tests de performance

6 mois plus tard

1 an plus tard

Agenda

1.Problèmes existants2.Protoype3.Build

4.Ce que nous avons appris

Ce que nous avons appris

Apache Tomcat Apache STORM

Plus de flexibilité et de scalabilité avec une solution

100% Open Source

Ce que nous avons appris

1.Choisir sa bataille2.« Use the right tool for the right job »

3.Tester, échouer, recommencer

4.L’adoption passe par la formation

Questions ?

@__pad__

Photo credits100 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, UKQuestion 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 McsweenyPunaise : 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

top related