eBay Now choisit Neo4j pour la gestion du routage de son service

Transcription

eBay Now choisit Neo4j pour la gestion du routage de son service
ÉTUDE DE CAS
eBay Now choisit Neo4j pour la gestion du
­routage de son service de livraison e-commerce
INDUSTRIE
e-commerce
LE DÉFI
– Apporter une réponse
adaptée à des opérations de routage
complexes, avec des
performances rapides
et constantes
LA STRATÉGIE
–Développer une nouvelle architecture pour
répondre aux défis en
termes de performances et d'évolutivité
–Utiliser Neo4j pour
calculer les itinéraires
et choisir les transporteurs
LA SOLUTION
–Une nouvelle base de
données Neo4j pour la
gestion d'opérations
de routage complexes
–Une AOS basée
sur des services
développés avec
jRuby, Sinatra, MongoDB et Neo4j
LE RÉSULTAT
–Une plateforme évolutive à grande vitesse
capable d'optimiser le
service de livraison
–Un schéma flexible
adaptable à la croissance de l'activité
La société londonienne Shutl était réputée pour l'incroyable rapidité de ses
services avant même son acquisition par eBay, leader mondial du e-commerce. Depuis sa création en 2009, sa mission est de livrer le plus rapidement
possible les achats effectués sur Internet à leurs destinataires. Qu'il s'agisse de
jouets, de chaussons, de cravates ou encore d'iPhones, eBay fait désormais
appel à la plateforme nouvelle génération de Shutl pour redéfinir le e-commerce
en accélérant et en simplifiant la livraison des commandes passées sur Internet ou
appareil mobile. eBay élimine le plus gros obstacle entre les vendeurs et les acheteurs en ligne en proposant une livraison des articles le jour même. Aujourd'hui,
la plateforme de Shutl est à la base des opérations du service de livraison locale
eBay Now dans quatre marchés américains et son extension à 25 grandes villes
aux États-Unis et au Royaume-Uni est prévue pour la fin 2014.
Volker Pacher, développeur senior pour eBay, fait partie de l'équipe principale de
la plateforme de services chargée de fournir une API aux transporteurs et aux
marchands. Les requêtes envoyées à l'API ont connu une croissance exponentielle, d'où un allongement des temps de
réponse. L'équipe a donc entièrement « Il était indispensable de tout repenrepensé la première plateforme SaaS de
ser : avec l'augmentation du trafic et
Shutl. Volker Pacher savait qu'une base
les nouvelles fonctionnalités, il fallait
de données orientée graphe permettrait de
jusqu'à 15 minutes pour traiter cersimplifier la modélisation du domaine sans
taines requêtes, soit plus de temps
affecter la structure existante. À l'aide de
que pour la livraison de l'article !
Neo4j et d'une structure de graphe sans
Neo4j était pour nous la meilleure
schéma (schema-less), l'équipe a créé une
solution. »
– Volker Pacher, eBay
base de données permettant aux requêtes
de rester localisées à l'intérieur du graphe,
améliorant les performances grâce à la
facilité d'expression. Comme aime à le dire Volker Pacher : « Notre système fonctionne sur sept lignes de Cypher ».
La plateforme Shutl orchestre les livraisons entre les boutiques, les coursiers
et les acheteurs 24 h/24 et 7 j/7. Les envois s'effectuent directement depuis les
points de vente. Le service organise la collecte et la livraison des articles 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 heure choisie par les clients. Le résultat : un service
innovant qui améliore la qualité de service pour les clients ainsi que la productivité des partenaires revendeurs et transporteurs. Tous les acteurs sont gagnants
: les clients disposent de plus de choix pour la livraison, les coursiers ne perdent
plus de temps à attendre et les boutiques peuvent proposer des services supplémentaires à leurs clients sur Internet. Shutl « sauve les petits commerces » dans
chaque ville en faisant appel à leurs services marchands et de livraison et en leur
permettant ainsi de rester compétitifs.
© 2014 Neo Technology · neo4j.com
Le défi
Le service de livraison le jour même de Shutl s'est développé de manière exponentielle et couvre
aujourd'hui jusqu'à 85 % du Royaume-Uni. Sa plateforme de services a dû être entièrement repensée
afin de prendre en charge l'explosion du volume de données et les nouvelles fonctionnalités. Les jointures MySQL utilisées auparavant ont créé une base de code trop lente et complexe. Les délais d'exécution des requêtes de sélection du meilleur coursier étaient tout simplement trop longs et Shutl avait
besoin qui permette à son service de rester compétitif. Volker Pacher et l'équipe de développement pensaient qu'en ajoutant une base de données orientée
graphe à l'AOS et à la structure de services, il serait possible de résoudre les problèmes de performances et d'évolutivité. L'équipe a choisi Neo4j, la meilleure solution à ses yeux.
Pourquoi Neo4j?
Le choix s'est porté sur Neo4j pour sa flexibilité, sa vitesse et sa simplicité
d'utilisation. Son modèle de graphe à propriétés était parfaitement compatible avec le domaine modélisé. La base de données ne nécessitant
pas de schéma, cela a simplifié son extensibilité et a permis d'accélérer
la phase de développement. Enfin, les limitations en termes de rapidité et
d'évolutivité de la solution précédente ont été surmontées. « Notre solution Neo4j est littéralement des milliers de fois plus rapide que la solution
MySQL précédente, avec des requêtes qui nécessitent de 10 à 100 fois
moins de code. Dans le même temps, Neo4j nous a permis d'ajouter des
fonctionnalités jusqu'ici impossibles », explique Volker Pacher.
Cypher a permis d'exprimer les requêtes sous une forme très compacte
et intuitive, ce qui a accéléré le développement. L'équipe a pu exploiter le
code existant à l'aide d'une bibliothèque Ruby pour Neo4j prenant également en charge Cypher.
Les avantages
Basée sur jRuby, Sinatra, MongoDB et Neo4j, la nouvelle plateforme
garantit des transactions rapides avec des performances relativement
constantes. Par ailleurs, son modèle de données permet aux requêtes de
rester localisées à l'intérieur de leurs portions respectives du graphe.
« Notre solution Neo4j est
littéralement des milliers
de fois plus rapide que la
solution MySQL précédente, avec des requêtes
qui nécessitent de 10 à
100 fois moins de code.
Dans le même temps,
Neo4j nous a permis
d'ajouter des fonctionnalités jusqu'ici impossibles.
»
– Volker Pacher, eBay
« Nous avons obtenu des performances constantes pour les requêtes en utilisant Neo4j pour créer
un graphe qui est son propre index. Cette flexibilité de développement est tout simplement unique »,
explique Volker Pacher. La phase d'implémentation a été réalisée dans les délais prévus, en à peine
une année. Les requêtes sont désormais simples et rapides. Le résultat est une plateforme évolutive
capable de prendre en charge le développement de l'entreprise, et notamment la croissance de l'activité
à laquelle elle doit faire face en tant que plateforme du service eBay Now.
À propos de Neo Technology
Les graphes sont partout. Neo Technology a contribué à mettre la puissance des graphes au service
de nombreuses organisations, parmi lesquelles de plus en plus de clients figurant dans la liste Global
2000 de Forbes Magazine, tels que Cisco, HP, Accenture, Deutsche Telekom et Telenor. Au service de
clients du secteur de la production depuis plus d'une décennie, Neo4j est le leader mondial des bases
de données orientées graphe et compte le plus grand écosystème de partenaires et des dizaines de
milliers de déploiements.
© 2014 Neo Technology · neo4j.com