Drupal et le NoSQL. Frédéric G. MARAND http://drupal.org/user/27985. OSInet http://drupal.org/node/1121720



Documents pareils
AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Drupal : Optimisation des performances

Groupe de Discussion Big Data Aperçu des technologies et applications. Stéphane MOUTON

NoSQL : hype ou innovation? Grégory Ogonowski / Recherches Octobre 2011

NoSQL. Introduction 1/30. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

Cartographie des solutions BigData

Hibernate vs. le Cloud Computing

Les bases de données relationnelles

NoSQL. Introduction 1/23. I NoSQL : Not Only SQL, ce n est pas du relationnel, et le contexte. I table d associations - Map - de couples (clef,valeur)

CNAM Déploiement d une application avec EC2 ( Cloud Amazon ) Auteur : Thierry Kauffmann Paris, Décembre 2010

Découvrir Drupal, le CMS Open Source de référence. Michel-Marie MAUDET Linagora /

Choisir la solution d hébergement et de support faite pour vous

BIG DATA. Veille technologique. Malek Hamouda Nina Lachia Léo Valette. Commanditaire : Thomas Milon. Encadré: Philippe Vismara

MapReduce. Malo Jaffré, Pablo Rauzy. 16 avril 2010 ENS. Malo Jaffré, Pablo Rauzy (ENS) MapReduce 16 avril / 15

Les bonnes pratiques. de l hébergement d un CMS

+ = OpenStack Presentation. Raphaël Ferreira - enovance. Credits : Thanks to the OpenStack Guys 1

Cloud Computing Maîtrisez la plate-forme AWS - Amazon Web Services

Windows Azure Platform Développez, déployez et administrez pour le Cloud Microsoft

LES APPROCHES CONCRÈTES POUR LE DÉPLOIEMENT D INFRASTRUCTURES CLOUD AVEC HDS & VMWARE

Technologies du Web. Ludovic DENOYER - ludovic.denoyer@lip6.fr. Février 2014 UPMC

Cassandra chez Chronopost pour traiter en temps réel 1,5 milliard d événements par an

L AVENIR DU NoSQL. Quel avenir pour le NoSQL?

Le cloud computing au service des applications cartographiques à haute disponibilité

La problématique de la Préservation des Bases de Données. Olivier ROUCHON CINES Groupe PIN Jeudi 7 Octobre

Démarrer rapidement un site avec Drupal 7

Bases de données documentaires et distribuées Cours NFE04

Hébergement PHP. Comprendre pour bien choisir son hébergement

Le Cloud Open-Mind! Emilien Macchi

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Base de données MySQL

Bases de données documentaires et distribuées Cours NFE04

Hébergement MMI SEMESTRE 4

Du 10 Fév. au 14 Mars 2014

Quels choix de base de données pour vos projets Big Data?

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters AVANTAGES

OFFRE MDB Service & Architecture Technique. MyDataBall Saas (Software as a Service) MyDataBall On Premise

Performances. Gestion des serveurs (2/2) Clustering. Grid Computing

Design. Search. Cloud AMOA ECM. Intégration. IT Solutions. Formation. Développement. Mobilité. Open source. Infogérance. Ergonomie


Sommaire. Préface 1 : Pourquoi choisir Magento? Chapitre 1 : Magento, quésaco? Chapitre 2 : Quoi sous le capot?

Bases de données documentaires et distribuées Cours NFE04

FAMILLE EMC VPLEX. Disponibilité continue et mobilité des données dans et entre les datacenters

Webinar. Découvrez Rubedo, la première solution CMS open-source tirant profit des atouts de Zend Framework et du NoSQL. avec la participation de

Cloud Computing : Utiliser Stratos comme PaaS privé sur un cloud Eucalyptus

Windows Azure. Principales fonctions

Informatique en nuage Cloud Computing. G. Urvoy-Keller

Hébergement d'application Web sur le Nuage AWS Les Meilleures Solutions

Formation Cloudera Data Analyst Utiliser Pig, Hive et Impala avec Hadoop

Entrez dans l ère du Numérique Très Haut Débit

Le NoSQL - Cassandra

Fouillez facilement dans votre système Big Data. Olivier TAVARD

Section I: Le Contexte du DATA CENTER Pourquoi l AGILITE est Nécessaire dans le DataCenter

Hadoop, les clés du succès

Comparaison du coût total de propriété de MongoDB et d Oracle. Un livre blanc 10gen

ORACLE 10g Découvrez les nouveautés. Jeudi 17 Mars Séminaire DELL/INTEL/ORACLE

Cloud Computing - présentation d un outil complet

PHP. Performances. Audit et optimisation LAMP. Julien Pauli. Cyril Pierre de Geyer. Guillaume Plessis. Préface d Armel Fauveau

Infrastructure Management

Notre Catalogue des Formations IT / 2015

Un peu de culture : Bases N osql L 1

Cloud Computing : Généralités & Concepts de base

Dix bonnes raisons de choisir ExpressCluster en environnement virtualisé

PHP 5.4 Développez un site web dynamique et interactif

OFFRES DE SERVICES SDS CONSULTING

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Séminaire Partenaires Esri France 6 et 7 juin 2012 Paris. ArcGIS et le Cloud. Gaëtan LAVENU

20 ans du Master SIAD de Toulouse - BigData par l exemple - Julien DULOUT - 22 mars ans du SIAD -"Big Data par l'exemple" -Julien DULOUT

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Fiche Technique Windows Azure

DRUPAL Réalisez des développements professionnels avec PHP (2ième édition)

Hands on Openstack : Introduction

L écosystème Hadoop Nicolas Thiébaud Tuesday, July 2, 13

Les participants repartiront de cette formation en ayant une vision claire de la stratégie et de l éventuelle mise en œuvre d un Big Data.

Introduction à ElasticSearch

Présentation Alfresco

Savoir- Faire Offres mé1ers Offres technologiques

ArcGIS 10.1 for Server

Programme détaillé. Administrateur de Base de Données Oracle - SQLServer - MySQL. Objectifs de la formation. Les métiers

Introduction à. Oracle Application Express

PHP et le Cloud. All rights reserved. Zend Technologies, Inc.

Atelier numérique Développement économique de Courbevoie

DES SAUVEGARDES ET DES RESTAURATIONS DE DONNEES SANS CONTRAINTES DE LIEU NI DE TEMPS

Organiser vos données - Big Data. Patrick Millart Senior Sales Consultant

La tête dans les nuages

ez Publish Cloud Edition Présentation

Oracle Maximum Availability Architecture

Architecture NoSQL et réponse au Théorème CAP

Service WEB, BDD MySQL, PHP et réplication Heartbeat. Conditions requises : Dans ce TP, il est nécessaire d'avoir une machine Debian sous ProxMox

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

Gérer une forte charge avec ez Publish Obtenir la meilleure réactivité de publication. Solutions natives ez. Solution spécifique.

TRANSFORM IT + BUSINESS + YOURSELF

NoSQL. Etat de l art et benchmark

Open-cloud, où en est-on?

LA PROTECTION DES DONNÉES

L'AUTHENTIFICATION FORTE EN TANT QUE SERVICE libérez-vous des contraintes matérielles

Transcription:

Drupal et le NoSQL Frédéric G. MARAND http://drupal.org/user/27985 OSInet http://drupal.org/node/1121720

"Drupal et le NoSQL" de Frédéric G. MARAND est mis à disposition selon les termes de la licence Creative Commons Paternité - Partage à l'identique 2.0 France. Les autorisations au-delà du champ de cette licence peuvent être obtenues à mailto:sales@osinet.fr

Drupal NoSQL : sommaire Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Drupal NoSQL Quels objectifs globaux? Quels tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Objectifs : supporter les volumes Contenus stables : entités Drupal Flux volatils : ordres de grandeur d'écart Exemple, pour U utilisateurs nodes : n*u comments : c*n*u user relationships ; r*u² activités : a*(n+c*n+r*u+...)*u

Objectifs : réduire la complexité CCK, SQL Field storage : stockage en étoile nombreuses jointures requêtes coûteuses à exécuter ou à écrire Bases documentaires : 1 enregistrement = 1 document complet. requêtes économiques à exécuter et à écrire

Objectifs : performance

Objectifs : performance Exemple Figaro Plus : MySQL MongoDB MySQL Slow Queries rate: -85% Durée extraction du coeur de page: -98% Alternatives SQL : Libres : PGSQL, SQLite Propriétaires : MSSQL, DB2, Oracle MongoDB avec DBTNG! "You must be really desperate to drive a NoSQL database with SQL commands." - chx

Drupal NoSQL Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Tâche : backup hors site C'est AUSSI une tâche de production backup_migrate_* FTP Amazon S3 NodeSquirrel (wrapper S3) Rackspace Cloudfiles

Tâche : déport des blocs Limitations du cache de blocs node_access en D6 Drupal 7 le module block n'est plus obligatoire mongodb_block possibilité d'autres implémentations

Tâche : antémémoire Profusion de solutions D6, convergence en D7 In-process, local par frontal : apc, eaccelerator, xcache, zend incohérence entre frontaux Pools mémoire réseau : memcached Bases NoSQL : mongodb_cache, redis

Tâche : stockage des champs Field Storage D7 - Inapplicable en CCK MongoDB : référence Examiner.com http://drupal.org/project/mongodb Riak - pas encore d'efq http://drupal.org/project/riak_field_storage ElasticSearch - pas encore d'efq http://drupal.org/sandbox/damz/1234634

Tâche : file storage Multiples solutions D6 ± hackées Storage API : Stockage / Accès FTP / non spécifique AWS S3 / CDN AWS Cloudfront Rackspace CloudFiles / CDN Limelight Core Streams Wrappers Microsoft Azure

Tâche : exclusion mutuelle Le "verrouillage" core de lock.inc souffre de problèmes à forte charge fonctionne en attente active Alternative : redis.lock.inc attente passive utilisation des mutex Redis

Tâche : MapReduce Distribution de charge liée aux données stockées sur un cluster MongoDB Directement utilisable depuis mongodb Pas d'habillage Drupal spécifique Riak Habillage Drupal dans riak_field_storage

Tâche : file d'attente (queue) Alternatives SQL, dont AdvancedQueue : http://drupal.org/project/advancedqueue MongoDB: Référence Examiner.com http://drupal.org/project/mongodb Redis http://drupal.org/project/redis Non lié à Resque et autre files basées sur Redis

Tâche : recherche Core inadapté aux sites professionnels Principaux moteurs interfacés SOLR SaaS : Acquia Search, Adyax Cloud Search Sphinx, Google CouchDB : couchdb_node stockage automatique des nodes dans le stockage documentaire pas de fonctions de recherche

Tâche : sessions PHP natif : fichiers PECL : memcached (pas memcache!) Drupal core: SQL Alternatives : handler du module Memcache handler MongoDB Attention : particularités Debian/Ubuntu

Tâche : journal d'erreurs 2 versions core : dblog / syslog Fichiers plats MongoDB capped collections. Avantages et risques synthèse des événements Redis : redis_watchdog Tokyo Tyrant

Drupal NoSQL Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Technique : accès aux données API spécifiques AWS SimpleDB http://drupal.org/node/482318 EntityFieldQuery Modèle d'utilisation dual Lien avec le FieldStorage Document Storage D8 Natif vs DBTNG

Technique : intégration Views Interfaçage DBTNG http://drupal.org/project/mongodb_dbtng Greffon EFQ http://drupal.org/project/efq_views

Technique : Drupal 6 CCK Core : La plupart des API sont utilisables natif ou backports (Queue API) nécessité de patches core multiples CCK lié à SQL, pas de field storage NoSQL hooks pre-load / post-save patches intrusifs ou non, conséquences Exemple : Freerice > 8E9 enregistrements

Drupal NoSQL Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Coûts : nature des coûts Investissement Licences perpétuelles Développement spécifique Charges récurrentes Licences périodiques Hosting Support Formation

Coûts : licences Cas général Drupal: licences "libres" MongoDB : serveur AGPL 3, clients Apache 2 Redis : BSD 3 clauses CouchDB, Riak : Apache 2 Tokyo : LGPL 2.1 Outils propriétaires Oracle NoSQL Progress ObjectStore, etc

Coût : développement Limites du support contrib Volume de développement Limites de la communauté Rareté de la ressource Coût des spécialistes Nécessité du test unitaire/intégral

Coûts : formation Corollaire du coût de développement pénurie de la ressource "développeur" risque technologique Investissement ou charge? réduction du coût de développement réduction du TCO récurrence : turnover, technologie

Coût : hébergement SaaS Base NoSQL : AWS SimpleDB Fichiers : Azure, CloudFiles, S3... Backup : CloudFiles, S3... Recherche : SOLR : Acquia Search, Adyax Cloud Search Antidot AFS@Web, Exalead On Demand...

Coûts : support Pas disponible en libre non commercial : ElasticSearch, Redis Coûts en libre commercial : 10Gen pour MongoDB 2500 USD/serveur/an / 4000 USD/serveur/an (Gold) Couchbase pour CouchDB 2500 USD/serveur/an / 4500 USD/serveur/an (Premier) Riak : «contact us»

Drupal NoSQL : sommaire Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

BCP (MongoDB) : modélisation 1 Ne pas chercher à simuler SQL JOIN requêtes multiples avec A/R code Field Storage : stockage entité cf index couvrant Le document comme cache données pour la partie "recherche" du find() données additionnelles dans un cache interne logique côté client pour scaling horizontal penser aux multikeys

BCP (MongoDB) : modélisation 2 Concevoir les documents pour l'indexation "1 index par requête" vs "économiser les index" 40 index maximum par collection MongoDB modifié pour supporter FieldStorage Utiliser des index couvrants Conformité : penser à l'"après" préserver l'accès après la vie de l'application la seconde vie du cache interne Exemple : craigslist

BCP (MongoDB) : Réalisation La requête la plus rapide est celle qu'on n'exécute pas! Cache!= DB : savoir choisir Typage vs pratique PHP/Drupal/MySQL Tests en vraie grandeur durant le développement volume charge

BCP : Production Instrumentation : de l'alerte à la réparation Alertes et réactions: Monit, Nagios Mesure en continu Surveillance individuelle : Munin, Cacti, Synthèse : Ganglia Logs serveur : activer ET utiliser Tolérance aux pannes et à la charge Réplication ET sauvegardes, deux besoins

Drupal NoSQL : sommaire Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Compromis : flexibilité schéma Schéma relationnel flexibilité illimitée méthodes de design reconnues et éprouvées Document storage (MongoDB) pas de schéma par "table" (collection) à grande liberté, grandes responsabilités pas d'outils pratiques comme PMA, Workbench

Compromis : durabilité Relationnel : évolutivité illimitée accessibilité hors application limitée encore plus limitée dans Drupal sans FK Document (MongoDB) évolutivité en production difficile accessibilité hors application PEUT être facile : auto-contenus

Compromis : CAP Théorème de Brewer (CAP theorem) : «it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees: Consistency, Availability, Partition tolerance» Bases SQL : potentiel ACID Pas systématique (MyISAM) MongoDB, bases K/V : "BASE" Basically Available, Soft state, Eventually consistent

Compromis : sharding Drupal : pas de sharding applicatif intégré Exemple avec MongoDB http://www.mongodb.org/display/docs/sharding+introduction

Compromis : répliques et clusters MySQL par défaut : réplication master/slave Pressflow 6, core 7 Utilisation réelle : limites core 6/7 MySQL cluster MongoDB master/slave dans le module replicaset dans MongoDB 1.6

Compromis : support MySQL = Oracle, membres ODBA, SkySQL NoSQL : Communautaire : valeur et limitations Professionnel CouchDB : Couchbase, Cloudant MongoDB : 10Gen Redis : vmware Ryak : Ryak

Compromis : licences Logiciel Licence par défaut Drupal et contributions drupal.org GPL 2.0 et suivantes MongoDB - serveur AGPL 3.0 MongoDB - clients Apache 2.0 MongoDB - documentation Creative Commons Redis BSD 3 clause CouchDB Apache 2.0 Riak Apache 2.0 Tokyo Tyrant / Tokyo Tycoon LGPL 2.1 Etes-vous concerné? Agir en conséquence

Drupal NoSQL Quels objectifs globaux? Quelles tâches fonctionnelles? Quelles techniques de mise en œuvre? Quels coûts? Quelles bonnes pratiques? Quels compromis? Quels modules contribués?

Modules : Bases Document MongoDB http://drupal.org/project/mongodb CouchDB http://drupal.org/project/couchdb ElasticSearch http://drupal.org/sandbox/damz/1234634 Amazon SimpleDB http://drupal.org/project/awssdk

Modules : clef/valeur Apache Cassandra http://drupal.org/project/cassandra Redis http://drupal.org/project/redis http://drupal.org/project/redis_queue http://drupal.org/project/redis_watchdog Ryak http://drupal.org/project/riak_field_storage Tokyo Cabinet / Tokyo Tyrant http://drupal.org/node/844354

ALLER PLUS LOIN

Merci de votre attention! fgm@osinet.fr http://drupal.org/user/27985 http://drupal.org/node/1121720 Audit, conseil, formation Drupal