Un jour ou l’autre, il est nécessaire de franchir le pas. C’est fait depuis hier. J’ai basculé un premier blog sur un système que mes équipes ont développé en interne : le WolfEngine.

Lorsque SFEIR a eu la possibilité de beta tester AppEngine, en python puis en java, j’ai lancé mes équipes internes sur un développement dont l’objectif était d’apprendre à maîtriser la nouvelle vague technologique qui se profilait. Le projet s’est étalé sur 18 mois et il vient de franchir une étape hier, la première mise en production. Voici un petit bilan.

Les étapes du projet

  1. Début 2008 choix d’une technologie pour monter en compétence sur les technologies cloud : AppEngine. Le fait d’avoir accès au produit en version béta a fortement influencé la sélection de AppEngine par rapport à d’autres technologies types EC2.
  2. Printemps 2008, première expérimentation autour du moteur : développement d’appliquettes, tests de  charge, analyse des techniques d’optimisation à mettre en oeuvre, confrontations aux contraintes de BigTable. L’objectif était de développer le feeling avec ce type de technologie,
  3. Ete 2008, décision de développer un système de blog. Le projet en soit n’est pas très original mais il a la particularité d’apporter suffisamment de complexité tout en posant de vrais problèmes liés à un fonctionnel connu de tous ce qui évite d’interminables discussions sur les spécifications.
  4. Automne 2008, première version java. Cette version n’a jamais été déployé et pour cause, seul le SDK nous était accessible, via le contrat de beta test,…
  5. Hivers 2008, deuxième version, avec un premier déployement (enfin nous avions accès au déploiement java). Techniquement peu abouti, un fonctionnel non finalisé et un manque de disponibilité, cet ensemble nous a contraints à mettre le projet en veille durant le printemps 2009, …
  6. Eté 2009, redémarrage du projet avec pour objectif de passer tous les blogs de SFEIR sur cette infrastructure. Toute la couche de persistances et de services a été refaite  pour utiliser les dernières API (JDO) afin d’apporter plus de cohérence dans l'application. Les objectifs à atteindre étaient : tenir la charge ( !), arriver à un système peu gourmand pour rester en dessous des quotas payants, apporter de la convivialité en supportant l’API Metaweblog qui permet de blogger en utilisant Windows Live Writer, peaufiner le système de gestion des droits utilisateurs (administrateur, éditeur, contributeur), mettre un système de gestion des commentaires, mettre en place un système de comptage de clicks,… WolfEngine propulse enfin un premier blog depuis hier. L’infographie n’est pas parfaite, il reste quelques bugs, mais il faut bien se lancer...

Ce que nous avons appris :

  • développer sur le cloud nécessite un vrai apprentissage. C’est un point à ne surtout pas négliger en d’autres termes : le cloud est pratique, mais pas simple à mettre en œuvre,
  • débugué sur le cloud n’est pas facile, pas de remote debug
  • l’infrastructure Google est efficace, la première page du blog, bien optimisée, s’affiche de manière quasi immédiate
  • il est peu probable qu’il y ait une compatibilité entre les différents cloud
  • il faut optimiser les I/O
  • ne jamais optimiser en local, le comportement local n’est pas le même que le comportement en ligne
  • la mise en oeuvre de JDO par AppEngine n’est pas la même que pour une base de données relationnelle

Ce que nous avons aimé :

  • ne plus se soucier de l’infrastructure
  • pouvoir coder en java et déployer sur internet à des prix compétitifs
  • la console d’administration
  • la simplicité de mise en oeuvre des batchs
  • le démarrage immédiat : installer Eclipse, le plugin, coder, tester, déployer – c’est en ligne

Ce que nous n’avons pas aimé :

  • un bon fonctionnement local n’est pas forcément signe d’un bon fonctionnement en ligne
  • nous avons essuyé pas mal de plâtre, beaucoup de frameworks ne sont pas encore opérationnels sur AppEngine
  • l’absence de lisibilité sur les quotas
  • la difficulté à mettre en place des tests en situation réel

Automne 2009, nous attaquons une nouvelle étape, nous allons solidifier le système, améliorer le code et commencer à nous écarter des fonctionnalités de base d’un blog. Je pense en effet que le blog tel que je le manipule depuis que j’ai créé a19s (2000) va muter. La première chose que je souhaite mettre en oeuvre est la suppression de la page d’accueil chronologique. En effet de deux choses l’une, soit le lecteur est un lecteur régulier, auquel cas il lit les brèves à travers un blog reader (via les feeds RSS), soit le lecteur est de passage sur le site et dans ce cas le contenu chronologique ne met pas assez en valeur le blog. Cette nouvelle version du WolfEngine sera testée avec le site de SFEIR, si tout va bien…