93
MongoDB et Elasticsearch, meilleurs ennemis ?

MongoDB et Elasticsearch, meilleurs ennemis ?

Embed Size (px)

Citation preview

Page 1: MongoDB et Elasticsearch, meilleurs ennemis ?

MongoDB et Elasticsearch,

meilleurs ennemis ?

Page 2: MongoDB et Elasticsearch, meilleurs ennemis ?

<Nous />

Page 3: MongoDB et Elasticsearch, meilleurs ennemis ?

<Serli />

Page 4: MongoDB et Elasticsearch, meilleurs ennemis ?

Petit sondage ...

Page 5: MongoDB et Elasticsearch, meilleurs ennemis ?

MongoDB

Page 6: MongoDB et Elasticsearch, meilleurs ennemis ?

Elasticsearch

Page 7: MongoDB et Elasticsearch, meilleurs ennemis ?

Projets types Mongo et Elasticsearch

Page 8: MongoDB et Elasticsearch, meilleurs ennemis ?

Beaucoup de points communs

Page 9: MongoDB et Elasticsearch, meilleurs ennemis ?

Mongo ou Elasticsearch ?

Page 10: MongoDB et Elasticsearch, meilleurs ennemis ?

Comment choisir ?

Page 11: MongoDB et Elasticsearch, meilleurs ennemis ?

Popularité ?

Page 12: MongoDB et Elasticsearch, meilleurs ennemis ?

db-engines.com

Page 13: MongoDB et Elasticsearch, meilleurs ennemis ?

db-engines.com

Page 14: MongoDB et Elasticsearch, meilleurs ennemis ?

db-engines.com

Page 15: MongoDB et Elasticsearch, meilleurs ennemis ?

Pas très fiable ...

Page 16: MongoDB et Elasticsearch, meilleurs ennemis ?

Démarrage rapide

Page 17: MongoDB et Elasticsearch, meilleurs ennemis ?

Developer friendly

Page 18: MongoDB et Elasticsearch, meilleurs ennemis ?

Vers le Minimum Viable Product

Page 19: MongoDB et Elasticsearch, meilleurs ennemis ?

Installation d’un cluster Elasticsearch

2 minutes

cluster.name: my_cluster

$ ./elasticsearch$ ./elasticsearch

config/elasticsearch.yml

Page 20: MongoDB et Elasticsearch, meilleurs ennemis ?

Installation d’un replicaset Mongo

$ mongod --dbpath=~/mongo-data/0 --replSet rs0$ mongod --dbpath=~/mongo-data/1 --replSet rs0 --port 27018$ mongod --dbpath=~/mongo-data/2 --replSet rs0 --port 27019

rs.initiate()rs.add("<hostname>:27018")rs.add("<hostname>:27019")

mongo shell

2 minutes + 30 sec

Page 21: MongoDB et Elasticsearch, meilleurs ennemis ?

Démarrer un noeud Elasticsearch en Java

Settings settings = Settings. builder() .put("http.port", "9200") .put("network.host", "localhost") .put("path.home", "/tmp/es-unit-tests" ) .put("path.data", "/tmp/es-unit-tests-data" ) .build();

Node node = NodeBuilder. nodeBuilder() .local(true) .data(true) .clusterName( "elasticsearch-unit-tests" ) .settings(settings) .build();

node.start();

Page 22: MongoDB et Elasticsearch, meilleurs ennemis ?

Data INData OUT

Page 23: MongoDB et Elasticsearch, meilleurs ennemis ?

MongoDB

Page 24: MongoDB et Elasticsearch, meilleurs ennemis ?

MongoDB

Page 25: MongoDB et Elasticsearch, meilleurs ennemis ?

Index dans MongoDB

Page 26: MongoDB et Elasticsearch, meilleurs ennemis ?

Storage Engines (Mongo > 3.0)

Page 27: MongoDB et Elasticsearch, meilleurs ennemis ?

Ecriture dans Elasticsearch

Page 28: MongoDB et Elasticsearch, meilleurs ennemis ?

Near real-time ?

Page 29: MongoDB et Elasticsearch, meilleurs ennemis ?

Index Inversé

Terme Documents

brian #1

sens #2

vie #2 #1

Page 30: MongoDB et Elasticsearch, meilleurs ennemis ?

Mise à jour dans Elastic

Page 31: MongoDB et Elasticsearch, meilleurs ennemis ?

Relations

Page 32: MongoDB et Elasticsearch, meilleurs ennemis ?

Disclaimer

Page 33: MongoDB et Elasticsearch, meilleurs ennemis ?

Relations dans MongoDB

Page 34: MongoDB et Elasticsearch, meilleurs ennemis ?

Relations dans MongoDB

Page 35: MongoDB et Elasticsearch, meilleurs ennemis ?

Relations dans Elasticsearch

Page 36: MongoDB et Elasticsearch, meilleurs ennemis ?

Full Text Search

Page 37: MongoDB et Elasticsearch, meilleurs ennemis ?

Je veu fair du fotbal

Page 38: MongoDB et Elasticsearch, meilleurs ennemis ?

MongoDB Full Text Search

Page 39: MongoDB et Elasticsearch, meilleurs ennemis ?

Full Text Search

Page 40: MongoDB et Elasticsearch, meilleurs ennemis ?

Agrégations

Page 41: MongoDB et Elasticsearch, meilleurs ennemis ?

Les agrégations

Page 43: MongoDB et Elasticsearch, meilleurs ennemis ?

Les agrégations dans Elasticsearch

2015

1974jsonjson

jsonjson

jsonjson

2015

batte sabre

1974

gun sabre

2015

sabre145.3

1974

gun2.4

sabre0.34

batte245.3

Page 44: MongoDB et Elasticsearch, meilleurs ennemis ?

Stockage de fichiers

Page 45: MongoDB et Elasticsearch, meilleurs ennemis ?

GridFS

Page 46: MongoDB et Elasticsearch, meilleurs ennemis ?

Attachment Type

Page 47: MongoDB et Elasticsearch, meilleurs ennemis ?

GridFS / Attachment Type

Page 48: MongoDB et Elasticsearch, meilleurs ennemis ?

Pour stocker des fichiers...

Page 49: MongoDB et Elasticsearch, meilleurs ennemis ?

Modèle distribué

Page 50: MongoDB et Elasticsearch, meilleurs ennemis ?

Modèle distribué

Page 51: MongoDB et Elasticsearch, meilleurs ennemis ?

Modèle distribué

Page 52: MongoDB et Elasticsearch, meilleurs ennemis ?

Write Consistency

Page 53: MongoDB et Elasticsearch, meilleurs ennemis ?

Modèle distribué

Page 54: MongoDB et Elasticsearch, meilleurs ennemis ?

Sharding

Page 55: MongoDB et Elasticsearch, meilleurs ennemis ?

CAP

Page 56: MongoDB et Elasticsearch, meilleurs ennemis ?

Call me maybe : Kyle Kingsbury

https://aphyr.com/tags/jepsen

Page 57: MongoDB et Elasticsearch, meilleurs ennemis ?

Call me maybe - Elasticsearch

Page 58: MongoDB et Elasticsearch, meilleurs ennemis ?

Call me maybe - MongoDB

Page 59: MongoDB et Elasticsearch, meilleurs ennemis ?

Performances

Page 60: MongoDB et Elasticsearch, meilleurs ennemis ?

Benchmark

Page 61: MongoDB et Elasticsearch, meilleurs ennemis ?

Benchmark

Page 62: MongoDB et Elasticsearch, meilleurs ennemis ?

Benchmarks sucks !

Page 63: MongoDB et Elasticsearch, meilleurs ennemis ?

Production

Page 64: MongoDB et Elasticsearch, meilleurs ennemis ?

Allez, on passe en Prod !

Page 65: MongoDB et Elasticsearch, meilleurs ennemis ?

Systèmes vivants !

Page 66: MongoDB et Elasticsearch, meilleurs ennemis ?

Ecosystème

Page 67: MongoDB et Elasticsearch, meilleurs ennemis ?

Ecosystème MongoDB

Page 68: MongoDB et Elasticsearch, meilleurs ennemis ?

Ecosystème MongoDB

Page 69: MongoDB et Elasticsearch, meilleurs ennemis ?

Client Elastic

Page 70: MongoDB et Elasticsearch, meilleurs ennemis ?

Ecosystème Elastic

Page 71: MongoDB et Elasticsearch, meilleurs ennemis ?

Cloud

Page 72: MongoDB et Elasticsearch, meilleurs ennemis ?

Alors, Mongo ou Elasticsearch ?

Page 73: MongoDB et Elasticsearch, meilleurs ennemis ?

Alors ? MongoDB ou ElasticSearch ?

Page 74: MongoDB et Elasticsearch, meilleurs ennemis ?

Les deux ?

Page 75: MongoDB et Elasticsearch, meilleurs ennemis ?

Même paradigme

Page 76: MongoDB et Elasticsearch, meilleurs ennemis ?

Une solution

write read

Page 77: MongoDB et Elasticsearch, meilleurs ennemis ?

Mais ...

write read

?

Page 78: MongoDB et Elasticsearch, meilleurs ennemis ?

Teeing

write read

write

Page 79: MongoDB et Elasticsearch, meilleurs ennemis ?

Batch Maison

write read

Page 80: MongoDB et Elasticsearch, meilleurs ennemis ?

Message Queue

write read

read write

Write

Push

Page 81: MongoDB et Elasticsearch, meilleurs ennemis ?

Rôle de l’Indexer

Page 82: MongoDB et Elasticsearch, meilleurs ennemis ?

Dénormaliser

Page 83: MongoDB et Elasticsearch, meilleurs ennemis ?

Exemple (sans Parent Child)

Tweets

Users

Tweets

Page 84: MongoDB et Elasticsearch, meilleurs ennemis ?

Exemple update

Tweets

Users

Tweets

Page 85: MongoDB et Elasticsearch, meilleurs ennemis ?

Précalculer

Page 86: MongoDB et Elasticsearch, meilleurs ennemis ?

Exemple pré-calcul : nbTweets

Tweets

Users

Tweets

Page 87: MongoDB et Elasticsearch, meilleurs ennemis ?

Exemple pré-calcul

Tweets

Users

Tweets

Page 88: MongoDB et Elasticsearch, meilleurs ennemis ?

Pour conclure

Page 89: MongoDB et Elasticsearch, meilleurs ennemis ?

Conclusion

Page 90: MongoDB et Elasticsearch, meilleurs ennemis ?

Conclusion

Page 91: MongoDB et Elasticsearch, meilleurs ennemis ?

Storage Mashup ;-)

Page 92: MongoDB et Elasticsearch, meilleurs ennemis ?

Merci !

Page 93: MongoDB et Elasticsearch, meilleurs ennemis ?

Drink & Food Time