QProxy : un module libre pour gérer les files d’attente

La plupart des sites Internet à fort trafic connaissent régulièrement des pics de consultation intense. Côté utilisateur, cette réalité peut se traduire par une qualité de service dégradée. Mais ça, c’était avant le module de file d’attente QProxy développé par Empreinte Digitale ! On vous explique pourquoi.

Une création née en interne

Un de nos clients connaît, tous les ans sur son site, un afflux de requêtes extrêmement massif, de l’ordre de plusieurs centaines de milliers de visiteurs en quelques jours. Résultat, tous les utilisateurs en demande subissent une expérience dégradée, génératrice de frustration.

Se posent alors les questions suivantes : comment satisfaire tous les usagers du site, de façon simple et rapide, tout en conservant une expérience de navigation convenable ?

Comment éviter un re-développement complexe et coûteux ou une infrastructure (hardware) sur-dimensionnée pour seulement quelques jours dans l’année ?

Comme aucune solution existante ne répondait à ces contraintes, notre équipe de développeurs a créé un module de file d’attente dédié : QProxy, une solution sur-mesure et une alternative idéale à des déploiements supplémentaires pour notre client.

Un développement adapté aux contraintes

Qproxy a été développé en tenant compte de délais courts et d’un besoin de facilité dans le déploiement pour notre client. Le module devait également rendre possible une mise à jour rapide des backends et la modification du nombre de sessions autorisées sur le site. Et bien sûr, pour suivre la montée en charge, une restitution de métriques (statistiques) était indispensable : nombre de personnes en file d’attente, de sessions par backend

Nos développeurs ont opté pour le langage GO, développé par Google, qui réunit tous ces critères dans ses librairies natives (ou l’ADN du code). Autre avantage, le langage GO est très simple à utiliser et offre de solides performances. Il est également aisé d’écrire du code asynchrone via le principe de “Goroutine” : plus simplement dit, deux actions peuvent avoir lieu simultanément, contrairement au code dit synchrone, où une action doit être achevée avant que l’autre commence.

Comme son nom l’indique, Qproxy agit comme un proxy : il attribue à chaque requête une session et détermine si l’utilisateur peut accéder au site, ou s’il doit être placé en file d’attente. Enfin, le module récupère instantanément les métriques des sessions, via un endpoint : l’API, ou interface de programmation, permet à deux systèmes de dialoguer et l’endpoint matérialise le point de contact entre les deux. Les statistiques sont ensuite consultables dans un Grafana, logiciel libre de statistiques.

Un module pensé pour les utilisateurs

File d'attente dans un escalier

©Unsplash / Levi Jones

QProxy agit donc comme un filtre, en autorisant un certain volume d’utilisateurs à accéder au site. Le module préserve ainsi la qualité de service pour les usagers en cours d’interaction avec le site et supprime le risque d’indisponibilité totale pour les autres.

QProxy a été développé et pensé pour bénéficier aux utilisateurs en leur garantissant une qualité d’expérience, un petit plus qui fait toute la différence !

QProxy, à votre disposition en libre

Chez Empreinte Digitale, nous aimons partager notre expertise. C’est pourquoi nous mettons à votre disposition le module QProxy sur Github. N’hésitez pas à l’utiliser pour assurer la qualité de votre service en ligne.

Fruit d’une expérience de “terrain”, QProxy répond à un double enjeu : proposer une solution clé en main et satisfaire l’utilisateur. Un module utile et idéal pour faire face à des pics de fréquentation sur votre site.