Vous êtes sur la page 1sur 55

Livre blanc

___________________________

NoSQL

NoSQL : les meilleures


solutions open

source
Page 2

PREAMBULE
SMILE
Smile est une socit dingnieurs experts dans la mise en uvre de solutions open source et lintgration de systmes appuys sur lopen source. Smile est membre de lAPRIL, lassociation pour la promotion et la dfense du logiciel libre, du PLOSS le rseau des entreprises du Logiciel Libre en IledeFrance et du CNLL le conseil national du logiciel libre. Smile compte prs de 600 collaborateurs dans le monde, dont plus de 500 en France (septembre 2011), ce qui en fait le premier intgrateur franais et europen de solutions open source. Depuis 2000, environ, Smile mne une action active de veille technologique qui lui permet de dcouvrir les produits les plus prometteurs de lopen source, de les qualifier et de les valuer, de manire proposer ses clients les produits les plus aboutis, les plus robustes et les plus prennes. Cette dmarche a donn lieu toute une gamme de livres blancs couvrant diffrents domaines dapplication. La gestion de contenus (2004), les portails (2005), la business intelligence (2006), la virtualisation (2007), et la gestion lectronique de documents (2008), les PGIs/ERPs (2008), les VPN open source (2009), les Firewall et Contrle de flux (2009), les Middleware orients messages (2009), lecommerce et les Rseaux Sociaux d'Entreprise (2010) et plus rcemment, le Guide de lopen source (2011). Chacun de ces ouvrages prsente une slection des meilleures solutions open source dans le domaine considr, leurs qualits respectives, ainsi que des retours dexprience oprationnels. Au fur et mesure que des solutions open source solides gagnent de nouveaux domaines, Smile sera prsent pour proposer ses clients den bnficier sans risque. Smile apparat dans le paysage informatique franais comme le prestataire intgrateur de choix pour accompagner les plus grandes entreprises dans ladoption des meilleures solutions open source. Ces dernires annes, Smile a galement tendu la gamme des services proposs. Depuis 2005, un dpartement consulting accompagne nos clients, tant dans les phases davant projet, en recherche de solutions, quen accompagnement de projet. Depuis 2000, Smile dispose dun studio graphique, devenu en 2007 Smile Digital agence interactive, proposant outre la cration graphique, une expertise emarketing, ditoriale, et interfaces riches. Smile dispose aussi dune agence spcialise dans la TMA (support et lexploitation des applications) et dun centre de formation complet, Smile Training. Enfin, Smile est implant Paris, Lille, Lyon, Grenoble, Nantes, Bordeaux, Poitiers, Aixenprovence et Montpellier. Et prsent galement en Espagne, en Suisse, au Benelux, en Ukraine et au Maroc.

Copyright Smile Open Source Solutions Toute reproduction interdite sans autorisation

NoSQL : les meilleures


solutions open

source
Page 3

QUELQUES REFERENCES DE SMILE


SMILE est fier davoir contribu, au fil des annes, aux plus grandes ralisations Web franaises et europennes. Vous trouvez cidessous quelques clients nous ayant adress leur confiance.

Sites Internet EMI Music, Salon de lAgriculture, Mazars, Areva, Socit Gnrale, Gtes de France, Patrice Pichet, Groupama, EcoEmballage, CFnews, CEA, Prisma Pub, Volia, NRJ, JCDecaux, 01 Informatique, Spie, PSA, Boiron, Larousse, DassaultSystmes, Action Contre la Faim, BNP Paribas, Air Pays de Loire, Forum des Images, IFP, BHV, ZeMedical, Gallimard, Cheval Mag, Afssaps, Benetaux, Carrefour, AG2R La Mondiale, Groupe Bayard, Association de la Prvention Routire, Secours Catholique, Canson, Veolia, Bouygues Telecom, CNIL Portails, Intranets et Systmes dInformation HEC, Bouygues Telecom, Prisma, Veolia, Arjowiggins, INA, Primagaz, Croix Rouge, Eurosport, Invivo, Faceo, Chteau de Versailles, Eurosport, Ipsos, VSC Technologies, Sanef, Explorimmo, Bureau Veritas, Rgion Centre, Dassault Systmes, Fondation dAuteuil, INRA, Gaz Electricit de Grenoble, Ville de Niort, Ministre de la Culture, PagesJaunes Annonces ECommerce Krys, La Halle, Gibert Joseph, De Dietrich, Adenclassifieds, Macif, Furet du Nord, Gtes de France, Camif Collectivit, GPdis, Longchamp, Projectif, ETS, Bain & Spa, Yves Rocher, Bouygues Immobilier, Nestl, Stanhome, AVF Primdical, CCI, Pompiers de France, Commissariat lEnergie Atomique, Snowleader, Darjeeling ERP et Dcisionnel Veolia, La Poste, Christian Louboutin, Eveha, SunR, Home Cin Solutions, Pub Audit, Effia, France 24, Publicis, iCasque, Nomadvantage, Gets, Nouvelles Frontires, Anevia, Jus de Fruits de Moora, Espace Loggia, Bureau Veritas, Skyrock, Lafarge, Cadremploi, Meilleurmobile.com, Groupe Vinci, IEDOM (Banque de France), Carrefour, Jardiland, Trsorerie Gnrale du Maroc, Ville de Genve, ESCP, Sofia, Faiveley Transport, INRA, Deloitte, Yves Rocher, ETS, DGAC, Generalitat de Catalunya, Gilbert Joseph, Perouse Mdical

Copyright Smile Open Source Solutions Toute reproduction interdite sans autorisation

NoSQL : les meilleures


solutions open

source
Page 4

Gestion documentaire Primagaz, UCFF, Apave, Goservices, Renault F1 Team, INRIA, CIDJ, SNCD, Ecureuil Gestion, CS informatique, Serimax, Volia Propret, NetasQ, Corep, Packetis, Alstom Power Services, Mazars Infrastructure et Hbergement Agence Nationale pour les Chques Vacances, Pierre Audoin Consultants, Rexel, Motor Presse, OSEO, Sport24, EcoEmballage, Institut Mutualiste Montsouris, ETS, Ionis, Osmoz, SIDEL, Atel Hotels, Cadremploi, SETRAG, Institut Franais du Ptrole, Mutualit Franaise

Consulter nos rfrences, en ligne, ladresse : http://www.smile.fr/clients.

Copyright Smile Open Source Solutions Toute reproduction interdite sans autorisation

NoSQL : les meilleures


solutions open

source
Page 5

CE LIVRE BLANC
Aveclessordesgrandesplateformesweb,levolumededonnesgrerparlesapplications a explos, et les systmes de gestion de donnes traditionnels, relationnels et transactionnels,basssurlelangageSQL,ontmontrleurslimites. Depuis quelques annes, de nouvelles approches du stockage et de la gestion des donnes sont apparues, qui permettent de sastreindre de certaines contraintes, en particulier de scalabilit,inhrentesauparadigmerelationnel.RegroupesderrirelevocableNoSQL,ces technologies auraient trs bien pu tre nommes NoRel comme le suggre luimme linventeurdutermeNoSQL,CarlStrozzi. Plus que des technologies de remplacement intgral des outils relationnels, le NoSQL correspond le plus souvent des approches qui compltent les outils existants, pour en comblerlesfaiblesses.Ainsi,onobservedeplusenplussouventlatraductionNotOnlySQL aulieudeNoSQL. Cestechnologies,portespardesacteursmajeursduWebcommeGoogle,Facebook,Twitter, ont rapidement acquis une lgitimit relle dans le domaine de la manipulation de volumtries de donnes trs importantes et ont rapidement gagn tant en maturit quen notorit. Ce document dresse un tour dhorizon des diffrents paradigmes et technologies NoSQL disponibles. Il dcrit galement, pour les plus emblmatiques de ces solutions, leurs caractristiques,leursforcesetleursfaiblesses. Bonnelecture!

Nhsitezpasnoustransmettrevosavisetvaluationssurlesproduitsprsents danscelivreblanc.Uneseuleadresse:contact@smile.fr

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 6

SOMMAIRE PREAMBULE................................................................................................ 2
SMILE................................................................................................................................................................... 2 QUELQUESREFERENCESDESMILE............................................................................................................................... 3 CELIVREBLANC.......................................................................................................................................................5 SOMMAIRE............................................................................................................................................................6

ETAT DE LART............................................................................................. 8
LESSGBDRELATIONNELS.........................................................................................................................................8 DESACTEURSBIENINSTALLES ...........................................................................................................................8 . LIMITESDESSGBDRELATIONNELSDANSLESARCHITECTURESDISTRIBUEES................................................................9 LESLIMITESDESSYSTEMESDESGBDRELATIONNELSFACEAUXUSAGES...................................................................12 VERSLECLOSIONDEDIFFERENTSPARADIGMES............................................................................................................ 3 1 POURQUOILASOLUTIONNESTELLEPASUNIQUE?.............................................................................................13 TYPESDEBASENOSQL : PARADIGMECLE/VALEUR............................................................................................13 TYPESDEBASENOSQL : BASESDOCUMENTAIRES...............................................................................................14 TYPESDEBASENOSQL : BASESORIENTEESCOLONNES........................................................................................16 TYPESDEBASENOSQL : PARADIGMEGRAPHE...................................................................................................17 DENOUVEAUXPARADIGMESENTRAINANTDENOUVELLESPRATIQUES.....................................................................18

PANORAMA DES SOLUTIONS NOSQL EXISTANTES ..................................... 21


SOLUTIONDETYPEBASECLE/VALEUR...................................................................................................................22 SOLUTIONSDETYPEBASEDOCUMENTAIRE..............................................................................................................23 SOLUTIONSDETYPEBASEORIENTEECOLONNES....................................................................................................... 4 2 SOLUTIONSDETYPEBASEORIENTEEGRAPHES.......................................................................................................... 5 2 OUTILSGENERALEMENTASSOCIES............................................................................................................................ 6 2

SELECTION DES MEILLEURES SOLUTIONS OPEN SOURCE ........................... 28


CASSANDRA......................................................................................................................................................... 8 2 ARCHITECTURE............................................................................................................................................28 OUTILSDEDEVELOPPEMENT...........................................................................................................................31 OUTILSDEPRODUCTION................................................................................................................................35 CONCLUSION...............................................................................................................................................36 MONGODB......................................................................................................................................................... 7 3 DOCUMENTSSOUSMONGODB......................................................................................................................37 ARCHITECTURE............................................................................................................................................38 OUTILSDEDEVELOPPEMENT...........................................................................................................................42

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 7

OUTILDEPRODUCTION .................................................................................................................................43 . CONCLUSION...............................................................................................................................................45 COUCHDB...........................................................................................................................................................46 DOCUMENTSETVUESSOUSCOUCHDB............................................................................................................46 . ARCHITECTURE............................................................................................................................................47 OUTILSDEDEVELOPPEMENT...........................................................................................................................50 OUTILDEPRODUCTION .................................................................................................................................51 . CONCLUSION...............................................................................................................................................52

CONCLUSION ............................................................................................ 53
NOSQL :POURQUELSUSAGES?.....................................................................................................................53 NOSQL :LESSOLUTIONSMATURES..................................................................................................................54

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 8

ETAT DE LART
LES SGBD RELATIONNELS Des acteurs bien installs
Lestechnologiesdebasesdedonnesrelationnellesettransactionnelles,quonrsumeraici par technologiesSQL, rgnent en matres pour lestockageetlamanipulationdedonnes depuis plus de 20 ans. Cette situation de leadership technologique peut facilement tre expliqueparplusieursfacteurs. Tout dabord, SQL est un langage standardis. Bien que chaque fournisseur de base de donnesaitimplmentquelquesvariantes,ilnendemeurepasmoinsquecesoclecommun estbienconnuparlesdveloppeurs.Pouruneentreprise,investirdansunetechnologieSQL savre donc moins coteux sur le plan de la formation que toute autre technologie. Cela explique sans doute lchec des bases de donnes objets que lon a vu fleurir autour des annes2000etquinontjamaisvritablementperc,malgruneapprochenovatrice. Ensuite, SQL embarque de nombreuses fonctionnalits importantes, adaptes aux besoins des entreprises, en particulier la gestion de lintgrit des donnes et limplmentation de transactions,indispensablespourbonnombredapplicationsdegestion.Dansunmondeo linformatique de gestion a reprsent une part trs importante des besoins durant ces derniresdcennies,cesfonctionnalitssontdevenuesattenduesetindispensablesdansune basededonnes. Enfin,lesoutilspermettantlexploitationdecetypedebasesdedonnessontmatures.Que lon se place au niveau des outils de dveloppements (IDE graphiques, intgration dans les langages et les frameworks, ) ou dexploitation (outils de sauvegarde, monitoring, ), les solutionsexistentetsontprtesdepuisdjuncertaintemps.OnpeutdoncconsidrerSQL comme un standard de fait pour toute problmatique ayant trait au stockage et la manipulationdedonnes. Pourtant,uncertainnombredelimitationsimportantessontapparuesaufildesannes.Les premiersacteurs butersur ces limitesfurent lesfournisseurs de servicesen ligne les plus populaires, tels que Yahoo, Google ou plus rcemment les acteurs du web social comme Facebook, Twitter ou LinkedIn. Le constat tait simple : les SGBD relationnels ne sont pas adapts aux environnements distribus requis par les volumes gigantesquesdedonneset parlestraficstoutaussigigantesquesgnrsparcesoprateurs.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 9

Lesbesoinsmajeursidentifisparcesacteurssontlessuivants: Capacit distribuer les traitements sur un nombre de machines important afin dtreenmesuredabsorberdeschargestrsimportantes.Onparleradescaling des traitements. Capacit rpartir lesdonnes entreun nombre important demachines afindtre en mesure de stocker de trs grands volumes de donnes. On parlera plutt de scaling des donnes. Ladistributiondedonnessurplusieursdatacentersafindassurerunecontinuitde serviceencasd'indisponibilitdeservicesurundatacenter.Cetteapprochedoitpar ailleurs permettre que les donnes soient au plus proche des personnes qui les utilisent. Une architecture qui fonctionne sur du matriel peu spcialis et donc facilement remplaableencasdepanne.

Dans des contextes plus modestes, il est apparu que les solutions dveloppes par ces oprateurs SaaS, disposaient de caractristiques intressantes en ce qui concerne la modlisationdesdonnes,permettantnotammentdesmanciperdunecertainerigiditdes modlesrelationnelsstandards.

Limites des SGBD relationnels dans les architectures distribues


Malgr lappellation NoSQL, ce nest pas tant le langage SQL en lui mme qui est inadapt mais les grands principes sur lesquels il a t construit : le modle relationnel et transactionnel. En effet, les bases de donnes relationnelles mettent la disposition des dveloppeursuncertainsnombredoprationsderelationsentrelestables: un systme de jointure entre les tables permettant de construire des requtes complexesfaisantintervenirplusieursentits(lestablesenl'occurrence) un systme dintgrit rfrentielle permettant de sassurer que les liens entre les entitssontvalides

Lamiseenuvredetelsmcanismesauncotconsidrabledslorsquelonsetrouvedans le contexte dun systme distribu. Sur la plupart des SGBD relationnels, il convient de sassurerenpermanencequelesdonnesliesentreellessontplacessurlemmenuddu serveur.Lorsque lenombre derelations auseindunebaseaugmente, il devientde plus en plusdifficiledeplacerlesdonnessurdesnudsdiffrentsdusystme.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 10

NousverronsquelessystmesNoSQLadressentdediffrentesmaniresceproblmeselon lesbesoins. Outre leur modle relationnel, la plupart des moteurs de SGBDs relationnels sont transactionnelscequileurimposelerespectdescontraintesAtomicityConsistencyIsolation Durability,communmentappelparsonacronymeACID: AcommeAtomicity:Celasignifiequelesmisesjourdelabasededonnesdoivent treatomiques,cestdirequ'ellesdoiventtretotalementralisesoupasdutout. Parexemple,sur5000lignesdevanttremodifiesauseindunemmetransaction, sila modificationd'une seulechoue,alors la transactionentire doittre annule. C'est primordial, car chaque ligne modifie peut dpendre du contexte de modification d'une autre, et toute rupture de ce contexte pourrait engendrer une incohrencedesdonnesdelabase. CcommeConsistency:Celasignifiequelesmodificationsapporteslabasedoivent trevalides,enaccordavecl'ensembledelabaseetdesescontraintesd'intgrit.Si unchangementenfreintl'intgritdesdonnes,alorssoitlesystmedoitmodifierles donnes dpendantes, comme dans le cas classique dune suppression en cascade, soitlatransactiondoittreinterdite. I comme Isolation : Cela signifie que les transactions lances au mmemoment ne doivent jamais interfrer entre elles, ni mme agir selon le fonctionnement de chacune. Par exemple, si une requte est lance alors qu'une transaction est en cours,lersultatdecellecinepeutmontrerquel'tatoriginaloufinald'unedonne, maispasl'tatintermdiaire.Defait,lestransactionsdoivents'enchanerlesunesla suitedesautres,etnondemanireconcurrentielle. D comme Durability : Cela signifie que toutes les transactions sont lances de manire dfinitive. Une base ne doit pas afficher le succs d'une transaction, pour ensuite remettre les donnes modifies dans leur tat initial. Pour ce faire, toute transaction est sauvegarde dans un fichier journal, de sorte que si un problme survientempchantsavalidation complte, la transactionpourratre correctement terminelorsdeladisponibilitdusystme.

Dansuncontextecentralis,lescontraintesACIDsontpluttaisesgarantir.Danslecasde systmes distribus, il est en revanche ncessaire de distribuer les traitements de donnes entrediffrentsserveurs.IldevientalorsdifficiledemaintenirlescontraintesACIDlchelle du systme distribu entier tout en maintenant des performances correctes. Comme on le verra, la plupart des SGBD de la mouvance NoSQLont donc t construitsen faisant fi des contraintesACIDquittenepasproposerdefonctionnalitstransactionnelles.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 11

Il existe par ailleurs, une limitation plus thorique ce que peuvent raliser les bases de donnes relationnelles distribues qui est dcrite par le thorme de CAP (Consistency AvailibilityPartition tolerance). Celuici nonce trois grandes proprits pour les systmes distribus: CcommeCoherenceouCohrence: touslesnuds du systmevoientexactement lesmmesdonnesaummemoment A comme Availability ou Disponibilit : la perte de nuds n'empche pas les survivantsdecontinuerfonctionnercorrectement PcommePartition toleranceouRsistanceaupartitionnement:aucunepannemoins importante qu'une coupure totale du rseau ne doit empcher le systme de rpondrecorrectement(ouencore:encasdemorcellementensousrseaux,chacun doitpouvoirfonctionnerdemanireautonome)

LethormedeCAPstipulequilestimpossibledobtenircestroispropritsenmmetemps dansunsystmedistribuetqu'ilfautdoncenchoisirdeuxparmilestrois:

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 12

Les bases de donnes relationnelles implmentent les proprits de Cohrence et de Disponibilit(systmeAC).LesbasesdedonnesNoSQLsontgnralementdessystmesCP (Cohrent et Rsistant au partitionnement) ou AP (Disponible et Rsistant au partitionnement).

Les limites des systmes de SGBD relationnels face aux usages


Le stockage distribu nest pas la seule contrainte qui pse ce jour sur les systmes relationnels. Au fur et mesure du temps, les structures de donnes manipules par les systmes sont devenues de plus en plus complexes avec en contrepartie des moteurs de stockagevoluantpeu. Le principal point faible des modles relationnels est labsence de gestion dobjets htrognesainsiquelebesoindedclareraupralablelensembledeschampsreprsentant un objet. Pour rpondre au besoin des objets htrognes non prdclars, on a vu apparatre desmodlisations complexes sur leplan algorithmique comme le modleEntity AttributeValue permettant de sparer un objet et ses champs. Ces modles, quoique rpondant au besoin de flexibilit des applications modernes, prsentent un inconvnient majeur qui est leur trs faible niveau de performance. La majeure partie des outils dvelopps dans le cadre de la mouvance NoSQL permettent lutilisation dobjets htrognesapportantcomparativementunebienplusgrandeflexibilitdanslesmodlesde donnesainsiquunesimplificationdelamodlisation.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 13

VERS LECLOSION DE
DIFFERENTS PARADIGMES

Pourquoi la solution nest elle pas unique ?


Nous lavons vu, les SGDB relationnels disposent datouts indniables expliquant leur popularit et leur large utilisation, mais aussi de limites importantes qui ont conduit de nouvellesapproches. ToutcommelesSGBDrelationnelsnesontpaslarponseuniqueauxproblmatiquesdebase dedonnes,onnedoitpasconsidrerquunseulautreoutilseraenmesuredapporterune solution au caractre universel. Rappelons ce titre que la mouvance NoSQL ne prne dailleurs pas labandon total de SQL mais se traduit plutt par Not Only SQL et non No SQL.Acetitre,ilexistedanslamouvanceNoSQLunediversitimportantedapproches.que nous classons en quatre grandes catgories : Paradigme cl / valeur, Bases orientes colonnes, Bases documentaires et Bases orientes graphes.

Types de base NoSQL : Paradigme cl / valeur


Ilsagitdelacatgoriedebasededonneslaplusbasique.Danscemodlechaqueobjetest identifiparune cl uniquequiconstituelaseulemaniredelerequter. La structure de lobjet est libre et le plus souvent laiss la charge du dveloppeur de lapplication(XML,JSON,...),labasenegrantgnralementquedeschanesdoctets.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 14

DanscemodleonnedisposegnralementquedesquatreoprationsCreateReadUpdate Delete(CRUD): Create:crerunnouvelobjetavecsaclcreate(key,value) Read:litunobjetpartirdesaclread(key) Update:metjourlavaleurdunobjetpartirdesaclupdate(key,value) Delete:supprimeunobjetpartirdesacldelete(key)

Les bases de ce type disposent pour la plupart dune interface HTTP REST permettant de procder trs simplement des requtes, et ceci depuis nimporte quel langage de dveloppement. Lapprochevolontairementtrs limitedecessystmessurleplanfonctionnelestradicaleet leur permet dafficher des performances exceptionnellement leves en lecture et en criture ainsi quune scalabilit horizontale considrable. Le besoin de scalabilit verticale est fortement rduit au niveau des bases par le caractre trs simple des oprations effectues. Du faitde leur modlede requtetrssimple etrduitaux oprations CRUD,cessystmes sontprincipalementutilisscommedptdedonnesdslorsquelesbesoinsentermesde requtes sont trs simples. On les retrouve trs souvent comme systme de stockage de cache ou de sessions distribues,notammentl o lintgrit relationnelle des donnesest nonsignificative.

Types de base NoSQL : Bases documentaires


Les bases de donnes documentaires sont constitues de collections de documents. Un document est compos de champs et des valeurs associes, ces dernires pouvant tre requtes. Parailleurs,lesvaleurspeuventtre,soitduntypesimple(entier,chainedecaractre, date,...),soitellesmmescomposesdeplusieurscouplescl/valeur. Bienquelesdocumentssoientstructurs,cesbasessontditesschemaless.Acetitreilnest pasncessairededfiniraupralableleschampsutilissdansundocument.Lesdocuments peuventtretrshtrognesauseindelabase. Lestockagestructurdesdocumentsleurconfredesfonctionnalitsdontnedisposentpas les bases cls/valeurs simplesdont laplus vidente estla capacit effectuerdes requtes surlecontenudesobjets.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 15

On conserve gnralement une interface daccs HTTP REST permettant deffectuer simplementdesrequtessurlabasemaiscelleciestpluscomplexequelinterfaceCRUDdes bases cls/valeurs. Les formats de donnes JSON et XML sont le plus souvent utiliss afin dassurerletransfertdesdonnessrialisesentrelapplicationetlabase. Du fait de leur conception plus simple que les bases de donnes relationnelles, ces bases conservent des performances leves. Elles disposent par ailleurs de fonctionnalits trs intressantesentermedeflexibilitdumodledocumentaire,cequelesbasesrelationnelles ne peuvent offrir. Cette dernire fonctionnalit leur confre une popularit importante, notamment dansle milieu dudveloppementdeCMS(ContentManagementSystem,outils degestiondecontenus)pourlesquelscemodleesttrsadapt.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 16

Types de base NoSQL : Bases orientes colonnes


Les bases orients colonnes sont rsolument les plus complexes apprhender parmi la mouvanceNoSQL.Bienquelonobtienneaufinalunschmarelativementprochedesbases documentaires, lorganisation sousjacente des donnes permet ces bases dexceller dans les traitements danalyse de donnes et dans les traitements massifs (notamment via des oprationsdetypeMapReduce). Bienquelontrouvedesvariationsenfonctiondelabaseconsidre,lesconceptsessentiels sontlessuivants: Colonne : il sagit de lentit de base reprsentant un champ de donne. Chaque colonne est dfinie par un couple cl / valeur. Une colonne contenant dautres colonnesestnommesupercolonne.

Famille de colonnes : il sagit dun conteneur permettant de regrouper plusieurs colonnesousupercolonnes.Lescolonnessontregroupesparligneetchaqueligne estidentifieparunidentifiantunique.Ellessontgnralementassimilesauxtables danslemodlerelationneletsontidentifiesparunnomunique.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 17

Les supercolonnes situes dans les familles de colonnes sont souvent utilises comme les lignes dune table de jointure dans le modle relationnel. Comparativement au modle relationnel, les bases oriente colonnes offrent plus de flexibilit. Il est effet possible dajouter une colonne ou une super colonne nimporte quelle ligne dune famille de colonnes,colonnesousupercolonnetoutinstant.

Types de base NoSQL : Paradigme graphe


Ce paradigme est le moins connu de ceux de la mouvance NoSQL. Ce modle sappuie principalementsurdeuxconcepts:dunepartlutilisationdunmoteurdestockagepourles objets(quiseprsententsouslaformedunebasedocumentaire,chaqueentitdecettebase tantnommenud).Dautre part, cemodle,vientsajouter unmcanismepermettant de dcrire les arcs (relations entre les objets), ceuxci tant orients et disposant de proprits(nom,date,).

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 18

Paressencecesbasesdedonnessontnettementplusefficacesqueleurpendantrelationnel pour traiter les problmatiques lies aux rseaux (cartographie, relations entre personnes, ...). En effet, lorsqu'on utilise le modle relationnel, cela ncessite un grand nombre doprationscomplexespourobtenirdesrsultats.

De nouveaux paradigmes entranant de nouvelles pratiques


Lapparition de ces nouveaux paradigmes a entran des changements majeurs dans la maniredaborderlaconceptiondesapplicationsetleurrapportlabase.

Dnormalisationdesdonnes: Lapremireruptureestinhrenteaumodlededonnesnonrelationnelquinedisposepas de mthodes efficaces permettant doprer des oprations de jointure. Dans le modle relationnel, la pratique courante est dutiliser des donnes sous forme normalise et de procder des jointures entre les tables au besoin. Sur le sujet de la normalisation, les thoriciensdelamouvanceNoSQLprnentuneapprochepragmatiqueguideparlutilisation quiestfaitedesdonnes: Danscertainscaslesdonnesserontembarquesdansladonneparente(lamanire deprocderdpendduparadigmeutilis).Cestnotammentlecaslorsquelevolume de la donne est faible et que celleci est peu mise jour. Se pose alors la problmatiquedelamisejourdedonnes.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 19

Danslesautrescas,onstockerasimplementlesidentifiantspermettantdaccderaux donnescommeonleferaitdanslemodlerelationnel.Ladiffrencersidedansle faitquecestleplussouventlapplicationdeprocderparlasuiteauxjointures.

MapReduce: MapReduce est une technique de programmation distribue trs utilise dans le milieu NoSQLetquiviseproduiredesrequtesdistribues.Cettetechniquesedcomposeendeux grandestapes: Etape de mapping:Chaqueitemdunelistedobjetscl/valeurestpasslafonction mapquivaretournerunnouvellmentclvaleur.Exemplesdefonctionmap: o A un couple (UserId, User), on assigne le couple (Role, User). A lissue de ltape de mapping, on obtient une liste contenant les utilisateurs groups parrle o Auncouple(UserId,User)onassignelecouple(UserId,User)uniquementsi lemaildelutilisateurseterminepar.fr o ...

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 20

Reduce : La fonction reduce est appele sur le rsultat de ltape de mapping et permetdappliqueruneoprationsurlaliste.Exemplesdefonctionreduce: o Moyennedesvaleurscontenuesdanslaliste o o Comptabilisationdesdiffrentesclsdelaliste Comptabilisationdunombredentresparcldanslaliste

Ltape de mapping peut tre paralllise en traitant lapplication sur diffrents nuds du systmepourchaquecoupleclvaleur.Ltapederductionnestpasparallliseetnepeut treexcuteavantlafindeltapedemapping. Les bases de donnes NoSQL proposent diverses implmentations de la technique MapReduce permettant le plus souvent de dvelopper les mthodes map et reduce en JavascriptouenJava.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 21

PANORAMA DES SOLUTIONS NOSQL


EXISTANTES
Ondnombreactuellementunedouzainedesolutionsexistantes,quellessoientdetype: basecl/valeur,commeRedis,Riak,Voldemort basedocumentaire,commeMongoDB,CouchDB,Terrastore baseorientecolonne,commeCassandra,AmazonSimpleDB,GoogleBigTable,HBase baseorientegraphe,commeNeo4j,OrientDB

Dans la mouvance NoSQL, les grands noms de la base de donnes propritaire brillent par leurabsence,lessolutionscitescidessustantsoientopensource,soitproposesenSaaS. Les produits issus du monde SaaS et proposs sur ce mode uniquement, principalement ports par Google et Amazon, font partie intgrante de loffre PaaS (Platformas a Service) mise disposition des dveloppeurs dans le cadre des frameworks de dveloppements clouds. Les produits open source constituent la majorit de loffre NoSQL,etlonassisteunerelle monteendecessolutionsdanscesecteur,souventportepardescontributeursimportants comme Facebook, Twitter, LinkedIn, Un certain nombre de produits ont t dvelopps pour les usages internes de ces grands acteurs de lInternet, puis librs dans des tats davancementtrsimportant,puisquedjenproductionpourcesgrandssitesweb.Notons quelafondationApachejoueiciencoreunrleprimordialdanscesprojets. Nouslistonsciaprslessolutions,leurlicenceetunepremireanalyse.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 22

SOLUTION DE TYPE BASE CLE / VALEUR

Outil Redis
http://redis.io/

Distribution LicenceBSD

Commentaire Redisdisposedefonctionnalitslgrementplus avancesquelamajeurepartiedesautressystmesde typecl/valeur,permettantnotammentlamanipulation deschanesoulestockagedecollections. Ilnedisposeenrevanchepasderelmcanismede partitionnementmaissimplementderplication maitre/esclave. CeprojetestsponsorisparVMWarecequiluiassure unecertaineprennit.

Riak
http://wiki.basho.com/

Apache License2.0

RiakestlimplmentationopensourcedeAmazon Dynamo.LeprincipauxavantagesdeRiaksont:systme compltementdistribus,supportMap/Reduce (Javascript/Erlang)permettantdeprocderdes traitementsdistribusgrandeschelles. UnsystmeprometteurdveloppparLinkedInpour leurusageinternepuislibrenopensource.Untravail importantatralissurloptimisationdela communicationentrelesdiffrentsnudsdurseau.

Voldemort
http://project voldemort.com/

Apache License2.0

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 23

SOLUTIONS DE TYPE BASE DOCUMENTAIRE

Outil MongoDB
http://www.mongodb.org/

Distribution

Commentaire

LicenceGNU MongoDBestlunedesbasesdocumentaires AGPLv3.0 opensourcelespluspopulaires. Stabledepuislongtemps,elledisposedune couverturefonctionnelleimportanteainsi quedunsupportprofessionnel.

CouchDB
http://couchdb.apache.org/

Apache License2.0

CouchDBestleprojetdebasedocumentaire officieldelafondationApache. Lapprocheestradicalementorientesurles mtadonnes,leversionningetlecontenu desdocuments.

Terrastore
http://code.google.com/p/terrastore/

Apache License2.0

Terrastoreestunebasedocumentairequi estassezintressantedanslamesureo celleciestextensible(dveloppementen Java)viaunsystmedvnements.Le langagederequteestluiaussiextensible parcemmebiais.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 24

SOLUTIONS DE TYPE BASE ORIENTEE COLONNES

Outil Cassandra
http://cassandra.apache.org/

Distribution Apache License2.0

Commentaire Cassandraestlabasededonnesoriente Colonnesopensourcelapluspopulaire.Son dveloppementestmensouslgidedela fondationApacheetelleestutilisepardes acteursdepremierplanduWebcomme Facebook. BriqueessentielledeAmazonAWS,labase dedonnesSimpleDBpermetdedvelopper desapplicationsdanslecloudAmazon. BigTableestlabasededonnesdeGoogle AppEngine,lenvironnementde dveloppementSaaSdeGoogle. SeuleslesAPIsdeAppEnginepermettentson exploitation.

AmazonSimpleDB
http://aws.amazon.com/fr/simpledb/

SaaS

GoogleBigTable

SaaS

HBase
http://hbase.apache.org/

Apache License2.0

HBaseestuneimplmentationopensource deGoogleBigTablebasesurHadoop.Il sagit,avecCassandra,dudeuximeprojet denverguremeneparlafondationApache encequiconcernelesbasesorientes colonnes.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 25

SOLUTIONS DE TYPE BASE ORIENTEE GRAPHES

Outil Neo4j
http://neo4j.org/

Distribution

Commentaire

LicenceGNU CettebasededonnesorienteGraphesest GPLv3.0/ disponibleenversionstabledepuisjanvier Version 2010etdisposedunsupportcommercial. commerciale Apache License2.0 OrientDBestunebasededonnesoriente graphequiprsentelaparticularit dimplmenter,entreautres,unepartiedu langageSQLcommepossibilitderequte.

OrientDB
http://www.orientechnologies.com/

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 26

OUTILS GENERALEMENT
ASSOCIES Bien que cela nesoitpas lecurdecelivreblanc,onobserve souventla prsencedoutils complmentaires communs dans le cadre de projets NoSQL. En effet, les besoins suivants bienquenefaisantpaspartieduspectredesproblmatiquestraitsparlesbasesdedonnes NoSQLsontrcurrentsdanslesprojetsdistribus:

Systmedefichiersdistribus: Cebesoinesttrssouventassocidesbasesdedonnesvolumineuses.Moinscoteuxque des architectures de type SAN, il existe des systmes de fichiers distribus dont les plus connussontLustre1etMogileFS2.

Recherchedistribue: Larechercheestsouventunlmentclsurunsystmedistribu.Onutiliseraleplussouvent lemoteurderechercheopensourceSolR3quiprsentelacapacitdeconstruiresimplement unindexderecherchedistribu.

Processusapplicatifdistribu: Lorsquelesvolumesdedonnesdeviennentimportants,ilpeutapparatrequelestraitement non assurs par la base de donnes ne soient plus ralisables par un seul et mme nud applicatif. Il existe un certain nombre doutils permettant dobtenir des systmes de traitement de donnes distribus dont les plus connus sont les environnements Hadoop4 (Java) et Node.JS5 (JavaScript). Il existe par ailleurs des langages de programmation spcifiquementconuspourcetypedeproblmatiquecommeErlang.

1 2 3 4 5

LusteFS:http://wiki.lustre.org/index.php/Main_Page MogileFS:http://danga.com/mogilefs/ SolR:http://lucene.apache.org/solr/ Hadoop:http://hadoop.apache.org/ Node.JS:http://nodejs.org/

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 27

Gestiondeconfigurationdistribu: Lagestiondeconfigurationestuneproblmatiquedifficileeninformatiquequisedoitdtre adresse par des outils spcifiques ds lors que lon se place dans un environnement distribu.LundesoutilsleplussouventutilisestApache ZooKeeper6.

ApacheZooKeeper:http://zookeeper.apache.org/

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 28

SELECTION DES MEILLEURES SOLUTIONS OPEN SOURCE


Danslalisteprcdente,nousavonsslectionnlesmeilleuressolutionsopensource,cest direcellesquiprsententlafoislamaturitlaplusgrande,lepotentielleplusimportant,ou encorelameilleureintgrationauxoutilsdedveloppementactuels. Cetteslectionnousamneunelisterduitetroisproduitscls: Cassandra, MongoDB, CouchDB

CASSANDRA
LabasededonnesCassandraestnedansleslocauxdeFacebooketatdveloppepour prendre en charge les trs gros volumes de donnes gnrs par la boite de rception de Facebook. Le projet fut finalement plac sous lgide de la fondation Apache qui assure maintenantlaconduitedesdveloppements. Cassandra a tconstruitcomme une basededonnesoriente colonnes et respecte donc lesprincipesprsentsplushautpourceparadigme.

Architecture
Larchitecture de Cassandra a t conue pour tre compltement distribue et ne pas prsenter de point de dfaillance unique (SinglePoint Of Failure ou SPOF). Pour obtenir ce rsultat,touslesnudsdeCassandrasontquivalents.Lajoutdunnouveaunudesttrs simple etilsuffitpourcela deconnatre unseulnud ducluster(engnral, on choisit un certainnombredenudsassezstablesnommsSeedpourajouterdenouveauxnuds).Au final,lesnudssontorganisssouslaformedunanneau.Encasdedfaillancedelundes nuds,ilestsimplementretirdelanneau.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 29

Lesdonnessont partitionnesetrpliquesentrelesdiffrents nuds. Chaque famille de colonnesestenfaitstockecommeunetabledehashagepartitionnedemanirehomogne surlecluster.Lastratgiedegnrationdeclsetdepartitionnementpeuttremodifiepar leconcepteurdelabasepourchaquefamilledecolonnes. En outre Cassandra est capable de grer deux concepts diffrents afin de faciliter son exploitationendatacenters(ventuellementrpartis): Lesracks:Ilsagitdegroupedeserveurslisentreeux.Legroupedeserveursdun mmerackcontientlensembledesdonnesetestautonome.Onplacesouventdeux racksdanslemmedatacenter.Lesdonnessontautomatiquementdupliquesentre deuxracks Ledatacenter:Achaquerack,onassocieunjumeaudansunautredatacenter.Cela permetdassurerlarplicationentrelesdeuxsitesdistants.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 30

La mise en place de ce type de topologie est gre via des fichiers de configuration qui doivent tre distribus sur lensemble des nuds. Pour faciliter la gestion de telles configurationsdistribues,onprconiseralutilisationdeloutilZookeeper.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 31

Outils de dveloppement
StabilitdelAPI: Cassandra est un produit relativement jeune dont lAPI volue fortement. Dans un premier temps, laccs la base taituniquement possible via unmcanisme de procdure stocke (RPC) au travers de Thrift7. Lquipe de dveloppement a entrepris une migration de Thrift versAvro8(tousdeuxsontdesprojetsdelafondationApache)cequirisquederendreThrift obsolteterme. Aufuretmesuredelavancementdesdveloppements,lquipeprojetajoutedenouveaux modesdaccscommelelangageCQL,permettantdaccderlabaselaidedunesyntaxe procheduSQL.CesmodesdaccssontrelativementrcentsdanslavieduprojetetleurAPI nestdoncpasconsidrercommestable. Dunemaniregnrale,leprojetresteassezneufcejouretsonAPIestencoresujettede nombreusesvolutionsetvariations.

Langagessupports: Thrift est la mthode daccs la plus universelle pour accder Cassandra. Cependant, il savrepluttrudimentairedanssamanipulation.Acetitre,bienqueThriftoffrelesupportle plus universel, on privilgiera, lorsquelles existent, des bibliothques de plus haut niveau sappuyant sur Thrift. Le support du langage CQL est pour le moment rserv aux seuls langagesJavaetPython.

Langage Java

Thrift CQL Oui Oui

Commentaires Existencedebibliothquesdeplushautniveau: Hector,Pelops,Cassandrelle Existencedebibliothquesdeplushautniveau: Pycassa,Telephus Existencedebibliothquesdeplushautniveau: CassandraPHPClientLibrary,phpcassa

Python

Oui

Oui

PHP

Oui

7 8

Thrift:http://thrift.apache.org Avro:http://avro.apache.org

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 32

Ruby

Oui

Existencedebibliothquesdeplushautniveau: Cassandra Existencedebibliothquesdeplushautniveau: Aquiles

C++ Perl C#/.Net

Oui Oui Oui

JavaScript Cocoa(viaObjectiveC)

Oui Oui

On notera par ailleurs, qu ce jour, aucun des frameworks majeurs de dveloppement couramment utiliss (Zend, Symfony, Django, ...) n'intgre de support pour Cassandra. Certainsplanifientnanmoins son support.Celarisque de savrer difficile tantquelAPI ne serapasstabilise.

Gestiondelacohrencedesdonnes: Comme indiqu plus tt, il est techniquement impossible de maintenir la cohrence des donnessurlensembleduclustertoutenconservantlespropritsdedisponibilitainsique lepartitionnementdesdonnes(thormeCAP).Cassandraassureuniquementlacohrence finale desdonnes,ce qui signifie uniquement aprs un dlaide propagation au traversdu datacenter.CelafaitdeCassandraunsystmedetypeAP(AvailableetPartitionTolerant). Cependant et dans certains cas prcis, il peut tre ncessaire de sassurer que la donne crite soit crite sur lensemble des nuds du cluster avant de valider lopration. De manireanalogue,lorsdunelectureundveloppeurpeutsouhaiterdisposerdeladernire mise jour dune donne effectue lchelle du cluster tout entier. Ces cas sont grs directementparledveloppeur,quidoitprciserlorsdesarequtequeldegrdecohrence ilsouhaiteluivoirappliquer.Ledveloppeurdisposedesdegrsdecohrencesuivants:

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 33

Nom ANY

Signification en criture RetourneSuccssila requtetcritesurau moinsunnudducluster. Lesystmesechargerapar lasuitederpliquer lcrituresurlesautres nuds. Cemodesecomporte commelemodeANYmais assureunescurit additionnelleengarantissant quelarequteatcrite danslammoireetle commitlogdunud. Ilsagitdumodedcriture pardfautdeCassandra.

Signification en lecture Inexistantenlecture

ONE

Danscemode,ladonneestlue surlepremiernudquirpond.La donnepeutpotentiellementne pastrejour.Danstouslescasle systmerpondimmdiatementet sassureensuiteentchedefond queladonnetaitjourafinde rpondrecorrectementla prochainerequte(systmedit ReadRepair). Ilsagitdumodedcriturepar dfautdeCassandra.

QUORUM

Danscemode,lesystme retourneSuccs uniquementunefoisquela donneatcritesurla majoritdesnudssur lesquelselledoittre rplique.

Requtelensembledesnuds utilissenrplicationetretournela derniredonnemisejour lorsquelamajoritdesnudsa rpondu.Lesautresnudsutiliss enrplicationserontcontrlsen tchedefondselonlesystme ReadRepair. Cemodeestanalogueaumode QUORUM.Dansuncontextemulti datacenter,larequteestadresse uniquementauxautresnudsdu mmedatacenter.

LOCAL_QUORUM

Cemodeestanalogueau modeQUORUM.Dansun contextemultidatacenter, ellesassureuniquement queladonneat rpliquesurlamajoritdes nudsauseindu datacenter.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 34

EACH_QUORUM

Cemodeestanalogueau modeQUORUM.Dansun contextemultidatacenter, ellesassurequeladonnea trpliquesurlamajorit desnudsdanschaque datacenter. Danscemode,lesystme rpondSuccs uniquementlorsquela donneatrpliquesur lensembledesnuds.Dans cemodedefonctionnement, silundesnudsnerpond pas,larequteseraen chec.

Cemodeestanalogueaumode Quorumladiffrencequela majoritdesnudsdechaque datacenterdoitavoirrpondu.

ALL

Requtelensembledesnuds utilissenrplicationetnerpond quelorsquilareularponsede lensembledesnuds.Dansce modedefonctionnement,silun desnudsnerpondpas,la requteseraenchec.

Il faut bien avoir lesprit que plus le degr de cohrence requis est lev et plus la requte sera longue tre excute.Dansuncertainssens,plusledegrdecohrenceaugmenteet plus lesystmetend secomporter non plus comme un systme AP(Available etPartition tolerant)maiscommeunsystmeCP(ConsistentetPartitiontolerant). Cette dualit de comportement est trs intressante quoi que probablement un peu complexemanipuler.LecomportementAPpardfautestsatisfaisantdanslamajeurepartie descas rels (liste darticles,description dun produit, ). Cependant, il existe des casdans lesquels le besoin dune donne fiable est important (par exemple dans le cas de l'interrogationdunstockaumomentdunevalidationdecommande).

Transactions: CommelaplupartdesoutilsNoSQL,Cassandra ne propose aucun mcanisme de transaction. Cest donc lapplication dassurer les logiques de retour en arrire en cas derreur ou dinterruption dune procdure multitapes. Cela rend un peu plus complexe lcriture dapplications mtiers transactionnelles. Nanmoins, on commence voir apparatre des systme de gestions de transactions distribues qui sappuie sur Apache Zookeeper pour fournircesmcanismesCassandra,limageduprojetprometteurnommcages9.

ProjetCages:http://code.google.com/p/cages/

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 35

Autresconsidrations: Cassandra capitalisesur lesdveloppements dela fondation Apache etplusspcifiquement HadoopdontilintgrecertainsdveloppementsdontuneimplmentationdeMapReduce,de PigetdeHive.

Outils de production
Scalabilit: Cassandra, de par son architecture compltement dcentralise, permet dassurer trs efficacement aussi bien la distribution des traitements que des donnes sur des nuds multiples.

Tolrancelapanne: Deparsonarchitecture,conuepourneprsenteraucunpointdedfaillanceuniqueetses capacitsdedploiementsurplusieursdatacentersdiffrents,Cassandra est un systme qui prsente une trs forte rsistance aux pannes.

Outilsdemonitoring: LesoutilsdemonitoringspcifiquementadaptspourCassandranesontpastrsnombreux cejour.Ilexistecependantuncertainnombredeprojetscommunautairesquipermettentle monitoringdanslesapplicationsdesupervisionlespluscourantesquesontNagios,Muninou Cacti. Par ailleurs, Cassandra expose lessentiel des mtriques utiles du cluster au monitoring via JMX,rendantpossiblelutilisationdelensembledesoutilsdemonitoringbasesurJMX.

Gestiondessauvegardes: Lasauvegardededonnesdistribuesestunsujetcomplexepourdeuxraisons: lavolumtrieestsouventimportantecequiimposedefragmenterlasauvegarde. desproblmatiquesdecohrencesdedonnespeuventapparatrelorsquelonessaie desauvegarderchaquenudindividuellement

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 36

La meilleure pratique est dutiliser loutil nodetool livr avec Cassandra et qui permet de raliser une image instantane de chaque nud tout en garantissant la cohrence de lensemble de la sauvegarde. Le fait de raliser une image de chaque nud permet de fragmenterlasauvegarde. Dansuncontextededveloppement,onpourrautiliserlesoutilssstable2jsonetjson2sstable quipermettentderaliserdesimports/exports.

Conclusion
Cassandraestunoutilrelativementcomplexe.Cettecomplexitconcerneprincipalementles dveloppeurs qui devront apprhender de nouvelles manires de construire leur base de donnes.Celapeutapparaitrepeunatureldeprimeabordcarintimementliesauparadigme de base oriente colonnes. Par ailleurs ils devront grer des paramtres supplmentaires comme le degr de cohrence des requtes. En outre, la maturit des outils de dveloppementpourrasavrerrebutante tout dumoinsaudpart.Nousavonsparailleurs constatqueladocumentationntaitpasdunequalitirrprochable.

En contrepartie cet outil prsente des caractristiques trs intressantes. Nous retenons principalementcommeavantage: Dessoutienssolidesassurantlaprennitdeloutil,avecenchefdefilelafondation Apache. UnoutilprouvpourdegrosvolumesdedonnespardegrandsacteursduWeb. Unoutilconupourtreexploitdemanireentirementdistribue,ycomprisentre plusieursdatacentersgographiquementloigns. Unestructurededonnesflexiblequipermetdestockerdesdonneshtrognes La capacit pour le dveloppeur de choisir lui mme le comportement attendu en privilgiantsoitlacohrence,soitlaperformance.Cepermetloutildesadapter dessituationsassezvaries.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 37

MONGODB
MongoDBestunebasededonnesoriente documentdveloppeenC++.Leprojetdispose dune popularit importante et aussi dutilisateurs de renom comme MTV, Disney, Foursquare,Sourceforge,bit.ly,.Parailleurslasocit10gen,entitcommercialeencharge dudveloppementdeMongoDBfournitdesservicesdesupportetdeformationautourdela solution,cequipeutaidersondploiement.

Documents sous MongoDB


MongoDBestunebasedocumentairedanslaquellelesdocumentssontregroupssousforme de collections, les collections tant lquivalent des tables du SQL. Il est possible de reprsenter chaque document au format JSON (MongoDB utilise une variante binaire plus compacte de JSON nomm BSON pour son stockage interne). Chaque document dispose dune cl uniquepermettantdel'identifierdanslacollection.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 38

Architecture
Mongoatconupourfonctionnerselonplusieursmodesdistincts: serveurseul rplicationmaitre/esclave rplicationviaReplicaSet(ensembledeserveurstraitantlesmmesdonnes) partitionnement des donnes selon leur cl via sharding (partitionnement des donnessurplusieursserveurs)

Serveurseul: Danscemodemettantenjeuunseulserveur,unseulprocessusnommmongodestutiliset traite directement les donnes issues des requtes du client. Larchitecture est alors trs simple:

Rplicationmatreesclave: Danslemodemaitre/esclave,onlancedeuxserveursmongodnommstrivialementmatre etesclave:

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 39

Les donnes sont crites sur le matre uniquement. Le matre rplique lensemble des critures,avecunecertainelatence.Leclientpeutchoisirdeliresoitsurlesclavesilaccepte leserreurslieslalatencederplication,soitsurlematredanslecascontraire. Ce mode de fonctionnement prsente comme faiblesse majeure sa faible tolrance la panne,carencasdepanneduserveurmatre,lapplicationclienteestenincapacitdcrire sur la base ! Il est ncessaire de procder unredmarragemanuel du serveur esclave en modematre.Ilsagitalorsdunpointdedfaillanceunique. Cemoderesteimportantcarilpermetauxdveloppeursdetesterleseffetsdebordslisla rplicationetdoncdassurerquelapplicationdveloppeserammedefonctionneravec detellescontraintes.Celaestdautantplusvraiqueledlaiderplicationminimalepeuttre fixmanuellementafindesimulerunelatencerseauallantjusququelquessecondes.

RplicationparReplicaSet: Ilsagitdunmodederplicationplusavancquelemodematre/esclaveprsentcidessus et que lon peut mettre en place ds lors que lon dispose dau moins trois machines physiques.Cemodepermetdviterlaprsencedunpointdedfaillanceuniqueauseinde linfrastructureparlamthodesuivante: OnajoutenserveursauReplicaSet.Chaqueserveurdisposedunepriorit. Undesserveursestconsidrcommelenudprimaire.Onpeutvoirlerledenud primairecommeceluiduserveurmatredanslemodlematre/esclave:ilsagitdu nudquiseraenchargedescrituresetdesrplicationsverslesautresserveurs. Encasdedfaillancedunudprimaire,unnouveaunudauseinduReplicaSetest choisietdevientnudprimaire.Dansleprocessusdlectiondunnouveaunudsa prioritestpriseencompte.Celapermetdeprivilgiercertainsnuds,typiquement lespluspuissants.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 40

Partitionnementdesdonnsviasharding: Les mcanismes de rplication sont intressants dans la mesure o ils permettent de faire voluer les performances en lecture sur la base de donnes. Cependant avec ce systme, lcriture de donnes repose un seul serveur. Pour pallier ce problme, il est ncessaire dutiliserlanotiondesharding: Un shard contient un ou plusieurs serveurs : un serveur seul, un couple maitre/esclave ou un replica set. Lutilisation dun replica set est conseille en productionpourunemeilleurescurit. Pourpartitionnerunecollectionsurplusieursshardsondfinitsurcelleciuneshard key. Il sagit dune liste de champs du document qui permettront au systme de dfinir sur quel shard un document doit tre stock. Les donnes seront rparties automatiquementdemanirelaplushomognepossibleentrelesdiffrentsshards.

Deuxlmentsdarchitecturesontajouts: Serveurmongos:ilsagitdunoudeplusieursserveursdontlerleetderouterles requtesduclientversleshardappropri.Bienquunseulserveurpuissetreutilis ilestconseilldenplaceraumoinsdeuxpourviterqueceserveursoitunpointde dfaillanceunique.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 41

Par ailleurs, ces serveurs sont susceptibles de recevoir une charge significative. En effet,lorsderequtesfaisantintervenirplusieursshards,ilssontresponsablesentre autres de lagrgation des rsultats. Notons que ces effets de charge peuvent tre limits par un choix appropri des shard keys qui permet aux requtes de faire intervenirunnombrelimitdeshards.

Configuration mongod : Ces serveurs stockent la configuration du sharding et sont utilissparlesautresinstancesafindtreenmesurededterminersurquelshardles oprations doivent tre effectues. L encore, il est conseill dutiliser plusieurs serveursafindviterlapparitiondunpointdedfaillanceunique.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 42

Outils de dveloppement
StabilitdelAPI: MongoDB est un outil mature dont lAPI volue peu ce jour. Deux modes daccs principauxpeuventtreutiliss: driver spcifique au langage de programmation permettant une communication directementenBSON uneAPIRESTdisponiblesousformedunserveurHTTPembarquoptionnel

Langagesupports: Mongo supporte officiellement un grand nombre de langage au travers de drivers. Pour les autres langages, on pourra compter sur un support communautaire assez vaste. Enfin, certains frameworks commencent implmenter un support de Mongo (sous forme de plugins).

Langage

Support officiel Oui

Support communautaire Oui

Intgration framework

Java

IntgrationJPAviaDataNucleusJPA/JDO, IntgrationSpringDataviaSpringMongoDB Intgrationaveclesframework:CakePHP, DoctrinevialeprojetObjectDocument Mapper IntgrationRailsviaMongoMapper

Python PHP

Oui Oui

Oui Oui

Ruby C++ Perl C#/.Net Javascript Cocoa(via ObjectiveC)

Oui Oui Oui Oui Oui

Oui Oui Oui Oui Oui Oui

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 43

Cohrencedesdonnes: Les critures tant toujours effectues sur la mme machine, la cohrence en criture est assuresansaucunproblme. Enlecture,lacohrencedesdonnesestassureenpartieparledveloppeurquipeutchoisir daccepter de lire sur un serveur esclave, quitte ce que celuici nait pas pu rpliquer lensembledesdonnescritesdepuisleserveurmatre,ousurleserveurmatre.

Transactions: MongoDB nimplmente pas de mcanisme de transactions. On pourra nanmoins sappuyer sur un certain nombre doprations atomiques et donc transactionnellespardfinitiondontonpeuttrouverlalistesurlesitedemongodb.org10.

Autresconsidrations: A limage de la plupart des solutions NoSQL, MongoDB propose une implmentation de MapReduce,utilisableenJavascript. Parailleurs,MongoimplmenteunsystmedefichiersdistribusnommGridFSpermettant lestockagedefichiersvolumineux(picejointes,).

Outil de production
Scalabilit: Deparsaconception,Mongoestscalableselondeuxmodes: scalabilit en lecture:cellecipeut treobtenue simplementen utilisant lesreplica set scalabilitencriture:cellecipeuttreobtenuevialesmcanismesdesharding

10

http://www.mongodb.org/display/DOCS/Atomic+Operations

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 44

Tolrancelapanne: Lesmcanismesdereplicasetpermettentausystmedersisterfaceladisparitiondelun de ces nuds de stockage. Par ailleurs il est possible de placer les nuds dun replica set dansplusieursdatacenters(parexempleenassignantaunuddudatacenterdesecours,une prioritinfrieure)pourobtenirunsystmequisupportelapertecompltedundatacenter. LesystmeestlgrementpluscentralisquecertainsautressystmesSQLlorsquonutilise le sharding (prsence des nuds de routage) mais ceuxci peuvent tre dupliqus sans problme,mmesurplusieursdatacenters.Celaneconstituedoncpasnonplusunpointde dfaillanceunique.

Outilsdemonitoring/Administration: Outre le fait que MongoDB dispose de capacits de monitoring basiques embarques, de nombreuxpluginsexistentpermettantlintgrationdeMongoDBdanslesoutilsdanalyseles pluspopulairesdumarchcommeMunin,Ganglia,Cacti,ZabbixouNagios. Il existe par ailleurs un certain nombre doutils SaaS de monitoring intgrant des modules spcifiquespourMongoDB(ServerDensity,CloudKick,AppFirst,).

Gestiondessauvegardes: MongoDB dispose dun outil de sauvegarde nomm mongodump. Celuici procde un exportdelabasededonnesquipeut,parlasuite,trerestaurviamongorestore. Cet outil nest pas adapt des configurations traitant un grand volume de donnes. En gnral, cellesci utilisentdesshards contenantun replica set.Latechnique habituelle pour sauvegarderdetellesdonnesestlasuivante: On stoppe les fonctionnalits de rpartition du sharding durant lopration de sauvegarde On stoppe un des serveurs de configuration (les autres continuent fonctionner pendantcetemps)puisonsauvegardecesfichiers Pourchaqueshard,onstoppelundesserveursdureplicasetquelonsauvegarde Onredmarreleserveurdeconfigurationainsiquelesnudsteintsdanslesshards Onredmarrelesfonctionnalitsderpartitiondusharding

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 45

Conclusion
MongoDBestlundesoutilslesplusmaturesdelamouvanceNoSQLetdisposeparailleursdu support commercialofficiel de son diteur.Ilprsente enoutrelavantagede disposerdun grandnombredebibliothquesofficiellementsupportesparsonditeurluipermettantson intgration dans un grand nombre de langages de programmation. On voit par ailleurs apparatrelintgrationdeMongoDBdansunnombrecroissantdeframeworksparmilesplus populaires. En outre, leparadigme documentairesavreassez simple prendre enmainetil estassez ais de construire des requtes passablement complexes laide de MongoDB. La documentation de lAPI estpar ailleurs dexcellente qualit etriche de nombreuxexemples concrets.

Onregretterananmoinslesquelquespointssuivants: LarchitecturedeMongoDBimpliquedemettredispositionunnombreimportantde serveurs ds lors que lon souhaite distribuer les donnes, et requiert un temps de configurationimportant Leproduitgagneraitceque son diteurcommuniquedemanire plusimportante ausujetdelaroadmap

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 46

COUCHDB
CouchDB estun projet de basededonnesorientedocumentsde lafondation Apache.La premiereversionstableduprojetatpublieenaot2010aprs5ansdedveloppement. Dvelopp en langage Erlang, CouchDB prsente certaines fonctionnalits uniques dans les catgoriesdesbasesdedonnesdocumentaires: proposeunbackofficequipermetdegrerlesbasesdedonnes proposeleversionningdocumentairenativement entirementdcentralise,labasepermetledveloppementdapplicationsoffline utilisationdunmcanismedevuescommesystmederequteprincipal

Documents et vues sous CouchDB


Une instance de CouchDB peut accueillir plusieurs bases. Au sein de chaque base, les documents sont stocks dans une unique collection sous la forme cl/valeur. La valeur du documentestsauvegardeauformatJSON.Pourchaquedocument,lensembledesversions est stocke.Une nouvelle version est cre automatiquement pour chaque modification du document.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 47

LAPIHTTPRESTdeCouchDBestrelativementrudimentaireetnepermetpasbeaucoupplus que le modle CRUD des bases de type cls/valeurs. En gnral, les dveloppeurs CouchDB utilisentlemcanismedevuesfourniparlabaseafinderaliserdesrequtes.Lesystmede vue consiste en une requte MapReduce. Gnralement, on considre quil sagit du seul moyendaccsenlectureauxdocumentssousformesdeliste.Ilexistedeuxmodespourles vues: Mode document : Les vues sont stockes dans des documents spciaux appels documentdedesign.Cesvuesdisposentdecacheetsonttrsrapides Modetemporaire:Lavueestinterprteetexcutelavole.Onrservecemode audveloppementcarsesperformancessontlargementinfrieurescelledumode document

Par dfaut, le langage utilis pourle dveloppement des vuesestle Javascript.Il existedes pluginsafindedvelopperdansdautreslangagesinterprts(PHP,Ruby,Python,).

Exemplesdevues: Slectiondesdocumentsdontlechamptypeestproduct Comptabilisationdesdocumentspartype Listedestagsetdunombredarticlesassocischacundestags ...

Architecture
Danssaversionlaplussimple,uneinstallationdeCouchDBsecomposedununiqueserveur. LemoteurdestockageembarquesonpropreserveurHTTPpermettantauxclientsdeffectuer desrequtesvialAPI:

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 48

Afin daugmenter les performances et/ou de permettre lapplication de tourner sur plusieurssites(typiquementdeuxdatacenters),ilestpossibledetravailleraveclemcanisme de rplicationbidirectionnelle de CouchDB.Ilpermetde synchroniser tousleschangements intervenussurunebaseversuneautre.

En utilisant le mcanisme de rplication, chaque serveur dispose en permanence de lensemble des donnes du site (moyennant les dlais de rplication). Cela permet de distribuer les traitements (lecture, criture, vues, ). Cette pratique a quand mme une limite: lataille de labaseest limite parles capacits de stockage du plus petitserveurde stockage. Aucun mcanisme nest embarqu par dfaut dans CouchDB pour rsoudre ce problme.OnpourrananmoinssappuyersurloutilBigCouchdontcestprcismentlerle. BigCouchsinsrecommeunebriqueadditionnelledevantleclientetsecomportecommeun proxy qui rpartit les requtes sur diffrents nuds CouchDB dont il assure la gestion. Du point de vue de lapplication cliente, cet lment additionnel se comporte de manire transparente,linterfacedaccsBigCouchtantcompatible100%aveccelledeCouchDB.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 49

BigCouchpermetparailleurs la distribution destapes de mapping surplusieurs nuds du cluster,cequipermetd'acclrerlestraitements. Ilestparailleurspossibledeprocderdesrplicationsbidirectionnellesentreinstancesde BigCouchafindassurerunerpartitionentreplusieursdatacenters.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 50

Outils de dveloppement
StabilitdelAPI: On peut considrer lAPI de CouchDB comme stable depuis la publication de la premire distributionduprojetenaot2010.Depuiscettedate,onassisteuniquementdesajoutsde nouvellesfonctionnalits.

Langagessupports: La construction dune application base sur CouchDB est trs diffrente de ce qui est habituellementpratiqueaveclesautresSGDB.Eneffet,ilestimpossibledeprocderdes requtesuntantsoitpeucomplexessansutiliserlemcanismedevuesdeCouchDB.Pourdes raisons de performances, il est par ailleurs indispensable de stocker les vues dans les documents de design de la base de donnes. Ces deux contraintes impliquent que les dveloppeursprocdentdansunpremiertempslcrituredesvuesauseindelabaseavant delesappelerenutilisantlinterfaceHTTPdeCouchDBdepuislapplicationcliente. Bien quil soit possible de procder des requtes HTTP directes depuis les applications clientes, il existe des bibliothques de plus haut niveau qui simplifient le travail du dveloppeur dans diffrents langages.Le tableau cidessousliste quelques bibliothques de bonnequalitpourlesprincipauxlangagesutilisspourlaprogrammationWeb:

Langage Java

Bibliothques Ektorp:unecouchedepersitancepourCouchDButilisant JSON jcouchdb:undriverCouchDBpourSpring CouchDB4J:unebibiliothquepermettantlamanipulation POJOdedocumentsetdevuesCouchDB

Python

couchdbkit:unebibiliothquepermettantnotammentle mappingentredocumentsCouchDBetobjetsPython. couchdbpython:uneautrebibliothque,plusriche notammentsurleplandelamanipulationdesvues

PHP

PHPillow:unebibliothquepermettantlemappingentre desobjetsPHPetdesdocumentsoudesvuesCouchDB. Sag:unebibilothquedeplusbasniveaupermettantde requtersimplementCouchDB.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 51

Cohrencedesdonnes: Dufaitdelaconceptiondelabase,lesdonnesnesontpasdistribuessurplusieursserveurs dans larchitecturede CouchDB.Celapermet au systmedassurerune cohrence fortedes donnes. Cela permet mme CouchDB dtre lun des seuls SGBD NoSQL pouvoir respecterlescontraintesACID. Lorsdesrplicationsbidirectionelles,unsystmedegestiondesconflitspermetdersoudre lescaspourlesquelsundocumentauraittmisjoursurlesdeuxserveurs.Celuicisappuie sur lefaitque lors de lamisejour dun document lesversions antrieures ne sontjamais effaces et que les deux mises jours concurrentes seront prsentes dans deux versions diffrentes. Le systme choisit lune de ces deux versions comme version courante mais conservelautre.

Transactions: A limage de la majorit des SGBDs NoSQL, CouchDB nimplmente pas de mcanisme de transaction.Cependant,uncertainnombredoprationsatomiquespermettentdepallieren partieceproblme.

Outil de production
Scalabilit: CommeindiqudanslasectiontraitantdelarchitecturedeCouchDB,uneinstallationnative de CouchDBproposeuniquementune scalabilit concernantlestraitements.Lutilisation de BigCouchpermetnanmoinsdobtenirlascabilitdesdonnesetdaugmenterladistribution destraitementssansrequrirdemodifierlapplicatifcible.

Tolrancelapanne: Le systme de rplication permet de mettre disposition plusieurs nuds CouchDB ventuellementrpartissurplusieursdatacenters.Celaluiconfreunersistancelevela pannelaconditionexpressequechaquebasesoitrpliqueaumoinsunefois.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 52

Gestiondessauvegardes: Pourgrerlessauvegardes,onutilisegnralementleprocessusderplicationdeCouchDB. Celuiciesteneffetcapabledefonctionnersurunebasequelonconnecteuniquementlors des oprations de sauvegarde. Il est ensuite possible de procder des sauvegardes des fichiersdecettemmebase.

Conclusion
Lintrt majeur de CouchDB rside dans limplmentation dune logique documentaire radicale.Celanevapassansheurtspourlesdveloppeursquiutilisentpourlapremirefois cettetechnologiesurunprojet.Illeurfauteneffetpasserparunephaseunpeufastidieuse dapprentissage du design des vues. Cette approche savre nanmoins extrmement puissanteunefoismaitrise.Lesoutilsdemanipulationdansleslangagesdeprogrammation nesontpasncessairementlesplusaboutismaisrestentcorrectstantquelonsecantonne auxlangagesWebmajeursquesontPHP,JavaetPython. Parailleurs,CouchDBnestpasproprementparlerunebasedistribue.Ilfautenpasserpar desoutilscomplmentairespourdistribuerlesdonnesetlestraitements.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 53

CONCLUSION
NoSQL : pour quels usages ?
Nous avons vu que NoSQL tait une technologie qui avait t principalement dveloppe dansuncontexteolavolumtriedesdonnesrendaitindispensablelutilisationdesystmes distribus pour assurer leur stockage et leur traitement. Il sagit finalement du cas le plus videntquipourraitdciderdelutilisationdunetechnologieNoSQLdansunprojet. LaplupartdesmoteursNoSQLapportentparailleursuneflexibilitplusimportantequeleurs pendants relationnels en ce qui concerne la gestion de donnes htrognes.Cela entrane unesimplificationimportantedesmodlisationsqui,lorsquellessontbienmenes,peuvent aboutir des gainsconsidrables en termes de performances pour une application.Le plus souventcelapeutaussisavrerbnfiqueentermesdemaintenabilitsurlapplication. Dans tous lescas,une analyse poussede lapplication doittre mene. Cette analyse doit permettrederpondreplusieursquestionsessentielles.

Existetilunproblmefondamentaldedesigndansmonapplication? Pouruneapplicationexistanteetavanttoutechose,ilestimportantdesassurerparunaudit de lapplication que celleci ne prsente pas de dfaut de conception entranant des problmesdeperformancesimportantsoulimitantsacapacitvoluer.

MonapplicationdoitelletreconstruitesurunebaseNoSQL? Les technologies NoSQL sont populaires, notamment auprs des dveloppeurs qui sont toujours trs enclins vouloir tester de nouvelles solutions. Mais il se peut que votre applicationnesoitpasunebonnecandidatepourtreimplmentesousNoSQL.Laplupart du temps, les applications ayant une forte composante transactionnelle ne sont pas de bonnes candidates uneimplmentation audessusdune base NoSQL,bien quilexiste des contreexemples.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 54

MonapplicationpeutelleintgrerdestechnologiesNoSQL? Sivotreapplicationsouffredesousperformancesquinesontpasliesuneerreurdedesign delabase;etquecellecinestpasunebonnecandidateunpassageentotalitsousune base NoSQL, alors il peut tre possible d'optimiser les choses en plaant uniquement certainespartiesdel'applicationsousNoSQL. Lapplicationrsultanteutilisera doncNoSQLuniquement pour lesparties quile requirent. Cette approche estle plus souvent choisie pour une application existante, pour dvidentes raisonsdecot. Rappelezvous toujoursqueNoSQLne signifie pas No SQLmaisbien NotOnlySQL.Dansun certain sens, le mlange des technologies pour obtenir le meilleure de chacune est une approchefondamentalementencourageparlestenantsduNoSQL.

Quelparadigmechoisir? Ilnexistepasderponsestoutfaitecettequestion.Cependant,onauraplutttendance privilgier les modles documentaires de manire assez mcanique pour plusieurs raisons dontlaplusvidenteestlasimplicitdemiseenuvre.Ilsepeutnanmoinsquilnesagisse pas de la meilleure solution (application danalyse, BI, ...). Sagissant dun choix aussi structurant,ilconvientdanalysersystmatiquementlesdiffrentespossibilitsquisoffrent vous.

Quel(s)outil(s)choisir? Cechoixnepeutintervenirquelorsquonarpondulensembledesprcdentesquestions. Outre les caractristiques purement techniques de la solution retenue qui seront videmmentdterminantes,ilestconseilldeprteruneattentionimportanteautempsde monteencomptencedesquipesdedveloppement.

NoSQL : les solutions matures


Comme nous lavons indiqu plus avant, lessentiel des acteurs de la mouvance NoSQL utilisentdeslicencesopensource.Parmicesproduits,lestroissolutionsquenousdcrivons dans ce livre blanc ont particulirement retenu notre attention et sont aujourdhui suffisammentmaturespourtreutilisesenproduction.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation

NoSQL : les meilleures


solutions open

source
Page 55

NousavonsparticulirementapprciMongoDBpoursamaturit,sasimplicitainsiqueson intgrationpluttrussiauseindeslangagesdeprogrammation.Enoutresonintgration diffrentsframeworksnoussembleunavantageindniableenfaveurdeseproduit. CouchDB semble un peu en retrait par rapport MongoDB, notamment du fait quil ne sagisse pas nativement dune technologie distribue. En revanche, CouchDB offre des perspectivesintressantesentermesdedesignapplicatif.

Cassandraestprobablementleproduitlemoinsmaturedestroisetceluiquiseraleplussujet deschangementsmajeursdanslefutur.Ilsavrenanmoinsceluiquiproposeledesignle plusintressantentermesdetopologiesderseaux.Sacapacittredploydemanire compltement distribue sur plusieurs datacentersen faitun choixincontournable dans les applicationsquimanipulentdesquantitstrsimportantesdedonnes.

DautreslivresblancsSmilesontdisponiblesenligne,enlibretlchargement,sur www.smile.fr/http://www.smile.fr/Livresblancs.

CopyrightSmileOpenSourceSolutionsToutereproductioninterditesansautorisation