2. Sommaire
• MongoDB 3.6 : réponse à l'évolution du marché
et des technologies
• Principales fonctionnalités et améliorations
• Développeurs
• Equipes Ops
• Data analysts et data scientists
• Prise en main
3. Le digital poursuit son ascension...
4 000+ Mds $ de
ventes e-commerce
by 2020
75 Mds d'appareils
connectés
by 2025
61 % jugent "urgent"
d'implémenter une
stratégie IA
in 2017
108 Mds $ : taille du
marché de la réalité
virtuelle/augmentée
d'ici 2021
59 % : taux de
pénétration des
smartphones
d'ici 2020
6 000+ Mds $ : pertes
imputables au
cybercrime
d'ici 2021
5. La vitesse compte... Mais la voie du digital
est complexe
Forrester Digital Transformation Infographic: https://go.forrester.com/blogs/16-05-09-digital_transformation_2016_infographic/
7. Développement accéléré
• Change Streams
• Retryable writes (Écritures réessayables)
• Tunable Consistency (cohérence ajustable)
• MongoDB Compass
• Expressivité des requêtes
• Fonctionnalités complètes de mise à jour des
tableaux
9. MongoDB Change Streams
Aide les développeurs à créer des services hyper-
réactifs en temps réel
ChangeStreamsAPI
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Notifications
d'événements en
temps réel
File de messages
10. Implémenter Change Streams
Les applications reçoivent des notifications via l'API Change
Streams, elle-même basée sur l'oplog de MongoDB
• Les avantages de Change Streams :
• Flexibilité - Envoi des modifications ou du document complet, avec
possibilité de filtrage par type spécifique d'événement
• Cohérence - Tri et traitement complets des données à travers les
différents shards
• Sécurité - Contrôle des privilèges utilisateurs pour l'accès à la collection
• Fiabilité - Envoi de notifications seulement après la réplication d'une
écriture sur la majorité des réplicas
• Reprise - Après la défaillance d'un nœud
• Simultanéité - Jusqu'à 1 000 flux de changements par instance
MongoDB
• Familiarité - Exploitation du langage de requêtes et des moteurs
standards MongoDB
11. Change Streams : champs d'application
• Actualisation des applications de trading selon
l'évolution des cours de bourse
• Synchronisation des changements à travers
tous les microservices
• Mise à jour des tableaux de bord et
systèmes d'analyse
• Pipelines de données IoT (p. ex. envoi d'alertes en
cas de dysfonctionnement d'un appareil connecté)
• Utilisation de transactions de cartes bancaires
pour alimenter des modèles de machine learning
et recalculer les risques
• Gestion et actualisation des tableaux de scores
dans les jeux multijoueurs
ChangeStreamsAPI
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Notifications
d'événements en
temps réel
File de messages
12. Change Streams : dans la pratique
// Sélection de la collection à interroger.
MongoCollection<Document> collection =
database.getCollection("orders");
// Création d'un curseur pour le flux de changement.
MongoCursor<Document> cursor =
collection.watch().iterator();
14. Dans la pratique...
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Écriture
ACK
...des pannes surviennent,
et l'application n'a aucun
moyen de savoir si l'écriture a
été appliquée ou non*
• Une panne réseau entrave l'opération
d'écriture dans MongoDB
• Le choix du nœud primaire MongoDB n'est
pas encore déterminé
• L'opération d'écriture réussit, mais une panne
réseau empêche l’acquittement
* Pour les opérations idempotentes, le problème ne se pose pas
15. Gestion des défaillances d'écriture
Applications
d'entreprise
Données
utilisateurs
Capteurs
Clickstream
Write
ACK
... des pannes surviennent, et
l'application n'a aucun moyen de
savoir si l'écriture a été appliquée
ou non*
• Une panne réseau entrave l'opération d'écriture
dans MongoDB
• Le choix du nœud primaire MongoDB n'est pas
encore déterminé
• L'opération d'écriture réussit, mais une panne
réseau empêche l’acquittement
Les développeurs écrivent
du code complexe pour la
gestion des exceptions
16. Écritures réessayables MongoDB
• Gestion des écritures défaillantes (liées à une
panne réseau ou au choix d'un nœud primaire)
• Le moteur relance automatiquement les opérations d'écriture non
abouties
• Avec un identifiant de transaction unique, le serveur n'applique
qu'une seule fois la sémantique de traitement
• Propriétés
• Prise en charge des opérations idempotentes et non
idempotentes, mais aussi les erreurs dues aux expirations de délai
• Disponibilité continue des opérations d'écriture, à
l'échelle mondiale
• Traitement fiable au sein d'environnements complexes (systèmes
multi-maîtres, "eventually consistent")
18. Forte cohérence
Toutes les
lectures et
écritures
MongoDB Primary
MongoDB Secondary
MongoDB Secondary
Applications
d'entreprise
Données
utilisateurs
Capteurs
Click
stream
19. Tunable consistency : dimensionnement des lectures
MongoDB Primary
MongoDB Secondary
MongoDB Secondary
Toutes les
écritures et
certaines
lectures
Lectures
Lectures
Applications
d'entreprise
Données
utilisateurs
Capteurs
Click
stream
20. Cohérence ajustable (Tunable Consistency)
Ajustez la cohérence des données selon vos SLA de performance
Les développeurs contrôlent précisément le routage des requêtes à travers le
cluster de base de données.
Cohérence causale : garantit des lectures monotones et
logiquement cohérentes sur chaque nœud de replica au sein
d'une même session utilisateur
Lecture des nœuds secondaires dans des clusters shardés :
les réplicas secondaires reconnaissent désormais les blocs
(chunks), ce qui garantit des lectures cohérentes, même en cas
de redistribution des données sur un cluster shardé
21. Cohérence causale : exemples
// début de la session client (cohérence causale définie par défaut)
try (ClientSession session =
client.startSession(ClientSessionOptions.builder().build())) {
// Exécution des opérations qui entretiennent une relation causale dans la session
collection.insertOne(session, ... );
collection.updateOne(session, ...);
try (MongoCursor<Document> cursor =
collection.find(session).filter(...).iterator()) {
while (cursor.hasNext()) {
Document cur = cursor.next();
}
}
22. Compass : la GUI de MongoDB
Nouvelles fonctionnalités
• Exécution automatique des
requêtes
• Historique des requêtes
• Vue en tableau
• Framework pour Compass (plug-in)
Compass Community
• Édition gratuite
• GUI et shell utilisables en simultané
Téléchargez Compass Community
23. Expressivité des requêtes et fonctionnalités
complètes de mise à jour pour les tableaux
• Utilisation d'expressions du pipeline d'agrégation dans le langage de
requête MongoDB à l'aide du nouvel opérateur $expr
• équivalent SQL de SELECT * FROM T1 a> b
• Exemple : trouver tous les comptes clients dont les dépenses ont
augmenté de 200$ mois après mois
• Requêtes plus expressives avec moins de code côté client
• Mise à jour atomique de plusieurs éléments correspondants d'un
tableau avec une seule commande de mise à jour
• Exemple : Augmenter de 20 % tous les prix d'un tableau
• Modélisation plus souple des données
• Évite les réécritures de documents imposées par d'autres systèmes
de bases de données
[ ]
24. Mise à jour de tableaux : tous les éléments
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 },
{ id: 512,
title : "Hip T-shirt",
price : 45.0 }
],
...
}
db.orders.update(
{ _id: 5 },
{ $mul: {
"line_items.$[].price":
0.8
}
}
)
25. Mise à jour de tableaux : certains éléments
orders:
{
_id: 5,
line_items : [
{ id: 123,
title : "USB Battery",
price: 15.0 ,
shipped: true},
{ id: 512,
title : "Hip T-shirt",
price : 45.0,
shipped: false }
]
}
db.orders.update(
{ _id: 5 },
{ $mul: {
"line_items.$[li].price":
.8}},
{arrayFilters:[
{"li.shipped":{$ne:true}}
]}
)
27. Explorateur de
données
Inspection de l'utilisation
des schémas et des index
Vue des performances
en temps réel
Télémétrie en temps réel : opérations
en cours et consommation des
ressources
Vue des performances en
temps réel
Scoring des requêtes et
recommandations
d'indexes
28. Ops Manager : sauvegardes et restaurations
Sauvegardes continues et cohérentes avec restauration
PITR des données:
Sauvegardes interrogeables : inspection des sauvegardes sans
restauration préalable
• Sauvegardes plus rapides : agent redéveloppé et
synchronisation initiale améliorée
• Restauration accélérée : création des instantanés point-in-time
sur le nœud de destination, avec à la clé un saut (hop) en moins
• Sauvegardes vers des object stores : sur site et dans S3
• Restauration inter-projet : restauration dans un projet différent de
la source de l'instantané (snapshot)
29. Conformité du modèle de données
flexible avec la gouvernance
{
product_name: ‘Acme Paint’,
color: [‘Red’, ‘Green’],
size_oz: [8, 32],
finish: [‘satin’, ‘eggshell’]
}
{
product_name: ‘T-shirt’,
size: [‘S’, ‘M’, ‘L’, ‘XL’],
color: [‘Heather Gray’ … ],
material: ‘100% cotton’,
wash: ‘cold’,
dry: ‘tumble dry low’
}
{
product_name: ‘Mountain Bike’,
brake_style: ‘mechanical disc’,
color: ‘grey’,
frame_material: ‘aluminum’,
no_speeds: 21,
package_height: ‘7.5x32.9x55’,
weight_lbs: 44.05,
suspension_type: ‘dual’,
wheel_size_in: 26
}
Documents de la même collection de catalogues produits dans MongoDB
30. Validation de schéma
Applique une structure de schéma stricte sur une collection
complète pour garantir la qualité et la bonne gouvernance
des données.
Complète la validation de document par la restriction du nouveau contenu
qu'il est possible d'ajouter à un document
• Contrôle la présence, le type et les valeurs du contenu des documents,
y compris pour les tableaux imbriqués
• Simplifie la logique d'application
• Ajustable : imposez une structure de document, configurez des
avertissements, ou autorisez une flexibilité complète
• Interrogeable : identifiez tous les documents existants présentant des
défauts de conformité
32. Sécurité des données de bout en bout
• Authentification : LDAP, Kerberos, x509,
challenge-réponse
• Autorisation : RBAC, rôles définis par
l'utilisateur, sécurité au niveau du champ
• Chiffrement : données en mouvement, au
repos, sauvegardes
• Audit : DML et DDL complet
33. Contrôles de sécurité renforcés
Les nouveautés de MongoDB 3.6
• Connexion à Localhost : RPM et DEB par défaut étendus à tous
les packages et plateformes. Refuse toutes les connexions externes
à la base de données jusqu'à l'autorisation de l'administrateur
• Whitelisting des adresses IP : acceptation des connexions
externes uniquement à partir d'adresses IP ou de blocs CIDR
prédéfinis
34. Compression de bout en bout
MongoDB 3.6 permet de compresser
le trafic du protocole de transmission
entre le client et la base de données
Jusqu'à 80 % de gain de bande passante
Compression de bout en bout
Compression de bout en bout
• Protocole de transmission
• Intra-cluster
• Index en mémoire
• Stockage
Application
MongoDB Primary
Replica
Compression du
protocole de
transmission
MongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Single ViewMongoDB Secondary Replica
Réplica secondaire MongoDB
Compression
intra-cluster
Compression des
données sur disque
Compression des index en
mémoire
35. Gestion multi-tenant
• Gestion opérationnelle des sessions
• Les administrateurs peuvent visualiser, grouper et rechercher toutes
les sessions utilisateurs, à travers tous les nœuds
• Une seule commande pour annuler les opérations en cours
d'exécution sur plusieurs nœuds
• Plus d'un million de collections WiredTiger
• Refactorisation des éléments internes WiredTiger pour
supporter les applications produisant
• Applications SaaS : collection par utilisateur
• Services IoT : collection par ressource par heure
36. • Connector for BI
• Pipeline d'agrégation
• Pilote R
Analyses accélérées
38. • Plus rapide
• S'appuie sur la recherche expressive de MongoDB 3.6 pour
basculer plus d'opérations de calcul vers la base de données
• Supporte l'affichage du statut pour une optimisation plus
poussée des performances
• Plus simple
• Gestion du cycle de vie avec Ops Manager
• Échantillonnage et mappage des schémas désormais gérés
par le processus mongosqld, et non par un utilitaire distinct
• Authentification via des plug-ins côté client, ce qui évite la
gestion des certificats TLS. Nouvelle prise en charge de
Kerberos
BI Connector : les nouveautés
39. Pipeline d'agrégation enrichi
• Recherche expressive ($lookup)
• Prise en charge de nouvelles jointures, au-delà des équi jointures
à gauche, notamment les jointures non-équi et les
• Exécution native dans la base de données. Permet d'adresser
des requêtes d'analyse plus complexes avec moins de code
• Agrégations sensibles aux fuseaux horaires
• Analyse multi-région : permet de regrouper les données en
tenant compte des fuseaux horaires
• Nouvelles expressions pour des transformations plus
complexes
• Conversion d'objets en tableaux de paires clé-valeur, et inversement
• Fusion de plusieurs objets en un seul
• Élimination des champs d'un objet selon des critères d'évaluation
41. Pilote R MongoDB
Pilote R MongoDB : recommandé pour les développeurs,
statisticiens et data scientists
• Accès idiomatique à la base de données en
langage natif
• Gestion de la cohérence et de la durabilité des
données
• Protection des données avec des mécanismes
d'authentification d'entreprise
• Support de nouveaux types de données BSON, p.
ex. "decimal128", pour des analyses scientifiques et
financières de haute précision
42. Cloud ManagerOps Manager MongoDB Atlas
DBaaS privé : sur
site
Compatibilité multi-environnement
Tirez un trait sur l'enfermement propriétaire
DBaaS hybride
DBaaS public :
entièrement géré
Même codebase, même API, même IU de gestion
43. MongoDB Atlas : le DBaaS selon MongoDB
En self-service,
élastique et
automatisé
Sécurisé par défaut
Haute disponibilité
à l'échelle mondiale
Sauvegardes
continues
Monitoring et optimisation
en temps réel
Ouverte à toutes les
configurations cloud
44. Les nouveautés d'Atlas
● MongoDB 3.6 disponible dans
MongoDB Atlas (version GA)
● Réplication inter-régions
● Dimensionnement automatique
du stockage
● Arrêt provisoire d'un cluster
● Assistant de performance
disponible en continu
● Restaurations inter-projets
Auto-storage
scaling
46. MongoDB 3.6
Évoluez à la vitesse de vos données
Développement
accéléré
● Change Streams
● Écritures réessayables
● Cohérence ajustable
(Tunable Consistency)
● Compass
● Expressivité des requêtes
et mises à jour granulaires
des tableaux
Scalabilité accélérée
● Ops Manager
● Validation de schéma
● Contrôles de sécurité
● Compression E2E
● Gestion multi-tenant
Analyses accélérées
● BI Connector
● Pipeline d'agrégation
enrichi
● Pilote R
48. Prise en main de MongoDB 3.6
• Téléchargez la version RC et lisez les notes de version
• Lisez notre livre blanc consacré aux nouveautés de MongoDB 3.6
• Profitez d'une formation gratuite avec la MongoDB University
• Nous pouvons vous aider : Service de montée de version