Appengine, WordPress et XML-RPC

Plop à tous

Cet article est seulement la présentation d’un de mes projets qui avance assez rapidement : un Front End de WordPress écrit en Python à utiliser via Google AppEngine.

Le but est de faire un tout petit peu plus que le système de CDN/Cache par Cirrux (que j’utilise et ai présenté dans l’un de mes autres articles). Avec notamment pas mal de fonctionnalités propre aux blogs dont :

  • Stockage des médias en blob dans la base de données
  • Importation XML des données (articles, commentaires, catégories, tags) depuis un export WordPress
  • Importation direct des données par requête XML-RPC
  • Mise à jour dans les deux sens (blog <-> frontend) via XML-RPC (synchro des commentaires, …)
  • Système de cache médias et html
  • Utilisation de templates spécifiques

Bien sûr, tout n’est pas encore utilisable, mais pas mal de choses ont déjà été implémentées, et certaine le seront prochainement.

L’intérêt du système :

  1. Garder un site toujours online (google plante rarement)
  2. Profiter des systèmes de CDN fournit par Google pour son blog (d’autant plus que la rapidité de chargement des pages est désormais à prendre en compte en SEO)
  3. Sécurité renforcée, puisque c’est Google qui sera en première ligne, le front-end s’occupant au pire de faire proxy entre le client et le serveur
  4. Montée en charge plus rare (voir inexistante) puisqu’une fois l’ensemble synchronisé, on pourrait même éteindre le serveur et laisser le frontend distribuer le cache et stocker les coms en vu d’une synchro
  5. Niveau templates, il n’y a que 3 fichiers à modifier

Les désavantages :

  • Google … toujours Google (mais bon ;))
  • Utilisation de templates spécifique, il faudra donc se créer soi-même sa template (ça ma pris 30 minutes pour ma template actuelle donc …)
  • Système d’import lourd, Google risque de ne pas aimer (pas mal de limitation niveau requêtes/CPU)
  • Les plugins du blog seront ignorés (coloration syntaxique, twitter, …)
  • Toujours pas la possibilité d’utiliser pleinement les Appengines comme plateforme de blog (autant utiliser blogger ;))
  • Faut garder un serveur online (à mi-temps au moins pour la publication des articles et les mises à jour).
  • Inutilisable par des blogs intensément commenté (puisque ça supprimerait l’utilisation du cache et augmenterait de façon importante le nombre de requêtes effectuées)

Le projet est sur Github : wpfe-gae. Comme dit, c’est encore en phase de développement intensif, et je ne suis pas sûr des méthodes employées. (une version d’exemple pas encore synchro à voir sur ‘blog-fe.gaetan-grigis.eu’ pas de lien pour éviter le référencement du truc).

Fonctionnement
Côté fonctionnement, c’est assez simple : pour charger le contenu on peut uploader un fichier XML de sauvegarde du blog, ou synchroniser par XML-RPC (depuis les version 2.6, WordPress autorise les requêtes XML-RPC et supporte les API de Blogger et Movable Type).

Pour les commentaires (partie encore à développée), le système devrait proposer un système assez sympa :
Lorsque l’on poste un commentaire, une requête XML-RPC serait envoyée au véritable blog pour stocker le commentaire, et le front-end le stockerait aussi. Dans le cas où le serveur du blog ne répond pas, le front-end mettrais le commentaire en queue pour une mise à jour future.

Sinon, rien ne change niveau affichage des liens/urls, les urls fournit par WordPress serait réutilisées.

Une autre idée aurait été d’utiliser le système de cache fournit par Cirrux, et de développer le Webservice s’occupant des commentaires, permettant ainsi de ne pas avoir à recoder son template pour être supporté par Django, et ainsi changer directement les templates depuis son blog, et garder l’ensemble des avantages de WordPress (plugins, …).

Donc voilà, sous réserve que je ne change pas d’avis et que je ne développe le webservice sur Cirrux, ce blog sera donc hébergé chez Google ;). Mais bon ça prendra du temps.

2 réflexions sur “ Appengine, WordPress et XML-RPC ”

Les commentaires sont fermés.