L’impact des services tiers externes sur les performances d’une application
Durant les conférences Performance.now() organisées à Amsterdam début Novembre, de nombreux aspects importants de la performance applicative ont été traités. Nous allons détaillé l’impact des services tiers sur les performance d’une application.
Comment monitorer les services tiers dans vos applications ?
Parmi ceux-ci, on retrouve notamment l’impact des services externes liés à une application. En effet, que ce soit pour une application Web ou un client lourd, le problème reste identique. La performance de vos applications nécessite une connaissance parfaite de leurs environnements.
Les solutions d’APM (Application Performance Management) actuelles permettent généralement d’établir une cartographie applicative. Cette dernière montre les différents flux qui interagissent avec les applications. Elle est souvent dynamique et apporte une visibilité d’infrastructure.
Ainsi nous observons les services contactés, le nombre d’appels, mais aussi le temps de réponse. Les performances d’une application parfaitement optimisée peuvent être dégradées par des services tiers. C’est pourquoi il est primordial de s’attarder sur les transactions périphériques à une application.
Afin d’optimiser les appels externes de vos applications, plusieurs solutions s’offrent à vous
Dans un premier temps, il peut être pertinent de faire l’inventaire des services externes. Ainsi, il sera ensuite possible d’arbitrer sur la pertinence de ces appels. On pourra donc choisir de seulement conserver les appels nécessaires. Le gain en visibilité est important et des quick win peuvent être rapidement identifiés.
Une autre solution, technique, consiste à retarder les appels tiers de manière asynchrone. Si les ressources appelées ne sont pas critiques dès le début du chargement d’une page ou d’un écran, il est possible de différer la requête. On obtient ainsi une amélioration de l’expérience utilisateur. Les appels ne viennent pas bloquer l’affichage d’un page par exemple. L’utilisateur conserve la main sur l’application.
Si ces ressources s’avèrent tout de même nécessaires, il faudra alors s’orienter vers de l’optimisation. Celle-ci peut passer par une optimisation des accès à ces mêmes ressources externes. Que ce soit via des solutions logicielles ou bien matérielles. Le gain sera ainsi visible sur les temps de réponse de chaque transaction applicative. Une autre optimisation peut consister à héberger si nécessaire des ressources externes. Cette étape peut toutefois s’avérer impossible si le service externe ne le permet pas. Dans le cas contraire, cette configuration apporterait un nouveau contrôle sur l’infrastructure appelée. On réduit également la quantité d’appels réseau.
En résumer, la performance applicative passe notamment par la connaissance de son infrastructure. Il ne faut pas se focaliser uniquement sur l’application en elle-même, mais comprendre aussi son environnement.
“If you can not measure it, you can not improve it.”, Lord Kelvin.