Aller au contenu
Sebfie.

Cocolis.fr — Direction technique et refonte de la plateforme

Plusieurs millions de requêtes par mois

  • Ruby on Rails
  • Architecture
  • Performance
  • Infrastructure

Cocolis met en relation des particuliers qui ont de la place dans leur véhicule avec ceux qui cherchent un envoi de colis économique. Nous assurons la direction technique de la plateforme depuis 2018, refonte complète de l’architecture comprise.

L’architecture

  • Back-end Ruby on Rails exposant une API consommée par le web et les applications mobiles
  • Front-end React avec Next.js
  • Traitements asynchrones avec Sidekiq : notifications, imports, tâches longues
  • Paiements marketplace sous Stripe : encaissement pour compte de tiers, reversement aux transporteurs, webhooks
  • Hébergement Heroku, avec déploiement continu

Ce que l’API encaisse

Sur le seul point d’entrée de recherche de trajets, l’API traite plusieurs millions de requêtes par mois, avec un taux de succès supérieur à 99 % et sans interruption de service.

Une recherche de trajet n’est pas une requête anodine : elle croise un itinéraire, des points de passage, des volumes de colis et des contraintes de prix pour proposer des correspondances pertinentes. C’est le cœur métier de la plateforme, et c’est ce qui est le plus sollicité.

Une API ouverte, et documentée comme telle

L’API ne sert pas que le site et les applications : elle est ouverte aux intégrateurs, avec une documentation développeur publique qui accompagne l’ensemble.

  • Référence de l’API REST : authentification, gestion des trajets, webhooks, spécification OpenAPI
  • Modules e-commerce prêts à l’emploi pour WooCommerce, PrestaShop et Shopify
  • SDK JavaScript et SDK PHP, plus un widget intégrable
  • Tutoriel d’implémentation et check-list, pour qu’un intégrateur avance sans nous solliciter
  • Un changelog tenu à jour, qui documente les évolutions de comportement

Une API sans documentation reste un projet interne. Documentée, versionnée et accompagnée de SDKs, elle devient un canal de distribution : chaque boutique qui intègre la livraison collaborative Cocolis le fait sans intervention de l’équipe.

Le géocodage, ramené à la maison

Sur une plateforme de transport, l’adresse est partout : chaque champ de départ ou de destination déclenche une autocomplétion, donc une requête de géocodage à chaque frappe au clavier. Facturé à la requête chez un fournisseur, ce poste grossit exactement quand la plateforme marche bien.

Nous avons remplacé Mapbox par Pelias, moteur de géocodage libre, hébergé sur notre propre cluster Kubernetes chez OVH : construction de l’index français à partir de la Base Adresse Nationale, de la BD TOPO de l’IGN et d’OpenStreetMap, outil d’enrichissement des codes postaux manquants, synonymes pour les abréviations de voie, et modification du moteur lui-même pour que les noms de lieux traduits soient reconnus.

Le résultat : une facture de plusieurs milliers d’euros ramenée à zéro, un coût qui ne dépend plus du trafic, et la possibilité d’intervenir sur la pertinence des résultats plutôt que d’ouvrir un ticket. Le chantier est raconté en détail dans cet article.

La qualité comme condition de la vitesse

Une plateforme qui manipule de l’argent et qui vit depuis huit ans ne tient pas sans discipline de tests.

  • Suite de tests RSpec couvrant le domaine métier, les flux de paiement et les API
  • Intégration continue : aucun déploiement sans une suite verte
  • Déploiement continu vers Heroku, plusieurs fois par semaine
  • Revue de code systématique et suivi de la dette technique

C’est ce qui permet de faire évoluer la plateforme sans régression, huit ans après le début de la mission. Une couverture de tests n’est pas un indicateur de vertu : c’est ce qui rend les changements possibles.

Les applications mobiles

La même API sert les applications iOS et Android, notées 4,9 sur 5 sur l’App Store pour plus de 14 000 avis.

Cocolis.fr — Direction technique et refonte de la plateforme — capture 1Cocolis.fr — Direction technique et refonte de la plateforme — capture 2Cocolis.fr — Direction technique et refonte de la plateforme — capture 3Cocolis.fr — Direction technique et refonte de la plateforme — capture 4Cocolis.fr — Direction technique et refonte de la plateforme — capture 5