Slide 1

Slide 1 text

Toutes les raisons (et +) d’adopter MongoDB Adrien Mogenet 14 juin 2012

Slide 2

Slide 2 text

À propos • Est une première (!) • Pour convaincre sa hiérarchie • Pour convaincre ses équipes Cette présentation :

Slide 3

Slide 3 text

/usr/bin/whoami • Un adepte de MongoDB, depuis + de 2 ans • Dans un cadre professionnel, mais pas seulement • Pas un anti-MySQL

Slide 4

Slide 4 text

#0 • Les vraies fausses raisons : • C’est écrit en C++ • C’est libre • Les gens qui contribuent sont sympathiques

Slide 5

Slide 5 text

#1 • Facilité extrême : • Déploiement en 2 minutes • API simples et intuitives • ... mais possibilité d’écrire des requêtes complexes.

Slide 6

Slide 6 text

#1 Demo

Slide 7

Slide 7 text

Situations • Je suis un [DBA | Développeur | Patron], je veux me rendre compte rapidement des possibilités offertes, sans perdre une semaine de déploiement et configuration. • Je ne veux pas fondamentalement modifier mes méthodes d’interrogation des données.

Slide 8

Slide 8 text

#2 • Souple : • Modèle de données simple « Ça, c’était avant. »

Slide 9

Slide 9 text

Situations • Mon modèle relationnel s’est complexifié avec le temps, je vois une occasion de le simplifier. • Évolutions simplifiées • Rationaliser les motifs d’accès { _id: 1234, name: ‘Mogenet’, likes: [‘scala’, ‘haskell’] } { _id: 1234, name: ‘Mogenet’, likes: [‘scala’, ‘haskell’], sex: H }

Slide 10

Slide 10 text

#3 • Produit performant : • Écrit en C++ (Pas de pauses « Stop The World » à cause du GC Java) • Indexes • Gestion de la mémoire efficace (Memory mapped files, LRU de l’OS)

Slide 11

Slide 11 text

Situations • Je veux écrire massivement des données, et satisfaire 10.000 connexions concurrentes avec accès aléatoires. • Je veux fournir des accès en temps réels à ces nouvelles données (monitoring, messagerie instantanée...)

Slide 12

Slide 12 text

http://demo.hummingbirdstats.com/

Slide 13

Slide 13 text

• Extensible, tolérant aux pannes • Pas de SPOF • Ajout de shards à la volée • = Extensibilité R/W #4

Slide 14

Slide 14 text

Situations • Je suis dépassé par le succès, scaler MySQL me revient cher. • Je ne veux pas intervenir la nuit pour un problème de BDD.

Slide 15

Slide 15 text

#5 • Intégration avec les nouvelles technologies • Node.JS • Hadoop • Azure • Scala • Talend (github.com/adrien-mogenet) • Mais aussi aux classiques (PHP, Java...)

Slide 16

Slide 16 text

Situations • Typiquement, je suis une start-up jeune et innovante. • Je modernise mon infrastructure • Je veux une solution intégrable dans un S.I. aux technologies variées.

Slide 17

Slide 17 text

#6 • Polyvalent : • Indexes géographiques • Système de fichiers distribué (GridFS)

Slide 18

Slide 18 text

Situations • Éviter la multiplication d’outils « proches » • MongoDB « incite » les équipes à imaginer de nouveaux usages : • Utilisations d’informations géographiques • Stockage extensible

Slide 19

Slide 19 text

#7 • Rentabiliser des données vaporeuses : • Agrégation de logs • Tracking Utilisation de Map/Reduce a posteriori

Slide 20

Slide 20 text

Situations • Je veux prendre un avantage concurrentiel. Je veux mieux connaître mes clients, et mes futurs clients. • Je m’autorise à stocker un maximum de données inutiles à un instant T. Le cadre concurrentiel/législatif/autre change. Je rentabilise mes données.

Slide 21

Slide 21 text

#8 • Communauté active : • Correction de bugs • Ajout de fonctionnalités pertinentes • Éco-système riche (IHM d’administration...)

Slide 22

Slide 22 text

#8

Slide 23

Slide 23 text

#8

Slide 24

Slide 24 text

Situations • Besoin de garantie sur la longévité du projet. • S’approprier rapidement la solution via les documentations et les mailing-lists. • Assister à MongoDB Paris

Slide 25

Slide 25 text

Conclusion • Simple • Performant • Fiable • Extensible • Communauté active

Slide 26

Slide 26 text

{ end: ‘Questions ?’ }