Archive for category web

Nodecast : évolution d’une architecture web

Après ces quelques mois sans nouvelle, voici un article de mes dernières avancées sur mon projet Nodecast. En effet depuis mon dernier article Nodecast : architecture d’une application web il y a eu quelques changements d’implémentation.

Constat et évolution

Tout d’abord Gearman qui était idéal sur le papier s’est avéré très instable à l’usage, comme l’ont constaté d’autres développeurs sur la liste de diffusion. Ils ont l’air malgré tout d’avoir confiance en leur produit car ils vont ouvrir un service d’hébergement de files d’attente basé sur German : GearmanHQ.

Après quelques recherches je me suis finalement dirigé vers un serveur de files qui implémente le protocole AMQP ce qui permet de ne pas dépendre d’un serveur en particulier. Plusieurs serveurs libres l’implémentent, comme RabbitMQ (racheté par VMware), ActiveMQ ou Qpid.

L’autre problème est venu des workers qui traitent les données envoyées par le client desktop ( nodecast-gui ). Le code Ruby était tellement lent qu’il fallait parfois plus de 1 minute pour effectuer un traitement de parsing et insertion dans MongoDB. Je pense que le problème venait de la pile Ruby / Mongoid / Mongodb ruby driver et non de Ruby seul, mais il n’est tout simplement pas concevable que le worker qui intègre dans la base les processus utilisateur met plus ou moins 2 minutes pour effectuer 1 traitement avec une charge CPU maximale.

J’ai donc décidé de récrire les workers ainsi que le dispatcher, en C++ avec l’aide de Qt. Mes tests en développement sont passés à moins de 1 seconde sur le worker process, le plus lourd…. Evidemment l’effort de développement est certes plus conséquent mais les résultats sont largement payant pour que cet investissement technique paye.

Qpid quant à lui s’est pour l’instant imposé de lui même, car il est le seul à proposer une API C/C++ fonctionnelle. Des plugins permettent de lui ajouter une persistance sur disque, des fonctionnalités de cluster, du support SSL et XML en natif. Il fait d’ailleurs partie du coeur de la solution de Red Hat Enterprise MRG. Cette architecture représentée par le schéma plus bas reste tout de même à valider par l’épreuve du feu de la production.

Ingénierie

Néanmoins il est à mes yeux évident qu’un service web ayant pour objectif à moyen/long terme la prétention de monter en charge, se doit d’avoir une architecture scalable et cela dès sa conception. C’est toute la différence entre créer un site web et créer une architecture web, ou bien entre le développement logiciel et l’ingénierie logicielle. Cette dernière implique une réflexion sur les méthodes de travail, les outils à utiliser, qu’ils soient ceux utilisés par les développeurs que ceux à utiliser dans l’architecture;  la veille techno, etc. En somme tout ce qui permet d’optimiser sa productivité, l’architecture mise en place n’en sera que le reflet, réussi ou pas, de ces choix…

Voici un exemple du résultat de l’ingénierie logiciel avec cette présentation de l’architecture logicielle de la nouvelle version de LinuxFR.org l’un des plus gros site technique francophone.

Implémentation

Pour revenir à Nodecast, les workers utilisent les drivers natifs de memcached, pour invalider le cache dont la page a été mise à jour, de MongoDB et de Qpid, ce qui permet, en ayant aucune couche d’abstraction intermédiaire d’obtenir les performances maximales. Le framework Qt permet d’obtenir une certaine simplification du développement, grâce entre autre aux signaux, même si en effet la bibliothèque Boost intègre cette fonctionnalité.

J’ai développé nodecast-worker de manière relativement générique afin qu’il instancie la bonne classe worker selon le paramètre –worker-type fourni en argument :

nodecast-worker --memcached-ip=127.0.0.1 --memcached-port=11211 
--mongodb-ip 127.0.0.1 --mongodb-base=nodecast_prod --qpid-ip=127.0.0.1 
--qpid-port=5672 --worker-type=process

L’usage du serveur de file Qpid, permet outre le fait de rendre les traitements asynchrones, de monter un cluster de worker d’un même type sans développement particulier. En effet chaque worker s’abonne à la même file d’attente Qpid de type pub/sub (amq.topic). Une routing key appliquée par le dispatcher sert à taguer chaque message envoyé dans la file d’attente. Ainsi les workers filtrent les messages qui leur sont destiné, par exemple le tag worker.cpu pour le worker qui va traiter les messages qui contiennent les données de CPU envoyées par le client desktop nodecast-gui.

Comme il est possible de lancer plusieurs instances worker du même type, chacun des worker dépile la même file taguée ce qui permet de répartir la charge sur plusieurs processus, voir aussi de la répartir sur des machines physiques différentes puisque les workers utilisent des connexions TCP … !

Pour comprendre les rouages et le potentiel d’une telle architecture, je conseille la lecture de ces 2 excellents articles sur l’utilisation d’un serveur AMQP : Introduction à RabbitMQ – AMQP Partie I et Introduction à RabbitMQ – AMQP Partie II

Pour finir sur cet épisode, ce développement me met de plus en plus la puce à l’oreille sur la nécessité de développer un framework / service qui permettrait le développement rapide de workers, de les enchaîner, les monitorer en temps réel et de les administrer. Ce framework / service proposerait en outre l’accès à une multitude de bibliothèques et d’API vers des services externes afin de pouvoir implémenter n’importe quelle idée, de manière rapide, stable et scalable. Cela éviterait de devoir redévelopper la roue et de devoir gérer toutes les exceptions inhérente à l’utilisation d’API bas niveau (timeout, déconnexion, reprise, exception, start/stop, …). En quelque sorte un tarpipe OpenSource mais qui permettrait d’utiliser n’importe quel langage script ou langage compilé. Comme on dit, je dis ça, je dis rien :)

Workflow

Le schéma suivant montre l’architecture en court de développement du backend de Nodecast. On y voit les 3 paliers asynchrones par lesquelles transite le traitement d’un message.

nodecast architecture

Palier 1

Le premier palier nécessite 7 étapes.

  1. Le client nodecast extrait les données système de la machine, génère un XML et l’envoie par un POST (ajout) ou un PUT (update) HTTP.
  2. le serveur web Nginx fait suivre la requête vers le cluster web Thin.
  3. Thin exécute via rack le DSL Sinatra qui sert à créer simplement l’API REST de nodecast.
  4. Ce dernier vérifie dans MongoDB les droits d’accès (couple email / token) grâce à un auth basic request HTTP transmis par le client,
  5. Si l’autorisation a réussie, le code Sinatra stocke le XML dans le GridFS mongoDB, génère une collection de hash et transmet la charge dans queue dédiée au dispatcher.
  6. Le code sinatra génère un XML de réponse au client.
  7. NGinx le fait suivre au client, ce qui termine du point de vue utilisateur le traitement.

L’objectif de ce palier est d’être le plus minimaliste possible afin qu’une autre requête puisse être traité avec le moins d’attente possible. L’auth, la conception de la charge, sa transmission et la réponse au client sont malgré tout chacune nécessaire. Dans cette architecture asynchrone il n’est pas possible de signaler dans la même passe, la bonne fin du traitement à moins de revenir à une architecture synchrone non scalable… A vrai dire il n’est de toute manière pas nécessaire de le signaler puisque le service tourne en arrière plan sur le poste utilisateur.

Palier 2

La transmission de la charge utilise 2 canaux AMQP direct : dispatcher.update ou dispatcher.add. Le dispatcher est lancé selon cette ligne de commande :

 nodecast-dispatcher --mongodb-ip 127.0.0.1 --mongodb-base=nodecast_prod 
--qpid-ip=127.0.0.1 --qpid-port=5672
  1. Il écoute les 2 files d’attente puis lors de la réception d’une charge, il vérifie l’existence de l’hôte à mettre à jour si c’est un update ou bien créé l’hôte si c’est un ajout.
  2. Il injecte ensuite le XML extrait du GridFS dans un QHash Qt. Il sérialise ce QHash et envoie par AMQP la partie dédiée à chaque file de chaque worker concerné (hash["network"] pour le worker network par exemple). En clair, le XML est découpé et chaque morceau est envoyé dans la file d’attente de chacun des workers.

Palier 3

  1. Tous les workers sont lancés et écoutent la file d’attente amqp.topic sur leur tag respectif (worker.cpuworker.loadworker.uptimeworker.networkworker.memoryworker.process).
  2. A réception d’un message, ils le sérialisent, mettent à jour la base de donnée puis invalident le cache de leur page web associée.
  3. Ils transmettent via syslog leurs statuts et leurs exceptions.

Avenir

A ce jour les workers process et cpu ont été réécrit et fonctionnent. Il reste l’implémentation des logs vers syslog ou AMQP afin de tracer les traitements des workers via des streams Graylog2.

Je souhaite remplacer Memcached par Redis pour profiter de ses très intéressantes fonctionnalités. Migrer le frontal web de Rails 2 vers la version 3. Stabiliser le client desktop et lui ajouter toutes les fonctionnalités de la lib SIGAR. Développer un client Android. Terminer le rework et Dominer le Monde :)

, , , ,

Laisser un commentaire

De la webification d’Internet ou la renaissance des applications natives ?

Grande nouvelle, Apple a annoncé enfin un App Store pour les MacOSX. C’est une des fonctionnalités qui ont fait le succès de l’iPhone et il est heureux de voir que cela est pris en compte pour les ordinateurs de bureau.
Je n’ai pas retourné ma veste, je suis toujours un inconditionnel de GNU/Linux et je ne suis pas prêt de changer, hormis de distribution ou lorsque Haiku intégrera un gestionnaire de dépôts.
Je suis heureux car un des arguments qui ont poussé le web à remplacer petit à petit les applications natives est l’absence d’installation. Or le succès de l’Apple Store sur iPhone démontre que les utilisateurs sont plus attirés par les applications natives que web. Je ne vais pas me répéter, cette démonstration est détaillée dans mon précédent billet Desktop 2.0.
Il reste à Microsoft de sortir de sa grotte dans laquelle il est entré en 1990, pour enfin proposer leur dépôt de logiciels.
Je suis heureux de ces avancés chez les concurrents, car j’ai l’espoir que cela facilite le téléchargement et donc l’usage des applications natives. En effet je déplore la systématisation du web d’autant plus sur des domaines où il n’est clairement pas adapté.
Par effet de bord cela pousse au remplacement des ports dédiés par l’usage systématique des ports 80 et 443. Exemple l’assèchement des newsgroups vers des forums web.Utiliser le port 80 fourni un semblant de sécurité à l’administrateur système, ayant moins de ports à gérer sur ses firewall. Mais c’est un très mauvais usage, car de fait la gestion de la qualité de service (QoS) et éventuellement du filtrage devient très compliqué à effectuer.
Pour l’utilisateur c’est une régression totale. L’application native offre une parfaite intégration au bureau et permet la communication avec d’autres applications lancées par lui. En web rien de tout cela, l’application tourne dans un onglet du navigateur, ce qui est au final beaucoup moins pratique pour la retrouver. Il faut oublier l’intéraction avec le bureau, il y a bien quelques gadgets comme les notifications en HTML5 qui est encore très loin d’être utilisé, ou bien via des extensions ce qui revient à … télécharger des applications !
Dernier point important, ces markets facilitent l’achat d’applications. En centralisant le paiement, l’utilisateur peut acheter et télécharger l’application en 2 ou 3 clics. Inutile de sortir d’une grande école de commerce pour y voir l’avantage sur l’ancien modèle physique où il faut se rendre chez un distributeur y acheter sa boite… De même pour les achats numérique ou il faut se rendre sur le site de l’éditeur et soit lui donner ses informations de carte bleue soit avoir un compte Paypal, on est loin de la facilité et la sécurité d’un store centralisé. Le succès du store dédié au jeux, Steam est aussi un autre exemple de l’intérêt de ce sytème pour les éditeurs et les utilisateurs.
Canonical est le seul éditeur GNU/Linux qui souhaite développer un marché basé sur des applications payantes. En effet même si techniquement GNU/Linux possède depuis de nombreuses années des dépôts rien a été fait pour le transformer en “market” afin d’y développer un marché économique. Il faut bien avouer que les Linuxiens ont un rapport particulier avec l’argent, proche du tabou sexuel…Canonical, dont Mandriva aurait bien fait de s’inspirer il y a lontemps, souhaite donc démontrer qu’une économie de marché est possible dans un environnementGNU/Linux et je souhaite très fortement qu’ils y arrivent. D’une part pour qu’il y ait des éditeurs sur ce marché, donc des emplois, et des logiciels natifs. Même si ces nouveaux logiciels ne seront pas dans leur majorité libre, quelle importance si cela intéresse des utilisateurs ? De plus rien ne dit que des développeurs de logiciels libres ne puissent pas bénéficier de donations par le biais de cet app store et pourquoi pas en vivre ! On peut également rêver que Canonical fournisse une API afin de pouvoir effectuer des dons directement depuis le logiciel, avec un prélèvement moindre que Flattr ou Paypal
Pour finir voici l’annonce de Guild software, éditeur du jeux propriétaire et multiplateforme Vendetta Online, qui va utiliser l’app store d’Ubuntu. Par contre aucune information sur la possibilité de payer l’abonnement mensuel directement depuis l’app store.

- Vendetta Online on Ubuntu Linux -
For the last few months we've been working with Canonical, the company behind 
Ubuntu Linux, to be one of their featured products in the new Software Center 
being rolled out as part of the Ubuntu 10.10 "Maverick Meerkat" release. This Software 
Center will basically bring app-store type functionality to Linux, something that could 
greatly help the platform in gaining acceptance as a desktop OS, and allow easy access 
to a variety of software that exists outside the open-source world 
(such as commercial videogames).
Vendetta Online should appear in the new Software Center sometime next week. 
We were intended to be a debut partner with the OS launch (on10/10/10), but a few 
delays popped up here and there; those have now been addressed and we're confident 
you'll see our title appear there in the near future.

2 Commentaires

De l’innovation physiquement décentralisée

On parle beaucoup depuis ces dernières années de logiciel décentralisé par opposition au logiciel de type Minitel 2.0. Une simple recherche rappellera les défauts d’une telle architecture propriétaire et centralisée, façon Facebook, Twitter ou Google.

Je faisais parti d’une association, RubyFrance , dont le but est la promotion du langage Ruby dans la francophonie et localement. Or je réalise l’énorme erreur du combat qui était le mien. En effet je réalise qu’essayer de promouvoir une technologie moderne et innovante tel que Ruby et Rails est une perte de temps dans une région qui a 10 ans de retard sur Paris et où il n’y a aucune startup ou presque qui s’y développe !

Avant de vouloir décentraliser le Web il faudrait avant penser à décentraliser le travail. Pourtant le constat à faire est simple, les entreprises et startups dans la capitale ont beaucoup de mal à dénicher des développeurs, or il faudrait peut être réaliser que le coût du logement ne fait qu’augmenter que ce soit en location ou en achat, les transports qui ne font que se dégrader, le cadre de vie au final est de moins en moins attrayant pour tout le monde à Paris.

J’ai dans mon réseau de nombreux développeurs et administrateurs systèmes extrêmement compétant qui ne vivent pas dans la capital, et pourtant les startups française s’entête à ne recruter physiquement que sur Paris, façon 20ème siècle. Etrange façon de voir l’innovation …

Il existe pourtant au moins 2 manières de “dé-Minitiliser” le travail. Par le télétravail bien entendu, qui n’a cure des grèves des transports lui… Il faut cependant que l’entreprise intègre ce mode de travail, en possédant les outils et l’organisation adéquate et que cela convienne aux employés concernés. L’autre solution est de n’avoir que des bureaux commerciaux sur la capital, et de décentraliser les bureaux techniques en province. Cette 2ème solution n’offre que des avantages et peut de plus y associer le télétravail pour certains employés.

Cependant comment promouvoir des technologies productive, Méthodes Agiles / Redmine / Git / Ruby on Rails / NoSQL / Linux / …, lorsque l’environnement professionnel local reste figé sur des architectures synchrones d’un autre siècle en PHP / Java / DotNet / SqlServer,  avec comme méthode de développement le cycle en V … ?

Pour illustrer, j’avais rencontré à Lyon début 2010, un entrepreneur qui se prenait pour un techos, et qui souhaitait monter un site de recrutement avec webcam (rien de révolutionnaire sauf pour lui). Le tout en PHP / MySQL, ce qui déjà n’est pas d’une grande innovation et inutile de parler framework web type Symfony ou Ruby on Rails, inconnus … J’ai bien compris que c’était pour des questions de coût, et qu’il sous entendait migrer ensuite sur DotNet / SqlServer, parce que c’est plus sérieux quand même … De plus monter un tel site n’était pour lui qu’un assemblage de briques OpenSource existante, sans grande difficulté…

Quand on atteint un tel niveau de nullité, il y a quoi à espérer ? Inutile de dire que le site ne verra sans doute jamais le jour, et surtout pas le succès escompté.

Je réalise que j’ai pris le problème à l’envers, il est nécessaire de pousser la création d’un écosystème local d’entreprises innovantes avant de pousser les technologies associées. Un équivalent Lyonnais de http://paris.startupweekend.org serait le bienvenu !

2 Commentaires

Nodecast : architecture d’une application web

Certains le savent peut-être, je travaille depuis quelques mois sur mon projet personnel Nodecast. Pour résumer, ce projet a l’ambition de proposer un outil de monitoring simple à mettre en œuvre mais aussi un outil de recensement façon Linux counter. Il n’a cependant pas pour objectif de concurrencer un logiciel de type Nagios. Outre le challenge du développement de la partie web, il y a également celui du client desktop en Qt, mais qui fera peut-être l’objet d’un futur billet.

Lire la suite »

, , ,

2 Commentaires

Desktop 2.0

Suite à cet article sur ownCloud je souhaite à nouveau écrire sur ce sujet qui me tient à coeur, l’avenir du Desktop. Par ce titre ironiquo-buzzien je souhaite présenter ce que cela me représente.

Lire la suite »

8 Commentaires

Du modèle économique du libre : status.net wordpress.com shapado.com

Lors de mes pérégrinations récentes à chercher un microblog libre sans limitation du nombre de caractères, on me fit découvrir http://unlimited.status.net/. J’ai bien sûr un compte http://identi.ca/ mais la mode de la limitation de caractères lancées par Twitter m’exaspère au plus au point (c’est plutôt stressant de limiter sa prose pour gagner 3 caractères afin de pouvoir poster…). Bien que répondant à mon besoin, ce sous-domaine est plutôt laid, et les autres sites utilisant le moteur de status.net plus joli comme http://brainbird.net/ limitent malgré tout à 300 caractères…

C’est alors que la lumière fut lorsque je découvris l’offre de “cloud” de StatusNet http://status.net/signup En effet nul besoin de s’auto-héberger (mon temps est précieux), cette offre me permet d’avoir mon propre sous-domaine chez status.net et de l’administrer selon mon bon vouloir, notamment de faire sauter cette stupide limitation de caractères : http://fredix.status.net/

Elle permet aussi d’héberger sa propre communauté http://status.net/whos-using-statusnet, ouverte ou pas, Mozilla ne s’en est d’ailleurs pas privé : http://mozilla.status.net/ On dépasse largement avec tout ça le peu que propose Twitter. Cependant si je souhaite des services complémentaires comme les SMS ou XMPP, Status.net va proposer ce mois-ci une offre premium ajoutant un certain nombre d’options : http://status.net/cloud (SMS, XMPP, fichiers, …) J’espère que le prix sera abordable !

Je trouve cela très intelligent de leur part, et c’est une copie du modèle de http://wordpress.com/. Un logiciel que l’on peut s’installer et héberger soit même, ou bien simplement utiliser la version gratuite, ou la version avec des options payantes. Tout cela avec la garantie de pouvoir récupérer et exploiter ses données à tout instant grâce au code libre téléchargeable.

Cette 3ème voie me semble parfaite pour les logiciels libres qui souhaitent trouver un modèle économique. Il est dommage que pas mal de libristes feignent de l’ignorer, et préfèrent sacrifier le soutient financier du libre sur l’autel de l’auto-hébergement “pure et pas minitel 2.0″ …..

J’estime d’ailleurs que certaines organisations à but non lucratif devraient s’en inspirer afin de financer leurs actions et pourquoi pas même leurs développeurs … Et bien même soyons fou pour financer le développement de services concurrentiels à Google, l’éthique et la confiance accordées à des organisations type FSFEFF ou GNOME Foundation sont d’une valeur inestimable face à n’importe quelle entreprise suspecte par définition. Mais ceci est un autre débat :)

Pour terminer, en plus de status.net et wordpress.com il existe aussi l’excellent http://shapado.com/ logiciel libre de question/réponse qui propose un hébergement avec des options payantes (plutôt chères :(  )  : http://shapado.com/plans Voici un exemple avec un shapado consacré à android : http://android.shapado.com/

2 Commentaires

Juick

Après avoir lu l’article de Nÿco sur Juick j’ai couru tester ce surprenant service de blogging (et non pas micro). Et là surprise c’est exactement ce que j’avais imaginé comme alternative à Twitter. En effet pas de stupide limitation à 140 caractères, Juick peut donc faire office de blog. Support des photos intégré et non pas via un autre site (twitterpic). Et surtout support complet du service par Jabber : inscription et post.

Pour compléter l’article de Nÿco je trouve qu’il manque juste une passerelle vers les salons Jabber. Cela serait tout simplement énorme qu’un salon jabber puisse être associé à un groupe Juick. On aurait ainsi tout l’historique du salon sur le groupe. Par contre il manque pour gérer cela, le support des groupes dans Juick et le fait de pouvoir poster via l’interface web. J’avais pensé à ce type de fonctionnalité pour Noumba, mais le profil des utilisateurs ne permettait pas de l’envisager. Le site est très jeune mais comme il est complètement pensé autour de Jabber cela serait stupide de ne pas implémenter les salons.

Autre surprise, le business model. Enfin un site qui ne se base pas sur la pub ! Il est nécessaire de payer 9.95$ afin de pouvoir poster plus d’une image par 24 heures. On espère le support de la vidéo bien sûr. Comme l’indique Nÿco il suffit d’envoyer l’image au bot Juick depuis son client Jabber. Par contre les proxy de transfert par défaut dans Gajim ne fonctionnent pas et j’ai du ajouter celui de jabberfr (proxy.jabberfr.org). Une fonctionnalité qui permet de remplacer imageshack !

A propos de Jabber on peut constater que cela va limiter le service aux connaisseurs. Pour y remédier il faudrait a mon avis pouvoir poster via l’interface web et ouvrir une API (UPDATE : l’API existe bien ici décrite en Russe :p , et on me signale l’existence d’un client Juick , il n’utilise pas une API mais parse simplement un XML des derniers messages, ). Quant aux tags appelés hash tags sur Twitter, ils servent à compenser l’absence flagrante des groupes. J’y vois personnellement l’intérêt que sur des termes génériques. Exemple un groupe juick au lieu d’un simple tag, par contre un tag pour définir une humeur ou décrire un média. De plus sur un groupe ou un salon à la jabber on peut y définir des droits d’accès et de multiples propriétés qu’on ne peut envisager avec un simple tag. De la même manière dans un blog les tags et les catégories sont complémentaires.

D’après Nÿco, Juick est écrit en Perl/C++ et cela se ressent à la réactivité immédiate du bot et du site. Certes le nombre d’inscrit est encore très faible, cela sera à confirmer. Je regrette juste l’aspect propriétaire du site.

Pour résumer, voilà donc un site très prometteur où l’on sent que l’auteur a un peu plus de 2 de QI, car il faut vraiment être stupide pour avoir laissé des services tiers compléter les manques flagrants de Twitter… Pour l’avenir de ce type de service, je me demande juste si Google Wave ne mettra pas tout le monde d’accord, car outre des fonctionnalités étonnantes, il sera OpenSource et permettra à chacun d’utiliser son propre serveur à la manière de Jabber.

, ,

4 Commentaires

Le big switch 2

11 jours après avoir migré mon blog de mon serveur Typo vers Blogger je viens à nouveau de switcher cette fois-ci vers WordPress.com ! Je parle bien d’un hébergement chez WordPress.com, il ne s’agit pas pour moi de revenir vers un auto-hébergement… Voici les différentes raisons :

  1. WordPress fait parti des blogs les plus avancés techniquement, et il dépasse de loin le service Blogger qui ne gère toujours pas les pages et le menu par onglet sans bricoler la CSS…
  2. Il est Opensource : WordPress.org
  3. L’hébergement chez WordPress.com me permet de m’affranchir de l’administration et des mises à jour.
  4. L’import (articles, commentaires et catégories) d’un blog Blogger en 2 clics.
  5. L’export XML.
  6. 3 Go d’espace disque gratuit.
  7. widgets.
  8. Statistiques de blog sans passer par un service tiers à la Google Analytics.
  9. Leurs services payant propose le Domain mapping pour un coût extrêmement modique (9.97$ /an ce qui revient à 7.27€ /an) ce qui me permet d’utiliser mon propre domaine.
  10. Le paiement via ce type de service est un excellent moyen de financer le libre. Ce dernier point est pour moi prioritaire car il est à mes yeux indispensable d’encourager les business modèles Opensource d’autant plus lorsqu’ils atteignent ce niveau de qualité technique.

Dans de précédent billets j’ai critiqué le fait que le Libre se focalisait sur le logiciel sans penser à fournir de services. J’avoue avoir sauté chez Google sans penser à regarder mon vieux compte WordPress. La faute est réparée.

4 Commentaires

Répartition de charge avec une architecture asynchrone

Avec ce titre pompeux je voulais depuis longtemps écrire un article sur ce thème. Je l’avais un peu abordé avec ce billet sur beanstalkd, cependant je désirais en parler de manière plus généraliste.

Finalement le Grand Ternet a encore une fois encouragé ma feignantise car j’ai trouvé cette suite de 3 petits excellents articles sur haute-disponibilite.net qui expliquent très bien ce domaine :

A compléter avec cet article très riche d’un co-fondateur de last.fm : Anti-RDBMS: A list of distributed key-value stores. Il faut ajouter à cette liste déjà imposante l’étonnant Tokyo cabinet ainsi que nanite basé sur RabbitMQ et cela démontrera aux plus incrédules l’importance d’un bon backend asynchrone et les énormes avantages que cela apporte en terme de réactivité pour l’utilisateur.

Cependant la tentation sera certainement de plus en plus grande d’utiliser les technologies clés en main de cloud computing offertes par Google et Amazon… A quand un service de cloud computing opensource à disposition uniquement, bien sûr, des sites opensource ? :)
Pour finir, à lire également l’excellent article de Greg, {key, value} qui comporte des détails techniques et des exemples (attention par contre sur la partie memcached, car memcachedb ou memcacheq seront plus pertinent pour cet usage).

Laisser un commentaire

Le libre et les services web

Je suis très fan de l’interaction Web Desktop, qui représente à mon sens l’avenir du Desktop. Même si le sujet est redondant avec de précédents billets, voici de la nouvelle matière,

On constate depuis un moment de plus en plus d’outils à installer sur son bureau ou son navigateur, qui sont en liaison avec des services web. Que ce soit les widgets de Vista, Apple, Adobe Air, ou ceux de Google disponibles depuis peu sur Linux (Google Gadgets for Linux). Mais QUID du Libre ?

Tout d’abord Weave, le Google Browser Sync de la Fondation Mozilla. Il permet de synchroniser en temps réel ses bookmarks, son historique, et surtout depuis la dernière version ses mots de passe vers un serveur Mozilla, le tout chiffré bien entendu.

Quand on possède un PC de bureau et un laptop, c’est vraiment la première extension à installer. Celle de Google est intéressante mais stocker chez eux des infos aussi privées est à mon avis très inquiétant, il y a des limites que je n’ai pas envie de franchir surtout s’il existe une alternative libre.
Pour la petite anecdote j’avais demandé à Tristan Nitot aux JDLL 2007 si la MoFo pensait un jour proposer un Google sync like. Il ne s’est pas étendu sur le sujet trouvant l’idée intéressante, alors qu’il avait cité Weave à sa conférence sans fournir de détail. J’aime bien les surprises de ce genre moi :)

Ensuite sur le desktop, RedHat sponsorise le réseau social Mugshot (un friendfeed avant l’heure) et propose le client natif éponyme disponible dans Fedora (oui j’ai migré ! next billet peut être). Ce client se fait discret dans la barre de tâche GNOME et affiche dans une popup les news de ses contacts. Le site est en lien direct avec GnomeOnline , il suffit d’y créer un compte pour se connecter ensuite sur MugShot. Ce site surfe sur la vague réseau social web2, donc l’intérêt est limité aux adeptes, mais il inaugure l’avenir du desktop libre connecté à des services web.

J’attends cependant plus utile et je pense que Jabber a toute sa place dans la compétition. D’ailleurs pour faire suite au précédent billet, j’ai ajouté sur le wiki de jabberfr.org une page qui recense quelques sites utilisables depuis son client Jabber. Sachant que Jabber commence à être implémenté à l’intérieur de client desktop (abiword, …) la boucle sera bouclée :)

On parle souvent du modèle économique du libre, qui tourne essentiellement autour du service. Proposer des services web payant est à mon avis un excellent modèle d’avenir pour financer le développement du logiciel libre. Personnellement si j’ai le choix entre des services web payant mais libres et hébergés par une communauté en qui j’ai confiance, et des équivalents propriétaires même gratuits mon choix est vite fait.

Aussi je suis ravi que le libre commence à suivre cette voie, et c’est sans nul doute la prochain défi qu’il faudra réussir.

Laisser un commentaire

Suivre

Get every new post delivered to your Inbox.

Joignez-vous à 189 followers