morning with mongodb paris 2012 - mongodb cas d'utilisation au figaro

16
MongoDB Cas d'utilisation au Figaro Ramon Maceiras Sandrine Crozat ramon@pimentech. net [email protected]

Upload: mongodb

Post on 17-Jul-2015

1.230 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Ecosystème du Figaro

Un CMS BIMEDIAUn CMS WEB par site éditorial

Le Figaro.fr, vaisseau amiral et portail éditorial et communautaire de tous les sites web

CMS BIMEDIA

LE FIGARO.FR

PORTAIL

CMS WEBCMS

WEBCMS WEBCMS

WEBCMS WEBCMS

WEBCMS WEB

Le Figaro.fr - Sport24 - Le Figaro Madame - Le Figaro Bourse - Le Figaro Santé - L'avis du Vin - Le Figaroscope - Le Figaro Golf - TVMAG - Carnet des Décideurs - Carnet du Jour - L'étudiant

Page 3: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas1 - Mongodb_watchdog

Page 4: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas1 . Mongodb_watchdogContexte

Pour quoi ?Mon Figaro, portail Communautaire exposant des APIs et Webservices aux différents sites du groupe

Et donc ?Nécessité de monitoring et de journalisation d'événements

+ 100000 écritures / jour Peu de lectureDonnées peu sensibles

Page 5: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas1 . Mongodb_watchdogMigration vers MongoDB

Drupal Core : Stockage dans MySql donc charge sur BDD Nécessité de purge régulière

mongodb_watchdogStockage dans MongoDB1 collection cappée par type de message

Le + : Réflexe de monitorer même des événements de type information.

Page 6: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas2 Mon Figaro ActivityFlux d'activités communautaire au sein du réseau social du Figaro

Page 7: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas2. Mon Figaro ActivityContexte

Flux d'activité diffusant toutes les actions communautaires et de publication des membres du réseau Figaro et des journalistes.

● Nombreuses lectures

● Requêtes complexes

● Objets riches● Données assez

sensibles

Page 8: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 2. Mon Figaro ActivityMigration vers MongoDB

2010 : 1ere version 100% MySQL.

Problèmatique de performance => Cache des pages de 2 mns.

En 2011, refonte du système sous MongoDB

Gain de performance => suppression du cache, les activités sont servies instantanément.

Page 9: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3 - FidJiBase centrale de contenus

Page 10: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3 . FidJi Context

Echanges de contenus désorganisés, non conformés et redondants entre les CMS du groupe ainsi que vers l'extérieur.

Faible réactivité sur les flux à générerAucune convergence technique

Page 11: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3 . FidJiModèle

Articles

Article1Article2Article3

Flux

Source1 - Dest1Source2 - Dest2Source2 - Dest1

Litste_Dest1

Article1_id - StatutArticle2_id - StatutArticle2_id - Statut

Litste_Dest1

Article1_id - StatutArticle2_id - StatutArticle2_id - Statut

Litste_Dest1

Article1_id - StatutArticle2_id - StatutArticle2_id - Statut

Litste_Dest1

Article1_id - StatutArticle2_id - StatutArticle2_id - Statut

Liste_Dest1

Article1_id - StatutArticle2_id - StatutArticle2_id - Statut

Mots-clés

Mot-clé1Mot-clé2Mot-clé3

Page 12: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3. FidJiMécanique d'import - XML2MONGO

conf = {

'dbname': globals.MONGONAME,

'dbhost': globals.MONGOHOST,

'dbuser': globals.MONGOUSER,

'dbpwd': globals.MONGOPWD,

'collection': 'article',

'schema': {

'euid': {

'findtext': '/GESTION/IDWEB',

'notnull': 'true',

},

'verticale': {

'value': 'common',

},

( ('euid', pymongo.ASCENDING), ('verticale', pymongo.ASCENDING) ): {

'key': 'true',

},

'srcuid': {

'findtext': '/GESTION/ID',

},

'revision': {

'findtext': '/GESTION/version',

},

'datemodif': {

'findtext': '/GESTION/updated-at',

'index': 'true',

'cast': lambda(s): parser.parse(s),

},

Page 13: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3 . FidJiConfiguration des exports

Page 14: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3 . FidJiAPI Http

Consommation à la demande

Json et JsonPAtom

Simple requête dans MongoDb

Résultat mise en cache sur Varnish

Page 15: Morning with MongoDB Paris 2012 - MongoDB Cas d'utilisation au Figaro

Cas 3 . FidJiInterface de recherche