Server-side testing : quelle est l'architecture de Kameleoon ?

Cet article a pour objectif de présenter les considérations et conclusions qui nous ont amenés à définir l’architecture de nos SDKs serveur fin 2017. Le sujet de la performance en particulier a fait l’objet d’une réflexion approfondie, comme il l’avait été pour notre solution de testing et personnalisation côté client il y a 6 ans. A l’époque nous avions dès le départ posé des fondamentaux solides (comme par exemple un unique call de téléchargement depuis le navigateur, regroupant l’ensemble du code nécessaire au fonctionnement de la plateforme, en sur-optimisant la taille du script) qui ont été ensuite consolidés par des innovations régulières (comme par exemple l’éradication de l’effet flicker ou, dernier exemple en date, l’utilisation de la compression Brotli plutôt que le traditionnel GZIP dans le transfert de nos scripts, réduisant le poids de celui-ci d’environ 30 %). Les explications ci-dessous pourront être utiles aux équipes techniques intéressées par l’implémentation de tests A/B côté back-end pour comprendre rapidement tous les enjeux de ce sujet.Le « bucketing » des visiteurs : Comment l’implémenter, ou pourquoi nous retrouvons la problématique Synchrone vs AsynchroneLes opérations techniques qui sont nécessaires à l’implémentation d’un test A/B peuvent être regroupées en quatre grandes étapes :
- le ciblage et le « triggering » du test : il s’agit ici de déterminer quels visiteurs vont « rentrer » dans un test A/B, et à quel moment de leur visite.
- l’assignation d’une variante à un visiteur (ou « bucketing » en anglais) : à quelle variante ce visiteur va t-il être soumis, et – point très important – comment s’assurer que ce visiteur sera soumis à la même variante à l’avenir.
- la visualisation de la variante, avec son implémentation associée : une fois la variante connue pour un visiteur donné, il faut l’afficher et donc créer son HTML (on entend ici « visualisation » au sens général, car il est possible de définir des variantes modifiant la logique business, tels que des options de livraison différentes).
- le tracking du visiteur : pour visualiser les résultats du test, il est nécessaire d’enregistrer à la fois l’association de ce visiteur avec la variante (triplet de données : ID visiteur – ID experiment – ID variante) et les actions poursuivies par le visiteur (notamment son éventuelle conversion ou son éventuel achat au cours de la visite).

