Qu'est-ce que la disponibilité des applications ?

La disponibilité d'une application désigne la durée pendant laquelle une application est opérationnelle.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Décrire la disponibilité des applications et la distinguer de fiabilité
  • Comprendre les niveaux de temps d'activité, d'interruption de service et de disponibilité
  • Expliquer les composants d'une architecture à haute disponibilité

Copier le lien de l'article

Qu'est-ce que la disponibilité des applications ?

La disponibilité des applications mesure le temps pendant lequel une application est opérationnelle. Une application est disponible lorsqu'elle fonctionne comme prévu, lorsqu'elle répond aux demandes des utilisateurs ; une application n'est pas disponible si elle ne fonctionne pas ou si elle n'est pas joignable par les utilisateurs finaux.

Pour les applications web, l'optimisation de la disponibilité est un atout important du développement. La disponibilité des applications peut être améliorée en combinant l'optimisation de l'infrastructure back-end, l'optimisation du front-end et l'atténuation des attaques.

Les utilisateurs sont exigeants pour ce qui est de la disponibilité des applications web . Les pannes peuvent avoir une incidence considérable sur les revenus et la réputation. Pensez aux heures « d'ouverture » d'un magasin : si un magasin est fermé à des heures inattendues, les clients iront voir ailleurs. De même, les utilisateurs qui ne sont pas en mesure d'obtenir le service dont ils ont besoin à partir d'une application logicielle cesseront d'utiliser cette application, ce qui provoquera une perte de clients, et donc de revenus.

Pour les applications d'entreprise à entreprise (B2B), la disponibilité est généralement stipulée dans l'accord de niveau de service (SLA), exprimée en pourcentage de temps pendant lequel l'application est censée être opérationnelle. Les développeurs d'applications ont, dans ce cas, l'obligation contractuelle d'assurer un certain niveau de disponibilité à leurs clients.

Fiabilité ou disponibilité des applications

La « disponibilité » est un concept qui s'applique aux systèmes et aux services de toute sorte, des serveurs aux applications en passant par les API. Elle est mesurée en pourcentage : une application qui est à l'arrêt 36 secondes par heure affiche une disponibilité de 99 %.

La fiabilité désigne la capacité d'un système ou d'une application à fournir des services tels qu'ils sont attendus, sans erreur, sur une période donnée. Une application peut être disponible tout en étant peu fiable, si elle fonctionne lentement ou produit des résultats inattendus et incorrects. Pour revenir à l'analogie précédente, un magasin indisponible est fermé ; un magasin peu fiable est ouvert, mais les rayonnages peuvent contenir des articles placés au mauvais endroit.

Calculer les niveaux de disponibilité des applications

La disponibilité des applications est souvent calculée sur la base d'une année civile. Ce tableau indique la durée d'indisponibilité d'une application présentant différents niveaux de disponibilité sur une période de 365 jours. (Les temps d'arrêt sont cumulatifs et peuvent se produire sur plusieurs périodes différentes ou en une seule fois.)

Disponibilité Temps d'arrêt total par an
95 % 18 jours et 6 heures
99 % 3 jours, 15 heures et 36 minutes
99,9 % 8 heures, 45 minutes et 36 secondes
99,99 % 52 minutes et 34 secondes
99,999 % (« cinq neuf ») 5 minutes et 15 secondes

Qu'est-ce que le temps d'activité ? Qu'est-ce qu'un temps d'arrêt ?

On parle de disponibilité lorsqu'une application fonctionne comme prévu. On parle de temps d'arrêt lorsqu'un appareil ou un service n'est pas opérationnel. Dans de nombreux contextes, temps d'activité et disponibilité sont synonymes.

Quels sont les éléments qui influencent la disponibilité des applications web ?

Internet est complexe et de nombreux facteurs différents peuvent avoir une incidence sur la disponibilité et les performances d'une application web. Certains de ces facteurs sont sous le contrôle des développeurs d'applications, d'autres non. Cependant, il existe plusieurs mesures grâce auxquelles les développeurs peuvent prendre en compte et atténuer les facteurs qui affectent la disponibilité.

  • Attaques : les attaques par déni de service distribué (DDoS) ou les attaques de bots peuvent submerger une application et rendre ses services indisponibles pour les autres utilisateurs, soit en bloquant toute la bande passante et la puissance de calcul disponibles, soit en arrêtant complètement l'application. Les attaques qui compromettent une application depuis l'intérieur, telles que les attaques par rançongiciel ou les attaques par injection SQL, peuvent également entraîner l'arrêt d'une application.
  • Défaillances de l'infrastructure : les serveurs hôtes qui ralentissent ou tombent en panne peuvent entraîner l'indisponibilité d'une application. Les performances des serveurs peuvent se dégrader pour diverses raisons, des pannes matérielles aux bugs logiciels, en passant par les pics soudains de requêtes. Si des requêtes continuent d'être envoyées à des serveurs trop lents ou défaillants, il est possible que ces requêtes restent sans réponse.
  • Intensité du trafic ou de l'utilisation : les utilisateurs peuvent submerger une application s'ils sont trop à l'utiliser en même temps. Les plateformes d'e-commerce, par exemple, connaissent des pics d'utilisation lors des sorties de produits, des ventes ou des saisons commerciales. Ce problème peut être aggravé par le trafic lié aux bots.
  • Bugs : des erreurs dans le logiciel d'application peuvent provoquer des plantages qui rendent l'application indisponible.
  • Problèmes côté client : un code inefficace au niveau du front-end peut bloquer l'appareil ou le navigateur d'un utilisateur ou entraîner des problèmes de compatibilité.

Qu'est-ce qu'une haute disponibilité ?

La haute disponibilité correspond à un très haut niveau de disponibilité constante obtenu grâce à des sauvegardes et en évitant les points de défaillance uniques. Dans une architecture à haute disponibilité, une panne unique de serveur, passerelle ou service n'entraîne pas d'indisponibilité. Une architecture à haute disponibilité doit également prévenir les cyberattaques.

Quels sont les composants d'une architecture à haute disponibilité pour les applications ?

Load Balancing

L'équilibrage de charge répartit uniformément les charges de calcul et le trafic réseau sur les groupes de serveurs. Cette solution permet de garantir qu'aucun serveur ou groupe de serveurs ne sera submergé par plus de trafic qu'il ne peut en traiter efficacement.

Il existe une variété d'algorithmes d'équilibrage de charge : certains équilibreurs de charge répartissent les charges de travail de manière uniforme, quoi qu'il arrive, tandis que d'autres utilisent des algorithmes dynamiques pour répondre aux conditions du réseau et à l'état du serveur en temps réel.

Contrôles d’intégrité

Les serveurs web tombent inévitablement en panne de temps en temps. Un contrôle d'intégrité est un service qui vérifie si un serveur d'origine est en ligne ou non. Les contrôles d'intégrité permettent aux solutions d'équilibrage de charge de répondre à l'état du serveur, afin d'éviter que les requêtes soient dirigées vers un serveur qui serait hors ligne.

Redondance et sauvegardes

Les applications à haute disponibilité subissent une redondance au sein de leur architecture. Ces applications peuvent revenir à une copie de sauvegarde des données d'une application en cas d'attaque par rançongiciel ou si la base de données devient indisponible pour quelque autre raison. Les services redondants et les pools de serveurs veillent à ce que la défaillance d'un serveur ou d'une API n'affecte pas les fonctionnalités de l'application.

Mise en cache

Les éléments statiques d'une application web peuvent être diffusés par un réseau de diffusion de contenu (CDN) même si l'infrastructure sous-jacente est en panne. Une version mise en cache d'une application web ne dispose pas obligatoirement de l'intégralité des fonctionnalités, mais elle peut rester techniquement disponible jusqu'au rétablissement de l'intégralité des services. (Pour en savoir plus sur le service Cloudflare Always Online.)

Des DNS fiables

Le Système de nom de domaines (DNS pour Domain Name System) est ce qui permet aux utilisateurs d'accéder aux serveurs d'applications sur un réseau. Si le DNS tombe en panne ou s'il cesse de trouver la bonne adresse IP, les utilisateurs ne peuvent pas charger l'application. Le recours à un fournisseur de services DNS fiable, de portée mondiale et capable d'arrêter les attaques DDoS ciblant le DNS, permet de faire en sorte que le DNS n'affecte pas la disponibilité.

Surveillance de la disponibilité des applications

Un outil externe de surveillance de la disponibilité des applications peut aider les fournisseurs de services à suivre la disponibilité et à réagir le plus rapidement possible lorsque leurs applications tombent en panne.

Qu'est-ce que la disponibilité continue ?

La disponibilité continue est une conception de l'infrastructure informatique qui garantit qu'une application ou un système reste opérationnel en permanence. L'objectif de la disponibilité continue est d'assurer une disponibilité de 100 %, ce qui n'est pas toujours possible, en pratique. Internet a été conçu pour résister à une guerre nucléaire, mais il arrive que le service Internet tombe encore en panne pour les utilisateurs. Néanmoins, la disponibilité continue est un objectif louable qui permet de fournir le meilleur service possible aux utilisateurs.

De quel niveau de disponibilité une application web a-t-elle besoin ?

Plus une application est disponible, plus les ressources qui doivent être consacrées à son support sont importantes. En d'autres termes, une disponibilité de 99,999 % peut être coûteuse. Les développeurs doivent décider du temps d'arrêt que leurs clients ou leurs clients tolèrent, et développer en conséquence.

Heureusement, Cloudflare rend l'architecture à haute disponibilité beaucoup plus accessible aux développeurs d'applications. Cloudflare prévoit l'équilibrage de charge, la mise en cache, la diffusion de flux, l'atténuation des attaques DDoS et la gestion native des bots, le tout intégré au service. Cloudflare propose même une plateforme de développement permettant à ces derniers de créer de nouvelles fonctionnalités, voire des applications entièrement nouvelles, qui s'exécutent sur un réseau mondial, présent dans 335 villes à travers le monde.

Découvrez comment Cloudflare peut garantir la disponibilité des applications.