REX
BD16_REX
BD16_REX
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Retours d’expériences Big Data en entreprise<br />
NEO4J - EBAY<br />
EBAY NOW CHOISIT NEO4J POUR LA GESTION DU ROUTAGE DE SON<br />
SERVICE DE LIVRAISON E-COMMERCE<br />
La société londonienne Shutl était réputée pour l’incroyable rapidité de ses services avant même son acquisition<br />
par eBay, leader mondial du e-commerce. Depuis sa création en 2009, sa mission est de livrer le plus rapidement<br />
possible les achats effectués sur Internet à leurs destinataires. Qu’il s’agisse de jouets, de chaussons, de cravates<br />
ou encore d’iPhones, eBay fait désormais appel à la plateforme nouvelle génération de Shutl pour redéfinir le e-<br />
commerce en accélérant et en simplifiant la livraison des commandes passées sur Internet ou appareil mobile.<br />
eBay élimine le plus gros obstacle entre les vendeurs et les ache- teurs en ligne en proposant une livraison des<br />
articles le jour même. Aujourd’hui, la plateforme de Shutl est à la base des opérations du service de livraison locale<br />
eBay Now dans quatre marchés américains et son extension à 25 grandes villes aux États-Unis et au Royaume-<br />
Uni est prévue pour la fin 2014. Volker Pacher, développeur senior pour eBay, fait partie de l’équipe principale de<br />
la plateforme de services chargée de fournir une API aux transporteurs et aux marchands. Les requêtes envoyées<br />
à l’API ont connu une croissance exponen- tielle, d’où un allongement des temps de réponse. L’équipe a donc<br />
entièrement repensé la première plateforme SaaS de Shutl. Volker Pacher savait qu’une base de données orientée<br />
graphe permettrait de simplifier la modélisation du domaine sans affecter la structure existante. À l’aide de Neo4j<br />
et d’une structure de graphe sans schéma (schema-less), l’équipe a créé une base de données permettant aux<br />
requêtes de rester localisées à l’intérieur du graphe, améliorant les performances grâce à la facilité d’expression.<br />
Comme aime à le dire Volker Pacher : « Notre système fonc- tionne sur sept lignes de Cypher ».<br />
La plateforme Shutl orchestre les livraisons entre les boutiques, les coursiers et les acheteurs 24 h/24 et 7 j/7. Les<br />
envois s’effectuent directement depuis les points de vente. Le service organise la collecte et la livraison des articles<br />
selon les préférences des clients, généralement dans un délai de deux heures, ou dans une fenêtre de livraison d’une<br />
heure choisie par les clients. Le résultat : un service innovant qui améliore la qualité de service pour les clients ainsi que<br />
la producti- vité des partenaires revendeurs et transporteurs. Tous les acteurs sont gagnants : les clients disposent de<br />
plus de choix pour la livraison, les coursiers ne perdent plus de temps à attendre et les boutiques peuvent proposer des<br />
services supplé- mentaires à leurs clients sur Internet. Shutl « sauve les petits commerces » dans chaque ville en faisant<br />
appel à leurs services marchands et de livraison et en leur permettant ainsi de rester compétitifs.<br />
LE DÉFI<br />
Le service de livraison le jour même de Shutl s’est développé de manière exponentielle et couvre aujourd’hui<br />
jusqu’à 85 % du Royaume-Uni. Sa plateforme de services a dû être entièrement repensée afin de prendre en<br />
charge l’explosion du volume de données et les nouvelles fonctionnalités. Les join- tures MySQL utilisées auparavant<br />
ont créé une base de code trop lente et complexe. Les délais d’exé- cution des requêtes de sélection<br />
du meilleur coursier étaient tout simplement trop longs et Shutl avait besoin qui permette à son service de rester<br />
compétitif. Volker Pacher et l’équipe de développement pensaient qu’en ajoutant une base de données orientée<br />
graphe à l’AOS et à la structure de services, il serait possible de résoudre les problèmes de performan- ces et<br />
d’évolutivité. L’équipe a choisi Neo4j, la meilleure solution à ses yeux.<br />
POURQUOI NEO4J?<br />
Le choix s’est porté sur Neo4j pour sa flexibilité, sa vitesse et sa simplicité d’utilisation. Son modèle de graphe à<br />
propriétés était parfaitement com- patible avec le domaine modélisé. La base de données ne nécessitant pas de<br />
schéma, cela a simplifié son extensibilité et a permis d’accélérer la phase de développement. Enfin, les limitations<br />
en termes de rapidité et d’évolutivité de la solution précédente ont été surmontées. « Notre solu- tion Neo4j est<br />
littéralement des milliers de fois plus rapide que la solution MySQL précédente, avec des requêtes qui nécessitent<br />
de 10 à 100 fois moins de code. Dans le même temps, Neo4j nous a permis d’ajouter des fonctionnalités jusqu’ici<br />
impossibles », explique Volker Pacher. Cypher a permis d’exprimer les requêtes sous une forme très compacte et<br />
intuitive, ce qui a accéléré le développement. L’équipe a pu exploiter le code existant à l’aide d’une bibliothèque<br />
Ruby pour Neo4j prenant égale- ment en charge Cypher.<br />
LES AVANTAGES<br />
Basée sur jRuby, Sinatra, MongoDB et Neo4j, la nouvelle plateforme garantit des transactions rapides avec des<br />
performances relativement constantes. Par ailleurs, son modèle de données permet aux requêtes de rester localisées<br />
à l’intérieur de leurs portions respectives du graphe. « Nous avons obtenu des performances constantes pour<br />
les requêtes en utilisant Neo4j pour créer un graphe qui est son propre index. Cette flexibilité de développement<br />
est tout simplement unique », explique Volker Pacher. La phase d›implémentation a été réalisée dans les délais<br />
prévus, en à peine une année. Les requêtes sont désormais simples et rapides. Le résultat est une plateforme<br />
évolutive capable de prendre en charge le développement de l›entreprise, et notamment la croissance de l›activité<br />
à laquelle elle doit faire face en tant que plateforme du service eBay Now.<br />
Document réalisé par la Société Corp Events - Janvier 2015<br />
74