Journal du Net > Solutions > DSI >  DSI > Interviews > Cédric Anès (Twenga)
Interview
 
16/11/2007

Cédric Anès (Twenga) : "Nous ajoutons plus de 200 nouveaux vendeurs par jours"

Le moteur de recherche multilingue indexant 30 000 sites d'e-commerce s'appuie sur LAMP et des technologies développées en interne. Objectif à 6 prochains mois : crawler 100 millions de pages.
  Envoyer Imprimer  

 
Cédric Anès (Directeur technique - Twenga)
 
 
 

Quel est le métier du site Twenga ?

Twenga est un moteur spécialisé dans le shopping sur Internet créé il y a désormais presque un an. Le site référence les offres des cybermarchands en France et dans dix pays en Europe, parmi lesquels le Royaume-Uni, l'Espagne, l'Italie, l'Allemagne et la Pologne. Twenga dispose pour cela d'un robot dont le travail est d'indexer les offres des marchands depuis leurs sites.

De manière comparable à Google, mais appliqué à l'e-commerce, le robot d'indexation va parcourir le Web. Il référence à l'heure actuelle près de 30 000 sites en Europe, dont 8 000 en France. Notre volonté est de faire preuve à la fois d'exhaustivité et de neutralité en référençant petits et grands sites marchands.

En termes d'audience, Twenga, c'est aujourd'hui 6 millions visiteurs par mois, dont 3 millions sur la France, avec une croissance de l'ordre de 30% chaque mois. En ce qui concerne la société, elle compte 50 collaborateurs dont 12 travaillant sur la partie R&D.

Quelles sont les particularités techniques de Twenga ?

La volonté première est de s'appuyer sur la technologie afin de constituer un avantage concurrentiel. Compte tenu de la volumétrie à indexer chaque jour, il était crucial de disposer d'une technologie performante, à la fois au niveau de l'indexation et du moteur de recherche interne.

Ce qui est spécifique à Twenga est donc déjà son robot indexation. Son élaboration a nécessité deux ans de travail pour aboutir à une version opérationnelle. La deuxième particularité, c'est le moteur de recherche. A l'origine du projet, nous sommes passés par une phase d'étude des solutions du marché proposées par les grands éditeurs comme Fast et Antidot. Celles-ci ne répondaient toutefois pas assez aux besoins très spécifiques de Twenga en matière de recherche paramétrique.

"Chaque fois que nous avons un besoin extrême de performance, nous recourons au langage C++"

Ce moteur permet une grande finesse dans les recherches. Ainsi, un internaute faisant une recherche sur des appareils photo, pourra sélectionner bien entendu le type de produit, mais aussi simultanément d'autres éléments comme la marque, la résolution ou les appareils dont le prix a baissé dans les 30 derniers jours. Il est crucial pour un service comme le nôtre disposant d'un stock de produits conséquent de disposer d'un outil adapté pour les trier et permettre à un visiteur de trouver ce qu'il recherche.

Comment se présente le moteur de recherche ?

Il s'agit d'un développement propriétaire en C++. Comme à chaque fois que nous avons un besoin extrême de performance, nous recourons au langage C++ pour concevoir les composants. Le moteur de Twenga est développé pour la recherche paramétrique orientée produits. Il sait très bien gérer l'indexation en mode différentiel. Ne seront ainsi indexées que les données ayant changé - prix, caractéristiques, catégories.

Notre moteur ne va ainsi réindexer que le delta pour répondre plus rapidement. Une autre caractéristique de Twenga est d'être capable de distribuer l'index à travers plusieurs serveurs via des mécanismes de load balancing entre plusieurs répondeurs de notre moteur. Nous n'avons donc à l'heure actuelle aucune inquiétude sur la scalabilité puisqu'il nous suffit de rajouter une boîte pour pourvoir fournir les réponses aux requêtes des internautes.

Quels sont les autres composants de l'architecture du site ?

Nous disposons d'une architecture assez standard en full LAMP avec CentOS comme distribution Linux, Apache version 2, PHP v5 en serveur d'applications et la version 5.1 de MySQL pour la partie base de données. MySQL a d'ailleurs très récemment fait l'objet d'une montée de version. Un projet très audacieux puisqu'il ne s'agit pas encore de la release officielle. Mais la 5.1 offrait des fonctionnalités pour nous très intéressantes en matière de réplication de données.

Notre parc, très évolutif, se compose d'une centaine de serveurs, dont 15 pour les bases de données, 15 serveurs Web, 15 de recherche et le reste pour le crawl, c'est-à-dire l'indexation. Notre philosophie est d'opter plutôt pour des serveurs peu chers et de nous concentrer sur le développement d'applications facilement distribuables.

"Notre parc, très évolutif, se compose d'une centaine de 100 serveurs"

Un tel parc ne pose-t-il pas des difficultés au niveau de la base de données ?

C'est en effet la principale problématique, la difficulté étant de partitionner les données pour démultiplier les possibilités d'écriture. Découper la base de données avec de la réplication pour augmenter le nombre de lectures est un sujet relativement bien maitrisé. En revanche, il est bien plus compliqué de paralléliser les serveurs en écriture. Pour y parvenir, il faut partitionner en amont et construire des applicatif en respectant les règles de partitionning.

Le robot d'indexation est votre principale consommation de ressources ?

La semaine dernière, ce sont 15 serveurs supplémentaires qui ont été branchés et le nombre devrait encore changer avec l'ouverture prochaine de la Hollande. Nous ajoutons plus de 200 nouveaux vendeurs par jours, ce qui nécessite toujours plus de ressources. De même, ce sont 20 millions de pages qui sont crawlées quotidiennement afin de mettre à jour les offres indexées sur Twenga. D'ici à 6 mois, nous pensons multiplier par cinq ce volume de pages.

Il faut préciser aussi que le robot respecte les sites marchands. Il va ainsi contrôler systématiquement les temps de réponse. Notre politique de crawl spécifie également qu'il est interdit de visiter 2 pages consécutives d'un même site dans un délai de 3 secondes afin de ne faire courir aucun risque au site et ne pas monopoliser de bande passante.

Ensuite, à partir du moment où un produit est déclaré sur Twenga, le robot consultera quotidiennement les informations le concernant afin d'effectuer le cas échéant une mise à jour. Pour la partie nouveaux produits, la fréquence peut varier de 1 à 4 jours selon la popularité du vendeur et la quantité de pages.

Qu'impose pour vous cet objectif de 100 millions de pages à indexer ?

Cela nécessite de travailler à tous les niveaux pour optimiser le service, et notamment l'ordonnancement des tâches. L'optimisation se situe également au niveau des nos algorithmes pour télécharger en priorité les données des sites répondant les plus vite, et ensuite de façon progressive sur les autres. C'est aussi du travail de profiling de notre code pour que les applications soient plus rapides et consomment de moins en moins de ressources.

"Le CDN Panther Express se montre très efficace pour la mise en cache d'images"

Quel choix avez-vous fait en ce qui concerne l'hébergement ?

Twenga était dès l'origine un projet européen. Aussi avions-nous cherché une position un peu centrale. Nous avons donc opté pour le premier hébergeur de Hollande pour des temps de réponse tout à fait comparables à ceux de sites comme Yahoo ou Google, de l'ordre de 35ms.

Twenga référençant un grand nombre de produits et affichant donc énormément de photos, nous faisons aussi appel aux services d'un CDN. Nous avons là opté non pour Akamai mais pour Panther Express, qui se montre très efficace pour des sujets simples comme la mise en cache d'images. Les tarifs sont, qui plus est, de 3 à 5 fois inférieurs.

Compte tenu de vos importants besoins en serveurs, avez-vous étudié la piste de la virtualisation ?

Un projet est à l'étude avec une personne dédiée. Sur le papier, VMWare nous apparait très séduisant. Nous étudions également la solution intégrée nativement à Linux et notamment CentOS, Xen. Nous sommes pour le moment sur des prototypes. Il faudra encore plusieurs semaines, voire mois pour une mise en production effective, le temps pour nous de réaliser des travaux de benchmark et des stress tests.

Faites-vous appel à une solution de gestion de contenu ?

Il aurait été trop coûteux en temps d'intégration de mettre en place une solution du marché. Compte tenu de nos besoins très spécifiques, nous avons customisé notre propre CMS au sein d'un back-office lui aussi personnalisé, développé en PHP.

Le leitmotiv qui prévaut pour le back-office est celui de la productivité des équipes. Il est en constante évolution pour rendre les opérations plus simples. Nous sommes sur un rythme de montée de version effréné avec quasiment 2 versions par semaine. Il est important que nos collaborateurs puissent facilement gérer notre catalogue qui compte pas moins de 13 000 catégories de produits distinctes en France.

Les aspects de sécurité et de droit d'accès sont également importants dans le back-office avec plus de 20 collaborateurs effectuant des tâches différentes avec des niveaux de privilèges multiples. Nous avons donc défini une gestion des droits assez fine par pays, par univers et types d'opération pour donner à chaque collaborateur les droits les plus adaptés à son profil.

 
En savoir plus
 
 
 

Comment gérez-vous le multilinguisme ?

D'entrée de jeu, nous avons conçu Twenga pour supporter plusieurs langues grâce au jeu de caractères Unicode UTF-8. Cela signifie qu'il n'est pas nécessaire de dédier des serveurs à telle ou telle langue, mais qu'ils sont mutualisés. Un serveur Apache pourra ainsi recevoir des requêtes pour 10 langues distinctes.

 


JDN Solutions Envoyer Imprimer Haut de page

Sondage

Votre entreprise évolue-t-elle vers une informatique bimodale ?

Tous les sondages