Download pptx - Nosql - jeudi d'ilex

Transcript
Page 1: Nosql - jeudi d'ilex

19/03/2015

Gestion des Identités& des Accès

NoSQL

Jeudi d’Ilex

Page 2: Nosql - jeudi d'ilex

Sommaire

Meibo

SQL vs NoSQLQu’est ce que le NoSQL ?Avantages / InconvénientsTypes des bases NoSQLActeurs du marchéRetour d’expérienceConclusion

Page 3: Nosql - jeudi d'ilex

3

SQL vs NoSQLLes bases de données SQL ?

• Elles dominent le marché depuis plus de 30 ans

Nécessite de nombreuses lectures / écritures en simultanées.

Les SGBDR proposent un système de gestion de transaction efficace permettant d'éviter le pire.

Les SGBDR ont imposé la mise en place d’un modèle de conception.

Langage de requêtage globalement commun à toute les bases de données (SQL).

Nombreux outils disponibles pour les développeurs et pour l’administration des bases.

De nombreuses connaissances et retour d’expérience sur les différentes bases.

SGBDR : Système de gestion de base de données relationnelle

Page 4: Nosql - jeudi d'ilex

4

SQL vs NoSQLLes limites des bases relationnelles ?

Scalabilité :• Le modèle de consistance des SGBDR

empêche l'utilisation de plusieurs machines pour répartir la charge (au moins en écriture)

L’interdépendance :• Un grand volume de données

rend très dépendante les données entre elles

• Conception de la base plus compliquée à mettre en place (il y a souvent besoin d’expert)

• Pour augmenter la performance d'accès à la base, pas d'autre moyen que d'acheter un plus gros serveur, puis un autre, puis un autre, …

Page 5: Nosql - jeudi d'ilex

5

Présentation NoSQLNoSQL ?

NoSQL s’éloigne du modèle de données relationnelles

pour généralement proposer un modèle par agrégat.

Terme apparu en 2009 avec plusieurs interprétations possibles :

• No SQL• Not Only SQL

Pas de définition formelle mais des caractéristiques communes partagées par les bases dites NoSQL :

• N'utilise pas de modèle relationnel et donc pas le langage SQL

• Pas d’interdépendance entre les données• Conçu pour être fortement scalable• Pas de notion de schéma il est donc possible de

stocker n'importe quelle donnée dans n'importe quelle « ligne »

Page 6: Nosql - jeudi d'ilex

6

Avantages inconvénientsAvantages / inconvénients du NoSQL

• Pas de schéma (les propriétés ne sont pas fixées à l’avance)

• Performance (en lecture et écriture)

• Scalabilité linéaire (pour augmenter la performance on ajoute un nœud, sharding)

• Sécurité (pas d’injection possible)

• Modélisation des données faites par les concepteurs d’applications

• Permet de stocker un très grand volume de données

Avantages

• Pas de jointure entre les données (s’il y a un besoin de jointure, c’est à l’applicatif de s’en charger)

• La plupart des bases NoSQL ne respecte pas les propriétés ACID (tous les clients ne voient pas la même vue lorsqu’il y a des mises-à-jour)

• Déplacement de la connaissance pour l’optimisation des bases (du DBA vers le développeur)

• Peux de Frameworks d’abstraction disponibles (Spring Data, Hibernate OGM …)

Inconvénients

Le NoSQL ne répond pas à tous les besoins en base de données

Page 7: Nosql - jeudi d'ilex

7

Types de bases NoSQLDifférents types de bases NoSQL :

Clés/valeurs :• Ce modèle peut être assimilé à une hashmap distribuée.• Opérations possibles PUT, GET et DELETE• Il n’est possible de requêter que sur les clés• À utiliser pour les données volatiles ou accédées très régulièrement

Graphe:• Ce modèle de représentation des données se base sur la

théorie des graphes• Il s’appuie sur la notion de nœuds, de relations et de

propriétés qui leur sont rattachées• Ce modèle facilite la représentation du monde réel, ce qui

le rend adapté au traitement des données des réseaux sociaux

• À utiliser pour les données qui sont fortement connectées

Page 8: Nosql - jeudi d'ilex

8

Types de bases NoSQLDifférents types de base NoSQL :

Colonne :• Ce modèle ressemble à première vue à une table

dans un SGBDR, sauf que le nombre de colonnes est dynamique

• Le nombre de colonnes peut varier d’un enregistrement à un autre ce qui évite de retrouver des colonnes ayant des valeurs NULL

• À utiliser quand les données ont une partie structurée et une partie non structurée

Document :• Ressemble au clé valeur sauf que la valeur est un

document Json• Il est possible de requêter à l’intérieur du document

Json• À utiliser quand les données ont une partie structurée

et une partie non structurée

Page 9: Nosql - jeudi d'ilex

9

Acteurs du marché

Page 10: Nosql - jeudi d'ilex

10

Retour d’expérience mongoDB

• Leader actuel du marché du NoSQL

• Base basée sur le modèle document

• OpenSource

• Prise en main facile

• Drivers officiels disponibles pour de nombreux langages

• Java, C, C++, C#, Node.js, Perl, PHP, Python, Motor, Ruby, Scala

• Outil d’administration (MMS) de mongoDB disponible directement en ligne

MongoDB

Page 11: Nosql - jeudi d'ilex

11

Retour d’expérience mongoDB Projet Canal+ - Mise en place d’un cache d’authentification• Sauvegarde des informations

utilisateurs et des droits d’abonnement à chaque authentification

• Infrastructure avec 1 base mongo maitre et 2 esclaves. Pas de sharding mis en place.

• Environ 8.5 millions de documents depuis mai 2014.

• La base représente environ 17Go de données et actuellement toutes les données tiennent en RAM

• Une recherche utilisateur met environ 5ms avec une base de cette taille

• Pourquoi avoir choisi mongoDB ?• Pour des besoins de performance

Page 12: Nosql - jeudi d'ilex

12

Retour d’expérience mongoDB Projet Canal+ - Gestion des profils utilisateurs• Stockage des informations de profils utilisateurs

des utilisateurs Canal+ pour l’ensemble des services du groupe (WEB, Mobile, TV …)

• Utilisation de la même infrastructure mongoDB que pour le cache d’authentification

• Utilisation de la notion du « schemaless ». Les données disponibles pour chaque profil n’est pas prédéfini à l’avance, chaque service peut ajouter de nouvelles données sans modification de l’application.

• Pourquoi avoir choisi mongoDB ?• Pour des besoins de performance• Pour pouvoir ajouter de nouvelles données sans

modification applicative

Page 13: Nosql - jeudi d'ilex

13

Retour d’expérience mongoDB Projet en cours – Affichage d’un captcha a l’authentification

• Le but est de bloquer la découverte de comptes (attaques de robots)

• Sauvegarde de chaque IP qui fait une tentative d’authentification

• La sauvegarde se fait dans mongoDB

• Nous positionnons une durée de vie des entrées dans mongoDB

• Une fois la durée dépassé mongoDB supprime automatiquement les entrées

• Pourquoi avoir choisi mongoDB ?• Pour des besoins de performance (requête sur la base à chaque

authentification)• Pour la gestion d’une durée de validité des documents

Page 14: Nosql - jeudi d'ilex

14

ConclusionConclusion

• Technologie à la mode

• NoSQL ne remplace pas le SQL

• NoSQL pour les besoins de performance et/ou d’évolutivité • Barrière d’entrée pour un nouveau développement assez peu élevée