Author Archives for

Sphère publique à infrastructure médiatisée

Première réaction à l’article Michelle Blanc sur son blog suite à une lecture faite il y a un moment sur le site de Danah Boyd. Je consulte régulièrement les articles de madame Blanc et suis habituellement étonné de la complétude de ses analyses, cependant cette fois, je reste sur ma faim. Aie !


Madame Blanc y dresse un parallèle très parlant le couple téléphone-télévision et facebook-internet. Certes ces derniers sont les successeurs des premier, et bien entendu je partage l’opinion que diaboliser n’a pas de sens (voire même sera contre-productif). Il me semble par ailleurs qu’un des commentaire de cet article est plein de bon sens :
1 – Si tu n’as rien à dire de gentil, ne dis rien! En bref, aucun bitchage n’est toléré, sous peine de devoir s’excuser à la personne par le même média et de retirer les commentaires faits.
2- Aucune médisance sur sa propre personne n’est toléré, si qqn t’écrit qqc de méchant sur ton mur, tu l’enlèves illico de tes amis.
3- Aucun inconnu accepté dans le réseau.”.


Il y a cependant une différence qui me semble essentielle entre les réseaux sociaux et le téléphone : le coté public des réseaux sociaux (“sphère publique à infrastructure  médiatisée, pour reprendre la terminologie de madame Boyd.)  Le téléphone relevait à l’époque de notre adolescence de la sphère privée. C’était une conversation point à point, sans personne d’autre pour écouter. Du fait de leur caractéristique publique les réseaux sociaux sont loin de cela.

Par ailleurs notre conversation n’était pas susceptible d’être enregistrée, et donc pas fouillée a posteriori, alors que l’un des aspect fondamentaux des réseaux sociaux est la persistance des discussions. Les conséquences à long terme de notre conversation facebookienne sont donc plus compliquées à évaluer que celle de notre coup de téléphone.


La véritable question (et, je l’espère la crainte des parents) n’est pas l’évolution de la technologie mais la différence de portée des actes des enfant et ados, beaucoup plus globale sur les réseaux sociaux qu’elle ne l’était au téléphone ou dans les séances de shopping.
Dans les réseaux sociaux nos jeunes se mettent en scène comme ils le font au lycée (15 à 18 ans) voire même avant. Ils trainent, papotent….bref se sociabilisent. Mais gardons en mémoire néanmoins que nos personnalités ne se sont pas construites au vu et su  de tous, à chaque instant, comme c’est le cas aujourd’hui. C’est en cela que le commentaire au post de Mme Blanc me paraît sage : il faut apprendre à nos enfants a faire supporter les conséquences de ce qu’ils disent et à faire le tri des propos qui les concernent. La seule analogie qui me vient est celle des enfants stars, exposés très tôt au regard du public. Ou celle d’ailleurs d’adultes catapultés du jour au lendemain au statut de star/célébrité (reality show par exemple). Il leur faut un réel accompagnement pour apprendre à gérer cette exposition et ses conséquences.


Faut il cependant diaboliser les réseaux sociaux : NON évidemment. Il faut accompagner et expliquer. Pour cela il faut que le parents comprennent les enjeux et surtout les règles des ces espaces, ce qui me semble être un enjeux plus ardu que le défi lancé à  nos ados. Ces derniers sont nés dans un monde complètement digital et pervasif, et il me semble que notre devoir est davantage de leur faire appréhender le lien entre ce monde et celui des générations précédentes, de juger des conséquences que leur vie publique numérique,  aura sur leur vie (tout court).

Ces articles peuvent vous interesser

Dailymotion condamné mais conforté

images1 Dailymotion condamné mais confortéLe site de partage de vidéos a été condamné à 30 000 euros d’amende par le tribunal de grande instance de Paris, pour ne pas avoir retiré suffisamment rapidement de sa plate-forme une vidéo présentant des extraits d’un film, et surtout, empêché leur réapparition.
blankpix1 Dailymotion condamné mais conforté
Si le TGI de Paris  a estimé que Dailymotion n’avait pas accompli les ” diligences nécessaires en vue de retirer promptement et de rendre impossible une nouvelle mise en ligne du film Sheitan signalé comme illicite “, il faut retenir que le  statut d’hébergeur des plateformes communautaire est ainsi conforté. Ces dernieres ne sont pas responsables du contenu qu’elles présentent. Leur responsabilité s’arretent à la mise en place de moyens efficaces et suffisants permettant de retirer les contenus illicites.
blankpix1 Dailymotion condamné mais conforté
Ce jugement n’intervient pas seul, puisque le 14 Avril dernier Dailymotion avait déjà été sanctionné suite à une plainte d’Omar et Fred pour avoir manqué à « à son obligation de retirer promptement du site les contenus illicites ou de leur en interdire l’accès ». La justice avait soulevé le fait que l’identification des ressources illicites aurait dû être assurée par la plateforme seule sans que les plaignants n’aient eu à coopérer.
blankpix1 Dailymotion condamné mais conforté
mini 83256 omar et fred dailymotion lcen Dailymotion condamné mais confortéLa cour reconnaît par ces décisions que l’hébergeur fournit un service essentiellement technique de mise en ligne alors que l’éditeur a une intention de publication (choix des sources, assemblage et évaluation des informations). La justice a essentiellement pris Dailymotion en défaut pour ne pas avoir empêché des extraits de DVD de réapparaitre après l’assignation d’Ormar et Fred. Les dispositifs de dailymotion (on pense en particulier à la signature electronique mis en place avec le concours de l’INA) auraient du suffire à cette mission.
blankpix1 Dailymotion condamné mais conforté
Ce jugement renforce néanmoins la reconnaissance de son statut d’hébergeur. Cette décision semble donc être en passe de faire jurisprudence pour toutes les plateformes de réseaux sociaux. Il faut noter que cette décision est en contradiction avec celle de la cour de cassation qui avait jugé en Janvier 2010 que Tiscali était reponsable des contenus qu’il héberge (contrefacon de bande dessinée), qui semble dès lors en passe de devenir caduque.
blankpix1 Dailymotion condamné mais conforté
Si Dailymotion était en 2009 le 42eme site mondial en terme d’audience avec 55 millions de visiteurs uniques, Facebook est fréquenté par 540 millions de personnes chaque mois, soit un peu plus de 35% des internautes. Outre les problématiques techniques de filtrage des contenus (par modération humaine, communautaire ou par signature numérique), on comprend que ces batailles sur la responsabilité des plateformes sociales est d’une importance capitale dans le monde des média.

Ces articles peuvent vous interesser

Evolution de l’utilisation des réseaux sociaux

NEW Growth in Adult SNS Use 2005 2009 700px Evolution de lutilisation des réseaux sociaux

Répartition des utilisateurs par réseau social  SNS en aout 2009 :

  • 73% un un compte Facebook
  • 48% ont un profil MySpace
  • 14% ont un compte LinkedIn
  • 1% sur chacun de Yahoo, YouTube, Tagged, Flickr and Classmates.com
  • 10-12% sont sur d’autres sites tels que Bebo, Last.FM, Digg, Blackplanet, Orkut, Hi5 et Match.com

L’étude releve qu’en 2005 la proportion de gens diplomé sur les réseaux sociaux était supérieure de 10 points à celle sur internet, et que la proportion de citadins sur les réseaux sociaux était supérieure de 9 points à celle de l’internet dans sa totalité. Enfin 75% des utilisateurs de réseaux sociaux ont moins de 45 ans. Ces différence ont été effacées en 2009, tant concernant le rapport citadins/ruraux que concernant les niveaux d’éducation.  Le différences sont maintenant plus proche de 3 points.

Il y a dorénavant plus de femmes que d’homme sur les sites de réseaux sociaux (confirmé par l’étude de  …).

Le ratio de personne âgées de moins de 45 ans est maintenant de 79%, et les jeunes adultes y sont sur-représentés.

Ces articles peuvent vous interesser

La consumérisation

La consumérisation de la technologie est un néologisme décrivant la tendance des sociétés de technologies à cibler le marché personnel avant le marché professionnel lors des developpements de leurs nouveaux produits. Il en résulte un changement des équilibres entre les environnements domestiques et les environnement professionnels. En effet, aujourd’hui, les équipements personnels de beaucoup de consommateurs leur offrent plus de possibilité que ce que leur permet leur environnement informatique professionnel.

Ce terme a été popularisé par John Taylor et Douglas Neal du CSC’s Leading Edge Forum. Il est l’un des vecteurs majeurs de transformation du Web 2.0.

Ces articles peuvent vous interesser

Les 20 ans d’innovation a venir

Je reprends ici un article posté en Novembre 2009 par Martin DUURSMA, Vice Président de Citrix Labs et de de la “Chair of the Citrix CTO Office”. Il ne s’agit pas que d’une traduction dans le sens ou je résume également l’article, sans en déformer je l’espère le propos.

Il y a 20 on pensait que le futur de l’IT résiderait dans la standardisation des pratiques de développement logiciel et dans la programmation en langage naturel. Bien peu de personnes prêtaient attention à l’émergence des technologies de communication en ligne, alors que ces dernières ont transformé notre monde en devenant ce que nous appelons aujourd’hui Internet. Ce manque de vision vient probablement de la propension naturelle des techniciens et ingénieurs à se concentrer sur les technologies (comment faire plus puissant, plus rapide) alors que ces questions de spécification techniques ne sont pas seules au  cœur du problème. En prenant un peu de recul sur les outils que nous créons mais également sur l’usage qui en est fait, il apparait que le prochain défi de l’innovation IT est l’interface homme-machine : transformer la puissance brute afin d’en permettre une meilleure intégration dans les vies et le travail des utilisateurs.

Des machines qui écoutent
Le clavier est considéré comme allant de soi et efficace, mais ce dernier est assez peu intuitif. Cet appareil a été inventé en 1874 et continue à limiter les utilisateurs. En effet, il n’y a aucune relation entre la vitesse de pensée et la vitesse de frappe. Les systèmes de reconnaissance vocale font l’objet de recherches depuis de nombreuses années, cependant même leur introduction récente dans les terminaux mobiles ne marquent toujours pas une adoption massive. Lorsque les évolutions issues des recherches auront été implémentées et adoptées, le champ de leur usage s’accroitra de bien des manières.

De la souris au multi-touch
Après le clavier, il est naturel de se tourner vers ce mécanisme de pointage inventé  en 1968 par Douglas Engelbart du Stanford Research Institute. Ce dispositif qui a permis ne grande avancée dans le monde des interfaces homme-machine, n’est cependant pas aussi intuitif qu’on a l’habitude de le penser. En effet, il oblige à coordonner les mouvements d’un dispositif à coté de l’ordinateur, alors que le mouvement se fait sur l’écran. Le touchpad n’est pas plus aisé à utiliser, il est assez peu précis et trop facilement touché par inadvertance. La réelle innovation dans ce domaine est l’essor des écrans tactiles (touch et multi touch) popularisés par l’iPhone et maintenant l’iPad. Cette idée est fondamentalement plus intuitive dans le sens ou il est possible pointer sans intermédiaire (stylet), la chose-même qui vous intéresse (sur l’écran), comme on montrerait du doigt dans la “vraie vie”. Cette évolution est d’une magnitude aussi importante que l’informatique en langage naturel.

Retisser les liens sociaux distendus
L’une des plus grandes évolutions de ces dernières années a été la mobilité : permettre à chacun de travailler d’où et quand il le souhaite. De cette évolution découle le fait que tout peut être décentralisé, et que les sociétés n’ont plus besoin de siège (quartier général). Et pourtant ces derniers existent toujours et nous continuons à aller tous les jours au travail. Tout simplement parce que l’aspect technologique n’est pas, loin s’en faut, le seul qui compte. Une très grande partie de la communication humaine est non verbale (langage du corps, expression faciales…). Une grande partie des découvertes est faite par hasard, grâce aux interactions entre les collaborateurs au sein d’un même bureau. Ce type de contacts informels et de contacts non structurés aide les individus à travailler ensemble de manière plus efficace en renforçant les liens interpersonnels, la culture d’entreprise et l’esprit d’équipe. Cela réaffirme la notion de but commun.

Par le développement actuel de la mobilité nous sommes en train de créer une génération de personne qui travaillent de manière isolée ne développent pas les compétences nécessaires à la mise en place d’un lieu de travail efficace.
Notre challenge pour les 20 années à venir sera donc de recréer ces moments d’interaction de vis-à-vis, quel que soit l’éloignement  entre les collaborateurs. Les réseaux, qui sont déjà en train de s’établir au sein des entreprises, comme ils l’ont fait dans la sphère privée permettent de renouveler les moyens de partager l’information et d’entrer en relation, afin d’amplifier la notion de collaboration, au point de la réelle collaboration physique.

Ces articles peuvent vous interesser

L’energie au coeur des proccupations

Bloomberg vient de racheter New Energy Finance, une société anglaise centrée sur les news, les données et les analyses  sur les énergies renouvelables, les marchés carbones et l’energie nucléaire. Les termes financiers de cet accord n’ont pas été révélés.

New Energy Finance, fondée en 2004, offre des abonnements à des news, analyses et recherches à des clients bancaire, et investisseurs impliqués sur les marchés des énergies renouvelables et les marchés carbone. Cette société est composée de 130 personnes réparties dans le monde entier.

Selon Peter Grauer, chairman, Bloomberg,  “Les problématiques des energies propres et fossiles, impactent tous les segments de notre économie, et cet impact est de plus en plus marqué aux yeux de nos clients. Bloomberg souhaite etre le leader dans l’informationn les analyses et les architectures de trading afin de supporter les solutions à faible emission de carbone.”

Guy Turner, directeur du département “carbon market research”, New Energy Finance, ajoute  : ” Les marchés carbone globaux existeront encore un moment. Cette année le volume des échanges représentera environ 120 milliards de dollars, et nous nous attendons à ce qu’il augmente environ à 2000 milliards d’ici 2020. Les modèles du marché carbone développés par New Energy Finance sont les plus respectés du marché et travailler avec Bloomberg nous permettra de les distribuer là ou ils seront utiles, dans les mains des traders et autres acteurs des marchés.”

On savait déjà que les principaux acteurs de l’économie numérique portaient une attention toute particulière aux questions énergétiques et environnementales lors des constructions de datacenters, et la mise en place de leurs infrastructures,il apparait maintenant que les principaux organes d’informations se préparent également à un nouvel ordre dans lequel l’indépendance énergétique sera plus fondamental que jamais.

Ces articles peuvent vous interesser

Cloud Computing : Accompagner le changement

Au cours de mes pérégrination, j’ai été amené à lire la newsletter de Mai 2009 de Network Instrument  “5 étapes pour accompagner la migration Cloud Computing “. J’ai trouvé l’approche intéressante et ai souhaité étendre la réflexion plus loin que les seuls aspects purement techniques.

A quoi faut-il réfléchir dans le cadre de l’adoption de technologies cloud au sein d’une entreprise ?  En effet, quelle que soit la définition du cloud qu’on puisse prendre, un point commun emerge : le partage des ressources (multi-tenancy). Ces technologies n’ont de sens que dans la démesure. Pour atteindre cette masse critique il faut mutualiser.

Aussi, que le cloud soit interne ou externe à l’organisation, il devra être partagé, et donc géré par un (ensemble) service(s) dédié(s) et transverse(s) à qui reviendra la tâche de gérer les ressources informatiques (stockage, nombre de serveur, monitoring …) Cette gestion, qui était auparavant potentiellement répartie dans les différents service IT de l’organisation sera donc déléguée à un prestataire, une fois encore, interne ou externe… on ne fait que réinventer le services centraux si chers au mainframers.

Il est évident, dès lors, que les grands équilibres vont évoluer au sein des différents services (IT et probablement autres) de l’organisation. Il apparaît certain que les entreprises qui feront le choix d’aller vers le cloud, devront apporter le plus grand soin dans l’élaboration des définitions de services, le choix des technologies et des procédures, la mise en place des équipes et l’intégration des nouveaux processus dans les anciens. Elles devront par ailleurs, et surtout, être très vigilantes dans l’accompagnement qu’elles offriront à leur collaborateurs vers ces nouvelles façons de penser, sous peine de voir les corporatisme, reflexe de refus du changement et autres luttes de pouvoir (hélas inhérentes à toutes les organisations, quasiment quelle qu’en soit leur taille) réduire en miette leurs efforts.

1. Conduire un Audit de pré-déploiement et de préparation

Déterminer les cas d’usage des technologies de cloud computing, les domaines d’utilisation et les conséquences que le remplacement des anciennes technologies et procédures va avoir dans l’organisation. Comment la mise en place d’un service de stockage à la sauce cloud peut elle impacter vos services ?

a/ Techniquement : Déterminer grâce aux demandes utilisateurs (par utilisateur, par département puis au niveau de l’organisation dans son ensemble) les besoins de ressources techniques induite par le changement. Cette étape de dimensionnement doit concerner les serveurs, le stockage, les infrastructure réseau, les nouvelles couches logiciels… On doit prendre en compte des problématique de priorité de service, de sécurité mais aussi d’interdépendance des SI. En effet, lorsqu’il s’agit de relier différents SI (de plusieurs services) on s’assurera que la politique de l’organisation permet ce type de lien, et dans quelles conditions (cloisonnement, asynchronisme des services…). Comment souhaite-ton relier ce cloud aux anciens service de l’entreprises ? quelles API ? Souhaite-t-on pouvoir accéder a différents cloud (interne et externe) et si oui comment s’assurer de la compatibilité (premier pas vers la réversibilité)

b/ Organisationnellement : Si certaines responsabilité doivent être transférées comment l’annoncer, et gérer les problématiques politiques cela induit. Les personne anciennement en charge des activités techniques doivent elles être transférées, doivent elle être réaffectées. Leur métier doit il évoluer pour se concentrer vers d’autres secteurs. Ces questions se posent naturellement pour le ressources techniques chargées de l’exploitation mais également concernant les ressources non techniques (relations clients, suivi , pricing …). Au contraire de nouveaux métiers n’apparaissent-il pas du fait de ce changement ?

c/ Humainement : Ce point découle directement du précédent. Les compétences utiles à de tels déploiements sont, pour certaines, assez spécifiques et éloignées de celles utilisées auparavant. Il faut donc accompagner les collaborateurs de l’organisation vers ces nouveaux usages, les former, leur expliquer en quoi ces changements sont utiles à l’organisation ainsi qu’à eux, ce qu’ils peuvent en retirer (en terme de confort au quotidien, en terme de carrière)… L’évangélisation ne doit pas s’arrêter aux responsables des principaux départements, les personnes qui seront chargées de l’exploitation de ces nouveaux services doivent absolument être convaincues du bien fondé de ces changement et y prendre une part active.

d/ Financièrement : Les échanges financiers au sein de l’organisation sont eux aussi appelé à évoluer. Qu’achètent dorénavant les différents départements ? Un service et non du matériel amortissable. Cela peut changer grandement les problématiques comptables. De plus, à qui est fait cet achat, un prestataire exterieur, un département interne spécialisé ?

2. Déplacer le focus des directions informatiques

a/ Techniquement : L’avantage du Cloud Computing repose sur le fait de placer le fardeau des applications, du stockage réseau et de la puissance serveurs vers un autre réseau, une autre organisation. Les priorité de ces dernières doivent donc évoluer pour ne plus se concentrer sur les problématiques matérielles mais bien sur des questions plus applicatives, architecturales. Elles sont également susceptibles de conserver une activiété de provisionning pour autant que des problématiques de place de marché (avec prix basé sur offre et demande) aient été mise en place. L’infrastructure est alors largement désolidarisée des services a plus fortes valeurs ajoutée

b/ Organisationnellement : Certes, tout un pan de leur activité actuelle leur échappe, mais ces problématiques étant réglées par ailleurs, elles auront toute la latitude de se concentrer sur leur vrai métier : apporter à leur utilisateurs les fonctions qu’ils demandent (développement d’applications spécifique, services transverses…)  tout en garantissant que les développements et autres directions prises resteront en ligne avec les grandes directions choisie par le management (en terme business essentiellement).

c/ Humainement : Les collaborateurs des différentes directions informatiques se réorientent vers des tâches plus métier, et ont un role de charnière plus prononcés entre les études et les service

d/ Financièrement : cf1.

3. Déterminer les priorités

a/ Techniquement : La priorisation des traitements et des dialogues devient critique. En effet l’architecture étant multi-tenants il n’est pas question qu’un seul utilisateurs monopolise une partie des ressources du centre technique qui ne serait pas à la mesure de ce qu’il achète. Il faut donc être en mesure de suivre la consommation des manière très précise, par client, sur l’ensemble des infrastructures (puissance, stockage et réseau) et de prévoir des alertes et autres modes dégradés lorsque ces limites de consommations sont atteintes.

b/ Organisationnellement : L’ouverture du service est elle un impératif à très courte échéance ? Dans ce cas, il est peu probable que les compétences nécessaires se trouvent toutes en interne, il faudra surement passer par de la prestation. Dans un premier temps donc, les structures transverses serviront uniquement, ou principalement, de recette, contrôle le temps que les passages de compétences puissent se faire.  On peut mime penser que certaines organisation préfèreront s’en remettre totalement à un prestataire externe, afin de se décharger complètement des problématiques liées. Cependant la structure de contrôle devra rester afin de gérer la relation avec ce prestataire (controle de niveau de service, de facturation …)

c/ Humainement : Dans quelle mesure souhaite-ton faire évoluer les collaborateurs ? Les compétences doivent elles entrer dans le patrimoine de l’entreprise. Quelle échelle de temps est elle prévue pour faire le passage de compétence ? Bref, dans le cadre de l’internalisation d’un cloud, il faut clairement s’interesser au plan de formation. Dans le cas d’une prestation externe, il semble également judicieux de s’interroger sur la disponibilité chez le prestataires des ressources compétentes.

d/ Financièrement : Quels sont les services devant être toujours accessibles aux clients ? Y a t-il des clients plus prioritaires ? Il faut clairement prévoir des niveaux de services différents aux sein des SLA. Bien entendu ces services devront être sur des bases de facturations différentes.


4. Considérer la redondance des ressources

a/ Techniquement : Les systèmes utilisés doivent tous etre completement redondé. Il faut également penser a redonder les moyens d’accès au cloud (accès internet ou infrastructures internes) afin de garantir la continuité de service.

b/ Organisationnellement : Les services critiques doivent être identifiés, et dès lors géré de façon continue afin que les SLA soient également garanti sur l’organisation et pas uniquement sur les composant techniques. Des audits doivent être mis en place afin de juger la fiabilité des différents composants nécessaires (techniques ou non) au respect du SLA

c/ Humainement : Les compétences doivent etre gérés afin de s’assurer qu’aucun homme clé n’apparaisse, qui détiendrai seul une partie de connaissance critique du système.

d/ Financièrement :


5. Responsabilités et contrôle des fournisseurs de services

a/ Techniquement : Il faut s’assurer que les technologies utilisées dans le cloud et les moyens d’accès sont bien en phase avec les garanties exigées par le SLA.

b/ Organisationnellement : Il faut mettre en place une entité de suivi du SLA, indépendante de celle qui gère le cloud,  qui surveillera le respect du SLA.

c/ Humainement : Les membres des équipes engagées doivent etre impliqués dans la réussite du service de cloud et sensibilisés aux enjeux métiers qui en découlent. Une phase de “formation” (technique et métier) doit précéder leur prise de fonction.

d/ Financièrement : Le respect des SLA prend une importance primordiale dans la facturation du service. Ces derniers doivent donc indiquer de manière très précise les engagements de service demandé par service, en terme de disponibilité, performances, perte potentielle d’information, support.


Ces articles peuvent vous interesser

Cassandra : le modèle de données

Préambule

Cet article reprend (et traduit) en grande partie la page concernant le data model sur lequel est basé Cassandra. J’y ai ajouté d’autres informations (toujours relative au data model) glanées deci-delà et ai tenté de les agréger de la façon la plus cohérente possible pour arriver à cerner ce système. Bien entendu, ce post expose également une réflexion personnelle, et ma perception de Cassandra. N’hésitez donc pas à commenter ou corriger.

Le modèle de donnée de Cassandra est plus ou moins dérivé de celui de BigTable de Google. Les développement de Cassandra ont commencés au sein de Facebook, puis ont été transmis à la communauté Open Source. Cette base de donnée non relationnelle est orientée vers le stockage de données de sites Web de grande ampleur (tels que les réseaux sociaux)

Introduction

Cassandra peut être pensé comme une structure a 4 ou 5 dimensions dont les noms sont les tables, les familles de colonnes, les clés, les super colonnes et les colonnes. Au croisement de ces dimensions on trouve le couple (valeur, timestamp).

Les SGBD classiques sont orientés lignes. Cela signifie que toutes les colonnes d’une ligne sont stockées à la suite les unes des autres, de manière regroupée. Une base de données orientée colonne, quant à elle, stocke les données en privilégiant le regroupement des données des colonnes entières. Une base de donnée orienté ligne stocke les données d’une manière favorisant principalement les lignes (c’est à dire que toutes les colonnes d’une même ligne sont stockées ensemble). Les stockage d’une base de données orientée colonne quant a lui favorisera les colonnes.



Les familles de colonnes permettent une approche hybride. Elles permettent de diviser les lignes (correspondant aux clés) en nombre statique de groupe (les familles de colonnes). Dans Cassandra, chaque famille de colonne dans une table est stockée dans un fichier séparé, et le fichier est trié par ligne (par clé). Cette clé est une chaîne de caractères de longueur quelconque identifiant uniquement chaque ligne.

Les colonnes ayant un lien entre elle et devant être accédées dans les mêmes occasions, doivent idéalement être incluses dans une même famille afin d’en optimiser l’accès.



Les structures de données

La table :

Il faut penser les tables comme des espaces de travail, des domaines. Il s’agit du plus haut niveau d’organisation de Cassandra. Généralement on leur donne le nom d’application. Quoique j’ai pu lire à droite et à gauche, il est possible de créer plusieurs table dans le cluster. Ces tables doivent être déclarées dans le fichier de configuration storage-conf.xml avant le démarrage du cluster.

La famille de colonne :

L’unité suivante d’organisation des données au sein de Cassandra est la Famille de colonne (Column Family). Une table est composée d’une ou plusieurs Familles de colonnes. Le nombre, le nom, le type (simple ou super) ainsi que les autres paramètres des Familles de colonnes sont fixés à l’avance, lors du démarrage du cluster. Il n’y pas de limitation quant au nombre de Familles de colonnes mais ce nombre doit rester relativement restreint.


Dans Cassandra les données dans une  table sont stockées dans un fichier séparé pour chaque colonne family. Au sein de cette famille, les données sont stockées en ligne (correspondant aux clés). Les colonnes ayant des liens entre elles, c’est-à-dire celle auxquelles on accède en même temps, doivent être regroupée au sein de column families. Par ailleurs il peut être intéressant de positionner les données fréquemment au sein d’une famille de colonne et les données les moins fréquemment accédée au sein d’une autre. Par exemple on peut nommer les colonne families : Posts, User ou UserAudit. On est assez proche dans ce cas de la notion de table, au sens SGBDR classique.

La clé

Il s’agit de l’identifiant unique de la ligne de donnée, de l’enregistrement. C’est son nom. On peut requêter sur des ranges de  clés.

Cassandra supporte une option de partitionnement avec un ajout de code minime. En standard, Cassandra fournit le hash-based RandomPartitioner et le  OrderPreservingPartitioner. Le premier permet une répartition de charge relativement efficace sans autre développement. Le second quant a lui permet d’exécuter des requêtes par range (range queries) sur les clés qui sont stockées. Les systèmes supportant uniquement des partitions hash-based ne permettent pas ce genre de requêtes de manière efficace.

Les colonnes :

Une famille de colonnes comportent des colonnes qui peuvent être de deux types : Simple ou Super. Dans ces deux cas, les colonnes au sein des familles peuvent être créées dynamiquement, et leur nombre n’est pas limité.

Les familles de colonnes simples : Les colonnes sont des structures qui sont identifiées par un nom, une valeur et un timestamp défini par l’utilisateur. Le nombre et le nom des colonnes peut être très important, et peut varier d’une clé (key)  à l’autre. Par exemple la clé k1 peut avoir 1024 colonnes/super-colonnes alors que la clé k2 n’en aura que 64.

Les colonnes peuvent être triées par leur nom, ou le timestamp..

Dans le cadre des colonnes simple il est possible d’utiliser des jokers (wildcards) “*” pour effectuer des recherches du type :

  • Table:CF:(key name, *)

Cela ramènera l’ensemble des tuples  (nom de colonne, valeur, timestamp) correspondant

Les familles de colonnes de type super sont des structures qui ont un nom et un nombre infini de colonnes associées. Le nombre de super columns associées à une Famille de Colonne peut être très important. Elles ont les mêmes caractéristiques que les colonnes. L’ordre de tri peut encore être explicitement donné dans un fichier de configuration, pour chacune des familles de colonnes. Les super colonnes peuvent être vues comme des Familles de colonnes au sein d’une famille de colonnes.

 

Famille Colonne CF1

Famille Colonne CF2

Famille Colonne CF3

CF1:C1 (simple)

CF1:C2 (super)

CF1:C3 (simple)

CF2:C1 (simple)

CF3:C1 (simple)

rowid

 

CF1:C2:C1

CF1:C2:C2

CF1:C2:C3

 

 

 

XXXXXXXXXXX1

[value, timestamp]

[value, timestamp]

[value, timestamp]

[value, timestamp]

[value, timestamp]

 

[value, timestamp]

XXXXXXXXXXX2

[value, timestamp]

[value, timestamp]

[value, timestamp]

[value, timestamp]

[value, timestamp]

[value, timestamp]

 

Notation : CFx : Famille de colonne, Cx : colonne, [,] liste, ( x,y ) tuple .

De meme concernant les super colonnes, on peut faire des recherches générique des types suivant :

  • Table:CF:(key name, super column name, *)
  • Table:CF:(key name, *, *)

“:” est un mot réservé et ne peut donc pas composer le nom d’une famille de colonne ou celui s’une supercolonne ou d’une colonne. (La version 0.4 devrait lever cette restriction)


Les points forts

Plusieurs raisons peuvent amener a préférer Cassandra pour alimenter une application web.

Flexibilité du schéma : Cassandra, comme un Document Store, permet de ne pas figer les strucutres qui seront utilisées. On peut en ajouter ou en retirer au fur et à mesure. Par ailleurs les champs peuvent varier d’un enregistrement à l’autre. Attention il faut néanmoins, au moment du démarrage du cluster fixer les nom des tables et des Familles de colonnes qui seront utilisées.  C’est au niveau des colonnes que cette souplesse arrive.

Scalabilité réelle : Cassandra permet de scaler réellement facilement. On peut ajouter une machine à la volée sans avoir a redémarrer aucun process, ni changer les requêtes ou avoir a redispatcher les données.

Connaissance de l’infrastructure : Il est possible de configurer le cluster pour que les données soient réparties dans des racks différents ou des datacenters différents, ce qui permet de gérer de manière fine les problématiques de répartition de charge sur différents sites ou de PRA

Range queries: Certes par rapport aux bases de données relationnelles classiques, ce n’est absolument pas un avantage, tant cette fonctionnalité est standard. Cependant face aux distributed key value store il es réellement intéressant d’utiliser Cassandra, dont le modèle d’implémentation permet de faire des range queries.

Distributed writes: Les écritures n’échouent jamais, il n’y a jamais de single point of failure.

Limitations

La principale limitation concernant les tailles des colonnes et des super-colonnes est que toutes les données pour une valeur de clé, doivent tenir sur le disque d’une seule machine. Parce que la valeur des clés seules détermine les noeuds responsable de la réplication des données, la quantité de données associées à une clé a cette limitation. Cette limitation est inhérente au modèle de distribution.

A ce jour Cassandra a également une autre limitation : au pire des cas, les données pour une valeur de la pair (clé, famille de colonne) seront entièrement dé sérialisées en mémoire  lors d’une requête de lecture  (mais jamais pour une  écriture). Cet inconvénient sera levé dans une version future.

Example:

Dans ce paragraphe nous ne verrons que l’exemple proposé sur le wiki de Cassandra. Néanmoins, je reviendrai sur un exemple plus détaillé dans un autre post.

On peut penser au nom de chaque super colonne comme un mot clé, et les colonnes associées comme contentant des docids, avec des informations de classement (rankinfo) et d’autre attributs. Si les clés représentent les userids, on obtient un index par utilisateur.
C’est ainsi qu’est fait l’index par utilisateur dans la recherche au sein de la BAL (inbox) sur facebook. De plus, puisqu’on a la possibilité de stocker les données sur le disque par timestamp, il est très simple pour ce type de système de répondre à des requêtes du type “donne moi les 10 messages les plus récents”.

Conclusion


Références :

http://wiki.apache.org/cassandra/DataModel
http://code.google.com/p/the-cassandra-project/wiki/DataModel

http://wiki.apache.org/cassandra/ClientExamples
http://blog.evanweaver.com/articles/2009/07/06/up-and-running-with-cassandra/

Pour obtenir des explications sous forme graphique, merci de vous reporter aux slides PowerPoint de présentation présentés lors du SIGMOD 2008.


Ces articles peuvent vous interesser

Extension pour Firefox 3.* et 4 : All in one mouse gestures

Tout comme ce que j’avais fait pour les onglets (tabgroups) voici une version modifiée de All-in-one Gestures 0.19.1.

C’est encore une fois fourni sans garantie, mais étant donné que cela me rend bien service, ca peut dépanner quelqu’un d’autre.
Pour le téléchargement c’est ici.

Ces articles peuvent vous interesser

Le cloud computing…oui, mais pour quoi faire ?

Les articles concernant le cloud computing que je lis, sont de plus en plus orienté vers la technique. Il s’agit souvent de querelles de clocher pour savoir si telle ou telle solution commerciale ou technique est avantageuse par rapport à ses concurrentes. Mais du point de vue de l’utilisateur, a quoi peut donc servir le cloud computing ? Et lorsque je parle d’utilisateurs, je pense à l’utilisateur final, celui qui consomme réellement des services. Monsieur Lambda, non informaticien qui fait ses courses, retire de l’argent, appelle ses amis pour organiser une soirée… Voici donc mes premières réflexions dans ce sens.

Si on en revient aux définitions les plus communément admises, le cloud computing permettrait d’arriver à ces notions :

  1. Illusion  de ressources infinies, d’ou, pour l’utilisateur du cloud, l’élimination du provisionning
  2. Élimination des droits d’entrées, autorisant des démarrages réduits puis un accroissement des ressources selon les besoins
  3. Paiement à l’usage a court terme et élasticité

Bien, mais ces notions sont encore très proche de l’ITT…essayons donc de nous éloigner un peu : Quels services ces 3 avantages du cloud pourraient elles nous amener:

  • Des guichets matériels et logiciels permettant de disposer immédiatement (ou réellement très rapidement) de puissance de calcul et de logiciel dans des domaines relativement variés
  • Remplacer tous les outils de bureautique actuellement disponibles : que ce soit le partage de fichier, le stockage de document, la gestion des agendas… bref nous amener a un poste de travail 100% virtualisé. Ce poste de travail étant bien entendu toujours a jours en terme de version, patch de sécurité…
  • Permettre une meilleures collecte/interprétation  des diverses données que nous manipulons, et en faciliter l’accès. Tout savoir de partout !
  • Permettre une disponibilité des services 24×7
  • Faciliter l’apparition de nouveaux services, en rendant les cycles de développement, recette plus rapides
  • Accroître l’agilité des départements informatiques et améliorer le taux d’utilisation des machines
  • Permettre une réduction des latences, de la consommation de bande passante.

Mais là encore, avons nous pris assez de hauteur. C’est loin d’être sûr ! En effet si ces concepts parlent sûrement à des maîtrise d’œuvre informatique je ne suis pas sur qu’elle éveille beaucoup d’intérêt chez M. Lambda. Nous en sommes toujours aux avantages que le cloud peut avoir aux yeux des fournisseurs de services…. reculons encore.

Pour tenter de voir comment le cloud pourrait me rendre la vie plus simple, j’ai tenté de trouver les principales choses que je souhaiterais, en tant qu’utilisateur

Services en lien avec la vraie vie
1.  Faire mes courses, de chez moi (sans interruption due a des maintenances) voire lorsque je me déplace ne pas faire la queue à la caisse des supermarchés.
2.  Pouvoir suivre mes compte en banque et placements potentiels, consommation  (électrique, téléphonique, eau) de n’importe ou et n’importe quand.
3.  Disposer des informations qui me sont utiles au bon moment, au bon endroit (resto proches, mes RV, …).
4.  Pouvoir envoyer lettres numériques et suivre leur expédition (ainsi que celles de colis que je reçois)  facilement de n’importe ou.
5.  Trouver, visiter, réserver mes vacances rapidement en se basant également sur des avis d’experts et des recommandations.
6.  Pouvoir prévenir un service de baby-sitter que je vais être en retard et qu’il faut aller chercher mes enfants.
7.  Surveiller ma maison pendant son absence.
8.  Vérifier que les enfants sont bien rentrés et que leur devoir sont faits, lancer la décongélation, cuisson du repas avant de rentrer à la maison.

Homo Connectus
9. Rester joignable par mail, SMS ou téléphone tout le temps (euh….en fait, à ma guise).
10. Travailler de n’importe ou sans problématique d’accès à mon environnement

Service à valeurs légale, sécurisés
11.  Trouver l’état de mes inscriptions un organisme, un concours… Faire mes démarches administratives de manière centralisée (a temps et sans  peine) et payer mes quittances et factures
12.  Stocker mes documents de façon sure (avec éventuellement une valeur légale), possibilité de stocker mes médias (musique et vidéo) numérique de façon sure et de l’écouter par n’importe quel biais de façon récurrente.

Interopérabilité et Réversibilité
13.  Pouvoir interagir entre mes différents comptes (facebook, mail, supermarché en ligne…) à ma guise.
14.  Pouvoir transférer en quelques clic mes données d’un fournisseurs de service à l’autre ; puis les supprimer sur le premier.

Qu’en ressort il ? Que le consommateur, en l’occurrence moi, souhaite accéder de façon pervasive (omniprésente)  (9 et 10) à une large gamme de services (1 à 8 ) de façon plus intégrée (13) et en complète adéquation avec les évolutions de la société (1 à 8, 11 et 12).  Cela implique les services doivent être mis avec un bien meilleur time to market, et donc une réduction du temps dédié aux étapes de prototypage, développement etc … Bien entendu la qualité de service doit être au rendez vous sous peine de faire partir les usagers du service. La volonté d’interopérabilité (13) et de réversibilité (14) nous mène rapidement à l’ouverture et la standardisation des composants utilisés. On voit de même que certains services de personnalisation (3)  nécessitent des capacités de traitements importantes pour savoir analyser (data mining) les déplacements et comportements afin de me fournir les informations les plus adaptées.  Les problématiques de stockage et d’archivage nous amènent quant à elles assez rapidement à la sécurisation des données, ainsi qu’à leur accessibilité.

On constate, sans grande surprise, que les qualités du cloud vont dans le sens des attentes des utilisateurs. Il paraît donc sage pour un fournisseur de service de regarder dans cette direction faute de voir ses concurrents plus innovant  prendre un sérieux avantage.

Diapositive 17

nIllusion de ressources infinies, d’ou l’élimination, pour l’utilisateur du cloud, du provisionning
n
nElimination des droits d’entrées, autorisant des démarrages réduits puis un accroissement des ressources selon les besoins
n
nPaiement à l’usage a court terme et elasticité

Ces articles peuvent vous interesser