MongoDB en Prod:
déploiement et monitoring
MongoDB Day




                            Juin 2012
Intro: pourquoi Mongo?



Speakers:
§  Mathias Kluba – Fastconnect
  §  Twitter @mathiaskluba




§  Loic Dachary – eNovance




                                                       2
Intro: pourquoi Mongo?




Pourquoi avoir choisie MongoDB ?
§  BigData
    §  Linéarité des coups de stockage
    §  Requêtes riches
§  Agilité
    §  Time to market: passer rapidement de DEV à PRD
§  Cloud
    §  La Scalabilité horizontale n’est pas une option,
        c’est une obligation




                                                                      3
Intro: pourquoi Mongo?




Avantage majeur de MongoDB:
Scalabilité horizontale
§  Sharding
   §  distribuer la charge en lecture/écriture
§  Replica Set
   §  disponibilité / résilience
   §  distribuer la charge en lecture




                                                                  4
Introduction




Mais en pratique, quand on a 15 nœuds…
§  Comment déployer le cluster?
§  Comment monitorer? Agréger les logs?
§  Comment effectuer des opérations de
    maintenances sur tous les nœuds?




                                                   5
Déploiement




              6
Déploiement


                  Scalabilité	
  dynamique	
  /	
  récupéra4on	
  automa4que	
  




                   Déploiement	
                	
  	
  	
  	
  	
  Applica3ons	
  




                                                                                                 Monitoring	
  
   Meta	
  
                   Déploiement	
                	
  	
  	
  	
  	
  Middlewares	
  
Déploiement	
  
                      API	
  de	
  
                                                	
  	
  	
  	
  	
  Infrastructure	
  
                   Provisioning	
  




                                                                                                                  7
Déploiement


Plusieurs solutions de déploiement:
§  Do it yourself!
     §  Scripts shell?
     §  Template de VM?
§  Chef
§  Puppet
§  Cloudify
§  VMWare App Director
§  Windows Azure
§  Amazon CloudFormation
§  MongoHQ (Mongo As A Service)


                                                    8
Démos




  Chef sur Amazon EC2
  §  http://community.opscode.com/cookbooks/mongodb



knife ec2 server create "role[mongod]" -I ami-a29943cb -u
ubuntu -i key.pem -N ubuntu-ec2 -f t1.micro -S key --region
us-east-1 -Z us-east-1d -G default -d ubuntu12.04-gems

knife bootstrap ec2-12-34-56-0.compute-1.amazonaws.com -x
ubuntu -i key.pem --sudo

mongo ec2-12-34-56-0.compute-1.amazonaws.com:27017
initReplicatSet.js


                                                               9
Démos




        10
Démos


Windows Azure
§  http://www.mongodb.org/display/DOCS/MongoDB+on
    +Windows+Azure




                                                             11
Démos




Puppet et MongoDB
§  https://github.com/puppetlabs/puppetlabs-mongodb




                                                               12
Démos




        13
Démos




Démo: Puppet sur OpenStack
Centraliser la configuration puppet
§  serveur puppetmaster
§  chaque machine un client puppet
§  le rôle de la machine dépend d'un fact



                                                     14
Démos


Démo: Cloudify sur Amazon EC2
§  3 Replicat Set




                                        15
Monitoring




             16
Monitoring




Outils de base:
§  http console
§  db.server.status()
§  db.stats()
§  mongostat




                                      17
Monitoring




             18
Monitoring




             19
Monitoring




Plus?




                     20
Monitoring


Monitoring « As a Service »: MMS
§  Installation facile
§  Outil officiel de 10Gen
§  Le support 10Gen peut diagnostiquer
    vos logs
§  Ne monitore que MongoDB
§  Externe à votre infrastructure




                                                   21
Monitoring




             22
Monitoring


Monitoring « As a Service »: Server Density
§    Monitore le système (Windows/Linux/etc.)
§    Monitore Mongo de base
§    Monitore de nombreuses choses via plugins
§    Application iPhone/Android :)
§    Externe à votre infrastructure




                                                           23
Monitoring




             24
Monitoring




             25
Monitoring




             26
Monitoring




             27
Monitoring




Outils de Monitoring OpenSource existants:
§  S’intègre à votre SI
§  Monitore plus que MongoDB
    (OS, Middlewares)
§  Reste en interne
§  Peut être complexe à installer/configurer




                                                             28
Monitoring




Outils de Monitoring OpenSource existants:
§  Nagios
   §  h<ps://github.com/mzupan/nagios-­‐plugin-­‐mongodb	
  
§  Hyperic
   §  h<p://support.hyperic.com/display/hyperforge/
       MongoDB	
  
§  Munin
   §  h<ps://github.com/erh/mongo-­‐munin	
  
   §  h<ps://github.com/pcdummy/mongomon	
  
§  Etc.


                                                                       29
Monitoring



Exemple de stats Cacti et Munin




                                               30
Monitoring



Exemple de statut avec Nagios + Centreon




                                                        31
Monitoring




Outils de Monitoring Pro existants:
§  CA Unicenter
§  IBM Tivoli / Patrol
§  HP OpenView
§  ?




                                                   32
Monitoring




Outils de Monitoring Pro existants: SNMP?




                                                         33
Démos




Démo: Monitoring avec Cloudify




                                         34
Questions ?




              35
MongoDB day Paris 2012

MongoDB day Paris 2012

  • 1.
    MongoDB en Prod: déploiementet monitoring MongoDB Day Juin 2012
  • 2.
    Intro: pourquoi Mongo? Speakers: § Mathias Kluba – Fastconnect §  Twitter @mathiaskluba §  Loic Dachary – eNovance 2
  • 3.
    Intro: pourquoi Mongo? Pourquoiavoir choisie MongoDB ? §  BigData §  Linéarité des coups de stockage §  Requêtes riches §  Agilité §  Time to market: passer rapidement de DEV à PRD §  Cloud §  La Scalabilité horizontale n’est pas une option, c’est une obligation 3
  • 4.
    Intro: pourquoi Mongo? Avantagemajeur de MongoDB: Scalabilité horizontale §  Sharding §  distribuer la charge en lecture/écriture §  Replica Set §  disponibilité / résilience §  distribuer la charge en lecture 4
  • 5.
    Introduction Mais en pratique,quand on a 15 nœuds… §  Comment déployer le cluster? §  Comment monitorer? Agréger les logs? §  Comment effectuer des opérations de maintenances sur tous les nœuds? 5
  • 6.
  • 7.
    Déploiement Scalabilité  dynamique  /  récupéra4on  automa4que   Déploiement            Applica3ons   Monitoring   Meta   Déploiement            Middlewares   Déploiement   API  de            Infrastructure   Provisioning   7
  • 8.
    Déploiement Plusieurs solutions dedéploiement: §  Do it yourself! §  Scripts shell? §  Template de VM? §  Chef §  Puppet §  Cloudify §  VMWare App Director §  Windows Azure §  Amazon CloudFormation §  MongoHQ (Mongo As A Service) 8
  • 9.
    Démos Chefsur Amazon EC2 §  http://community.opscode.com/cookbooks/mongodb knife ec2 server create "role[mongod]" -I ami-a29943cb -u ubuntu -i key.pem -N ubuntu-ec2 -f t1.micro -S key --region us-east-1 -Z us-east-1d -G default -d ubuntu12.04-gems knife bootstrap ec2-12-34-56-0.compute-1.amazonaws.com -x ubuntu -i key.pem --sudo mongo ec2-12-34-56-0.compute-1.amazonaws.com:27017 initReplicatSet.js 9
  • 10.
  • 11.
  • 12.
    Démos Puppet et MongoDB § https://github.com/puppetlabs/puppetlabs-mongodb 12
  • 13.
  • 14.
    Démos Démo: Puppet surOpenStack Centraliser la configuration puppet §  serveur puppetmaster §  chaque machine un client puppet §  le rôle de la machine dépend d'un fact 14
  • 15.
    Démos Démo: Cloudify surAmazon EC2 §  3 Replicat Set 15
  • 16.
  • 17.
    Monitoring Outils de base: § http console §  db.server.status() §  db.stats() §  mongostat 17
  • 18.
  • 19.
  • 20.
  • 21.
    Monitoring Monitoring « Asa Service »: MMS §  Installation facile §  Outil officiel de 10Gen §  Le support 10Gen peut diagnostiquer vos logs §  Ne monitore que MongoDB §  Externe à votre infrastructure 21
  • 22.
  • 23.
    Monitoring Monitoring « Asa Service »: Server Density §  Monitore le système (Windows/Linux/etc.) §  Monitore Mongo de base §  Monitore de nombreuses choses via plugins §  Application iPhone/Android :) §  Externe à votre infrastructure 23
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
    Monitoring Outils de MonitoringOpenSource existants: §  S’intègre à votre SI §  Monitore plus que MongoDB (OS, Middlewares) §  Reste en interne §  Peut être complexe à installer/configurer 28
  • 29.
    Monitoring Outils de MonitoringOpenSource existants: §  Nagios §  h<ps://github.com/mzupan/nagios-­‐plugin-­‐mongodb   §  Hyperic §  h<p://support.hyperic.com/display/hyperforge/ MongoDB   §  Munin §  h<ps://github.com/erh/mongo-­‐munin   §  h<ps://github.com/pcdummy/mongomon   §  Etc. 29
  • 30.
    Monitoring Exemple de statsCacti et Munin 30
  • 31.
    Monitoring Exemple de statutavec Nagios + Centreon 31
  • 32.
    Monitoring Outils de MonitoringPro existants: §  CA Unicenter §  IBM Tivoli / Patrol §  HP OpenView §  ? 32
  • 33.
    Monitoring Outils de MonitoringPro existants: SNMP? 33
  • 34.
  • 35.