jeu, 11/10/2012 - 11:37
Du serveur au navigateur, les éléments-clés de la performance - ou de la non performance- d'un site ou d'une application Web sont très nombreux. À tel point qu'il devient très complexe d'identifier les causes d'un ralentissement ou d'une indisponibilité. Sauf à disposer des bonnes clés de lecture. Par Gilles Portier, Consultant APM Compuware.
La complexité, maître-mot du Web
Du point de vue de l'utilisateur, Internet a considérablement transformé sa vision du monde et lui a surtout changé la vie : tout est plus facile. De la simple information débusquée en quelques clics, à la commande du dernier best-seller ou de son réfrigérateur, tout (ou presque) peut être réalisé confortablement assis dans son salon ou devant son bureau. À l'autre bout de la chaîne, les éditeurs de sites Web et de l'ensemble de ces services ont, pendant un temps, mangé leur pain blanc : les ménages (comme les entreprises) n'étaient pas encore tous équipés. Et ceux qui l'étaient ne faisaient pas preuve d'originalité : la majorité d'entre eux disposait du couple Windows/Internet Explorer sur un ordinateur de bureau.
En une décennie, force est de constater que l'évolution a été fulgurante : la multiplicité des appareils capables de se connecter à Internet (ordinateurs, smartphones, tablettes, téléviseurs...), des systèmes d'exploitation (Windows, MacOs, Linux, iOS, Androïd...), des navigateurs (Internet Explorer, Firefox, Chrome, Safari, Opéra...), et surtout l'hyper-connectivité et le besoin d'instantanéité des utilisateurs ont fortement mis à mal la simplicité (apparente) des premiers temps. Avec un nombre de combinatoires quasi-infini de terminaux et l'interconnexion croissante des réseaux et des services, le Web est aujourd'hui un système très complexe. Une complexité qui fait constamment peser de forts risques sur les performances, alors même que les utilisateurs sont toujours plus exigeants quant à ces dernières.
Les 3 bastions de la (non-)performance Web
Pour mieux comprendre quels éléments influent sur les performances (ou non) d'un site ou d'une application, il est nécessaire de se pencher sur les technologies du Web, et ses trois grandes composantes. À savoir l'application elle-même et son hébergement, le réseau (physique et logique) qui a pour fonction de router les informations d'un point A (le serveur) à un point B (le navigateur), et enfin le terminal client. Avec le temps, les rôles et fonctions de chacun ont évolué, au même rythme d'ailleurs que les technologies du Web.
Au point de départ, il y a un serveur. Il a pour fonction d'héberger le site et de répondre aux requêtes des clients. Simple aux prémices d'Internet, avec en majorité des pages statiques en HTML, un site Web est aujourd'hui une application beaucoup plus complexe qu'il n'y paraît au premier abord : désormais séparé de la forme, le fond est stocké dans des bases de données, et peut même provenir de sources extérieures. C'est le cas par exemple d'une « simple » publicité sur un site marchand. Des tierces parties qui, si elles ne sont pas capables de suivre la cadence, peuvent réduire à néant tous les efforts d'un éditeur de site en matière de performances serveurs : vitesse CPU, capacités de stockage, etc., et de performances applicatives : code « propre », minimisation du nombre de requêtes HTTP, données compressées, etc.
Seconde composante du Web, le réseau : depuis les plus « gros tuyaux » au départ des datacenters (backbone), jusqu'à la paire téléphonique, la fibre optique ou le réseau câblé des clients. En dehors de quelques zones encore très mal desservies, l'ensemble du réseau mondial dispose aujourd'hui de capacités et de performances très correctes ; bien que le risque de congestion reste présent, en raison notamment de la hausse constante des échanges sur la toile. Malgré tout, aussi rapides soient-elles à parcourir pour les données, les distances restent des distances : plus le client est loin du serveur, plus le temps de transaction est long. C'est la raison d'être des Content Delivery Networks (CDN) qui consistent à disposer de serveurs relais un peu partout dans le monde, et donc au plus près des utilisateurs. Utiles certes, ils ajoutent un maillon à la chaîne de la performance applicative, déjà très complexe.
Enfin, loin d'être de simples terminaux passifs, les appareils utilisés par les utilisateurs jouent un rôle essentiel dans les performances du Web. En effet, ce qui était vrai avec les pages statiques en « HTML pur » l'est aussi quelle que soit la technologie employée (PHP, Java, .Net, etc.) : c'est au navigateur lui-même de reconstruire un ensemble cohérent, à partir des informations qu'il reçoit des serveurs par paquets à travers le réseau. Résultat : les capacités de calcul du terminal de l'utilisateur influenceront également la vitesse d'affichage. C'est aussi pour cette raison que les applications et sites Web nécessitent la meilleure optimisation possible.
Mesurer les performances pour mieux assurer les risques
Selon les spécialistes des performances Web, 80 à 90 % des risques de mauvaises performances résulteraient du front-end, à savoir le réseau Internet et le poste utilisateur. Soit les couches les plus difficiles à maîtriser pour un éditeur de site. En parallèle, la méconnaissance des éditeurs de leur propre qualité de service n'arrange rien : comment réagir face à un problème que l'on ignore ?
Car si, en interne dans les entreprises, il est assez simple de sonder les utilisateurs pour connaître leur degré de satisfaction, sur le Web, auprès d'utilisateurs que l'on ne connaît pas, c'est mission impossible. Et le couperet tombe sans autre forme de procès : un utilisateur qui a trop attendu l'affichage d'une page quitte le site, sans que son éditeur ne comprenne précisément pourquoi. D'autant qu'un site peut parfaitement fonctionner à un endroit de la planète, et s'avérer d'une intolérable lenteur ailleurs.
Et comme il n'est pas de remède sans diagnostic, les seules armes réellement efficaces des éditeurs de sites contre la non-performance restent des mesures précises, depuis le serveur jusqu'au poste utilisateur. Sans elles, l'optimisation d'un site ou d'une application Web donnera bien sûr quelques résultats mais restera « aveugle ». À l'inverse, une vision fine des temps nécessaires à chaque étape du service entre le serveur et le navigateur permet de prendre des mesures efficaces, certaines et rapides pour offrir la qualité de service attendue par des utilisateurs toujours plus exigeants et prêts à bondir sur un autre site à la moindre baisse de performances.
Gilles Portier, Consultant APM Compuware
A propos de l'auteur