Pour un système de trading ou d'ad tech où une réponse tardive compte comme une mauvaise réponse, le bon prestataire externe travaille dans la même plage que votre échéance et sait montrer comment ses chiffres de vitesse ont été mesurés. Celui que vous privilégiez doit mesurer votre système en production avant de construire quoi que ce soit.
Aucune liste de sociétés de développement logiciel à faible latence ne convient à tous les acheteurs, car le terme recouvre des échéances qui peuvent varier d'un facteur un million. Dans le matériel de trading, il peut s'agir de dizaines ou de centaines de nanosecondes. Dans une application ou une page web, une réponse en un dixième de seconde environ paraît déjà instantanée à la personne qui l'utilise. La première question est donc de savoir où se situe votre propre échéance.
La réponse courte : notez votre échéance et les deux points entre lesquels elle se mesure, et demandez à chaque société lesquels des systèmes qu'elle a construits tournent déjà en production dans cette plage. Avant que quiconque construise quoi que ce soit, payez la société que vous privilégiez pour qu'elle mesure votre système en production, et gardez son rapport quelle que soit votre décision.
À lire aussi
Pour votre système, la faible latence est une échéance mesurée entre deux points que vous savez nommer. Les échéances se répartissent en quatre grandes plages :
Un même produit peut avoir des parties dans des plages différentes. Un trader lit les prix sur un écran, tandis que l'ordre qu'il envoie peut devoir respecter une échéance bien plus serrée sur le chemin de la place de marché. Notez chaque échéance avec les deux points entre lesquels elle se mesure. La plage dans laquelle tombe chacune vous indique quel type de société appeler.
Cet article ne classe pas les sociétés. Le bon type de société dépend de votre plage et du travail dont vous avez besoin :
Beaucoup de sociétés relèvent de plusieurs types : demandez donc quel type de travail ont réalisé les ingénieurs qui seront affectés à votre projet.
L'article sur les équipes dédiées, dont le lien figure plus haut, liste ce qui doit accompagner chaque chiffre de performance et fournit une liste de contrôle à coller dans un appel d'offres. Les questions ci-dessous permettent de savoir comment les propres chiffres d'une société ont été obtenus.
Demandez où le chronomètre démarre et où il s'arrête. OPRA, qui publie les transactions et les cotations consolidées des bourses d'options américaines, démarre son chronomètre quand un message entrant « arrive à l'entrée applicative de l'environnement OPRA » et l'arrête quand le message sortant « arrive à la sortie applicative de l'environnement OPRA ». La définition de l'UE citée plus haut est tout aussi précise sur ces deux points. Un chiffre dont les points de départ et d'arrivée ne sont pas nommés ne peut pas être comparé au vôtre.
Regardez les réponses les plus lentes autant que la réponse typique. Dans les métriques publiées par OPRA, la latence médiane, la valeur du milieu, était de 19,5 microsecondes en janvier 2024 et de 20,5 en février. Sur ces deux mêmes mois, le 99e percentile, le temps que seul le 1 % des messages les plus lents dépassait, est passé de 543,5 microsecondes à 57,5. Un rapport limité à la médiane n'aurait montré presque aucun changement.
Les moyennes cachent elles aussi les réponses lentes. Le livre Site Reliability Engineering de Google, publié par O'Reilly en 2016, décrit un service web dont la latence moyenne est de 100 millisecondes à 1 000 requêtes par seconde, et dans lequel « 1 % des requêtes pourraient facilement prendre 5 secondes ». Demandez le 99e percentile de chaque chemin et, si votre système traite assez de requêtes pour le mesurer, le 99,9e, que seule 1 réponse sur 1 000 dépasse.
Vérifiez la charge derrière chaque chiffre. Dans la présentation de STAC de 2020, STAC-T0 envoie son trafic de test à trois débits. Le plus bas est « conçu pour voir comment les systèmes se comportent lorsqu'ils sont presque inactifs », et le plus élevé, généralement proche du maximum que le système testé peut absorber, sert « à voir comment les systèmes se comportent lorsqu'ils sont très sollicités ». Demandez des chiffres issus de votre propre minute la plus chargée, ou d'un test qui la reproduit.
Demandez comment le test de charge a été mené. Beaucoup d'outils de test de charge envoient une requête, attendent la réponse et n'envoient qu'ensuite la suivante. Quand le système se bloque, un tel outil cesse d'émettre : les requêtes qui seraient arrivées pendant le blocage ne sont donc jamais chronométrées.
Gil Tene, l'auteur de l'outil de test de charge wrk2, appelle cet effet coordinated omission. Dans la documentation de l'outil, modifiée pour la dernière fois en septembre 2019, il écrit que « les réponses à forte latence amènent le générateur de charge à se coordonner avec le serveur pour éviter de mesurer pendant les périodes de forte latence ». Son outil envoie les requêtes à un débit fixe et chronomètre chaque réponse « à partir du moment où l'envoi aurait dû avoir lieu ». Demandez si l'outil de la société fonctionne ainsi, ou comment ses résultats ont été corrigés.
Demandez où chaque horodatage a été pris. Pour des latences en microsecondes, la présentation de STAC qualifie un benchmark à horodatages logiciels de « meilleure option ». Elle avertit aussi que les petits délais irréguliers des horodatages logiciels « peuvent représenter une erreur considérable lorsqu'on mesure des latences de l'ordre de dizaines ou de centaines de nanosecondes », et STAC-T0 prend plutôt ses horodatages au niveau matériel. Une société qui annonce des nanosecondes doit pouvoir montrer où ses horodatages matériels ont été pris.
Si vous ne savez pas encore ce qui ne va pas, seulement que le système semble plus lent ou coûte plus cher qu'il ne le devrait, commencez par là. Payez la société que vous privilégiez pour une mesure à périmètre fixe de votre système en production, avec un rapport qui vous reste acquis quelle que soit la suite que vous déciderez. Convenez par écrit de ce que la société peut installer ou modifier pour prendre ses mesures, et de la façon dont ses outils seront retirés ensuite.
Le rapport doit montrer :
Pour les systèmes de trading, l'article sur l'exécution lente des ordres, dont le lien figure plus haut, liste les quatre horodatages à enregistrer sur chaque ordre. En ad tech, les articles sur les pics de trafic et sur les timeouts des DSP expliquent quoi mesurer lors d'un pic et pour chaque connexion d'ad exchange.
Jugez la société sur son rapport. Si vos propres ingénieurs pouvaient s'en servir sans elle, vous pouvez choisir sur la base de chiffres réels qui fera la suite du travail, que ce soit cette société ou une autre.
Si une société propose un nouveau langage, l'article dont le lien figure ci-dessous montre comment les ingénieurs vérifient si le langage est bien en cause.
amBrain diagnostique les systèmes lents dans le trading et l'ad tech : la plateforme en fonctionnement est mesurée de bout en bout, et le rapport indique où passe le temps. Son travail dans le trading comprend le développement de terminaux de trading, les systèmes de gestion des ordres et l'intégration des places de marché via le protocole FIX.
En AdTech, amBrain travaille sur le développement de DSP, les plateformes d'enchères en temps réel et l'ingénierie d'ad exchange.
amBrain travaille en trois formats : la prestation complète, une équipe dédiée ou des ingénieurs intégrés à votre équipe. Le client conserve la pleine propriété du produit et du code, à l'exception des composants réutilisables d'amBrain.
amBrain développe des logiciels depuis 2019.
Cet article n'est pas une étude de cas et ne décrit aucun travail réalisé pour un client. Il ne cite aucun chiffre de latence pour les systèmes qu'amBrain a construits, et aucun prix ni délai.
Demandez à amBrain, ou à toute autre société de votre liste, ce qu'elle mesurerait en premier sur votre système, et soumettez chaque société aux mêmes vérifications.
Apportez votre architecture actuelle et le mode de défaillance qui vous inquiète : nous les passerons en revue ensemble en une demi-heure.