MongoDB day Paris 2012

Preview:

DESCRIPTION

Présentation lors du MongoDB Day Paris 2012, par @mathiaskluba sur le déploiement et le monitoring de MongoDB

Citation preview

MongoDB en Prod: déploiement et monitoring

Juin 2012

MongoDB Day

Speakers: §  Mathias Kluba – Fastconnect

§  Twitter @mathiaskluba

§  Loic Dachary – eNovance

Intro: pourquoi Mongo?

2

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

Intro: pourquoi Mongo?

3

Avantage majeur de MongoDB: Scalabilité horizontale §  Sharding

§  distribuer la charge en lecture/écriture §  Replica Set

§  disponibilité / résilience §  distribuer la charge en lecture

Intro: pourquoi Mongo?

4

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?

Introduction

5

6

Déploiement

Déploiement

7

         Infrastructure  

         Middlewares  

         Applica3ons  

Mon

itorin

g  

Déploiement  

API  de  Provisioning  

Déploiement  

Meta  Déploiement  

Scalabilité  dynamique  /  récupéra4on  automa4que  

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)

Déploiement

8

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

Démos

9

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

Démos

10

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

+Windows+Azure

Démos

11

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

Démos

12

Démos

13

Démos

14

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

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

Démos

15

16

Monitoring

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

Monitoring

17

Monitoring

18

Monitoring

19

Monitoring

20

Plus?

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

Monitoring

21

Monitoring

22

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

Monitoring

23

Monitoring

24

Monitoring

25

Monitoring

26

Monitoring

27

Outils de Monitoring OpenSource existants: §  S’intègre à votre SI §  Monitore plus que MongoDB

(OS, Middlewares) §  Reste en interne §  Peut être complexe à installer/configurer

Monitoring

28

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.

Monitoring

29

Exemple de stats Cacti et Munin

Monitoring

30

Exemple de statut avec Nagios + Centreon

Monitoring

31

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

Monitoring

32

Outils de Monitoring Pro existants: SNMP?

Monitoring

33

Démo: Monitoring avec Cloudify

Démos

34

35

Questions ?

Recommended