Quelques considérations sur les Widgets iGoogle
12 mars 2008 par zero-zombie
J’ai récemment remis les mains dans le cambouis pour réaliser un widget iGoogle correct.
Une chose m’avait échappée dans la doc lorsque j’ai commencé à coder des modules (ou bien ça n’existait pas encore (Edit : c’est bien ça, ces fonctions ont été rendues publiques le 16 juillet 2007), ou bien je n’avais pas compris son importance), c’est qu’il est possible de mettre en cache des fichiers. Il ne s’agit pas d’utiliser le cache du navigateur, mais un cache proxy fourni gracieusement par Google… et là je dis : “banco”.
Si vous faites un widget “international” et que celui-ci rencontre le succès, votre serveur va vite le sentir passer. C’est le cas d’un widget que j’ai réalisé il y quelques années et qui est installé sur des dizaines de milliers de pages personnelles… et sites web.
Et forcément, le trafic est très important puisque les utilisateurs vont très souvent sur leur page personnelle, et que vous héritez de tout le trafic des pages qui incluent votre widget. Bref, c’est énorme et les logs de mon serveur me l’ont maintes fois confirmé.
Si votre widget est stable, vous avez tout intérêt à mettre tout ce que vous pouvez en cache, et ce pour plusieurs raisons :
- alléger la charge de votre serveur
- offrir une meilleur stabilité
- offrir de meilleures performances
Si le premier point est évident, les deux autres peuvent être plus flous. La raison pour laquelle les performances vont être décuplées par le cache Google, c’est que leur infrastructure est forcément meilleur que la votre. Bien sûr, votre widget s’affiche peut-être très rapidement chez vous, mais si vous faites un gadget international et que vous regardez vos stats, vous verrez que la France n’est pas si importante que ça. En général, la majorité de votre trafic viendra des States (et ça n’est pas vraiment un problème) mais vous avez de bonnes chances d’avoir un important trafic venant d’Asie (Chine, Corée, Japon pour l’essentiel). Et les connexions avec l’Asie sont en général très lentes.
Avec le cache, vous profitez d’un proxy proche géographiquement de l’utilisateur, et les performances dans les pays les plus éloignés s’en trouve très, très sensiblement améliorées.
Quant à l’histoire de la stabilité… eh bien une fois de plus il s’agit de profiter de la qualité de l’infrastructure technique de Google qui est très certainement supérieure à celle de votre hébergeur, mais aussi parce que parfois vous avez besoin de faire des opérations de maintenance.
Si vous êtes un webmaster consciencieux, vous réalisez de préférence ces opérations en heures creuses, c’est à dire entre 2h et 5h du matin. Sauf que si votre audience est internationale, il n’y a plus d’heures creuses. Et que si vous avez une indisponibilité d’une heure, vous pouvez recevoir un paquet d’emails vous signalant le problème (et chose amusante, dans une multitude de langues auxquelles vous ne comprenez pas un traître mot).
Bref, le cache permet également de masquer une éventuelle indisponibilité technique de votre serveur en se réfugiant derrière le proxy.
Pour plus d’infos, consultez la doc Google concernant les méthodes _IG_Get…

