Cloudflare Waiting Room

C'est avec plaisir que nous annonçons aujourd'hui le lancement du service File d’attente de Cloudflare ! Le service sera tout d'abord accessible à certains clients par le biais d'un nouveau programme appelé « projet Fair Shot », visant à résoudre le problème de la demande écrasante de vaccinations contre la COVID-19, qui entraîne la défaillance des sites de prise de rendez-vous. La disponibilité générale du service sera ajoutée à nos offres PME et Entreprise dans un avenir proche.

Attendez… Vous vous enthousiasmez à propos… d'une salle d'attente ?

La plupart d'entre nous connaissent le concept de la salle d'attente, mais l'idée de devoir nous y retrouver ne nous enchante que rarement. En général, notre première expérience en la matière se situe dans le cabinet de notre médecin, car même si vous avez pris rendez-vous, il arrive parfois que ce dernier soit en retard (ou qu'un patient l'ait été). Comme le médecin ne peut voir qu'une seule personne à la fois, le concept de salle d'attente vit le jour, à titre de mécanisme d'organisation de la file d'attente des patients.

Les serveurs peuvent traiter plus de demandes simultanées qu'un médecin, mais il peut leur arriver d'être débordés eux aussi. Si vous avez déjà essayé d'acheter des billets pour un concert ou un événement populaire (à l'époque précédant la COVID donc), vous avez probablement déjà rencontré une salle d'attente en ligne. Cette dernière permet de limiter les requêtes entrantes vers une application et place ces dernières dans une file d'attente virtuelle. Lorsque le nombre d'utilisateurs présents au sein de l'application se réduit, de nouveaux utilisateurs sont autorisés à y accéder, en fonction de seuils définis que l'application peut traiter. Ce mécanisme permet d'éviter que les serveurs qui prennent en charge l'application ne soient submergés par un trop grand nombre de requêtes, tout en garantissant un traitement équitable du point de vue de l'utilisateur : les utilisateurs qui tentent ainsi d'accéder à une ressource lorsque le système est surchargé ne sont pas injustement laissés de côté et contraints de se reconnecter, dans l'espoir de retrouver une place dans la file d'attente.

Pourquoi maintenant ?

Vu que nous ne sommes pas prêts d'assister à un concert en live (du moins pour bon nombre d'entre nous), pourquoi Cloudflare lance-t-elle ce service aujourd'hui ?

Les concerts restent peut-être hors de portée à l'heure actuelle, mais les effets secondaires de la pandémie de COVID-19 ont engendré un énorme besoin en matière de files d'attente. Tout d'abord, compte tenu de la distanciation physique et de la fermeture de nombreuses entreprises et institutions gouvernementales, les clients et les citoyens se sont tournés vers les canaux en ligne, avec pour résultat une accentuation considérable de la pression sur les infrastructures professionnelles et administratives.

Deuxièmement, la pandémie et ses conséquences ont conduit de nombreuses personnes à travers le monde à compter sur des ressources dont elles n'avaient pas besoin douze mois plus tôt. Pour être précis, il s'agit bien souvent de ressources liées à la santé ou à l'administration, comme les sites web d'assurance chômage, par exemple. L'impact de la COVID-19 n'a jamais été pris en compte dans le calcul de la charge maximale configurée pour ces infrastructures en ligne. Nous constatons l'émergence d'un phénomène similaire concernant les sites web liés à la vaccination.

Historiquement, le nombre d'organisations qui avaient besoin d'une file d'attente était assez faible. La nature de la plupart des activités en ligne implique généralement une charge d'utilisateurs plus constante, plutôt que d'énormes pics de personnes présentes toutes en même temps. Ces organisations se sont dotées de files d'attente personnalisées et intégrées en profondeur à leur application (par exemple, pour l'achat de billets). Avec le service File d’attente de Cloudflare, aucune modification du code de l'application n'est nécessaire : une file d'attente peut ainsi être mise en place en quelques minutes pour n'importe quel site web, et ce sans écrire une seule ligne de code.

Que vous soyez architecte en ingénierie ou analyste d'opérations commerciales, la configuration d'une file d'attente est simple. Notre service rapide et facile à utiliser vous permet de vous assurer que vos applications sont fiables et protégées contre les pics de trafic inattendus. L'activation automatique et le contrôle dynamique du flux de sortie figurent également au rang des autres fonctionnalités que nous avons jugées importantes. En d'autres termes, une file d'attente doit s'activer automatiquement lorsque les seuils sont dépassés, tout en laissant sortir des compartiments d'utilisateurs de différentes tailles lorsque les utilisateurs terminent leurs tâches dans l'application, avant d'en accueillir de nouveaux déjà dans la file d'attente. C'est du moins ainsi qu'une telle file devrait fonctionner. Enfin, nous avons constaté l'incidence majeure de la COVID-19 sur les utilisateurs et les entreprises, notamment, sans s'y limiter, sur le secteur de la santé et l'administration. Nous souhaitions proposer un autre moyen de garantir la disponibilité et le caractère fonctionnel de ces applications, afin que tous les utilisateurs puissent recevoir les soins dont ils ont besoin, sans erreurs au sein de leur navigateur.

Comment fonctionne le service File d’attente de Cloudflare ?La fonctionnalité File d’attente repose sur notre réseau périphérique et notre solution Workers. En nous appuyant sur cette dernière et nos nouvelles offres Durable Objects, nous sommes parvenus à éliminer toute nécessité de codage de la part de nos clients afin de proposer un produit homogène, prêt à l'emploi, bref tout simplement « fonctionnel ». En outre, l'utilisation de Workers nous permet de bénéficier de ses avantages en termes d'évolutivité et de performances, afin de veiller au maintien d'une latence extrêmement faible concernant la surcharge d'exécution, de nous assurer que les estimations de durées présentées aux utilisateurs finaux restent aussi précises que possible et de ne pas conserver un utilisateur dans la file d'attente plus que nécessaire. Toutefois, l'établissement d'un système centralisé au sein d'un réseau décentralisé demeure une tâche ardue. Lorsqu'une application reçoit des requêtes provenant du monde entier, il devient fondamental de disposer d'un aperçu général (tout en restant précis) de la charge entrante et sortante d'une application donnée.

Une requête transitant par le réseau Cloudflare, sans file d'attente
Une requête transitant par le réseau Cloudflare, sans file d'attente

Les requêtes nécessitent toujours un certain temps pour parcourir la planète, aussi rapides soient-elles. Un scénario unique de conditions d'utilisation extrêmes se présentait donc à nous. Que se passerait-il si un site web recevait un trafic raisonnable en provenance d'Amérique du Nord et d'Europe, mais qu'un fort pic de trafic originaire d'Amérique du Sud survenait soudainement ? Comment savoir à quel moment nous devons continuer à laisser les utilisateurs accéder à l'application et à quel moment nous devons activer la file d'attente afin de protéger les serveurs d'origine contre la surcharge ?

Grâce à des choix techniques judicieux et à notre solution Workers, nous avons pu créer un système capable de se synchroniser presque immédiatement avec la demande mondiale concernant une application et de maintenir cette synchronisation. Nous bénéficions ainsi des informations nécessaires sur les circonstances pendant lesquelles nous devons ou non placer les utilisateurs en file d'attente. L'utilisation de notre réseau mondial Anycast (composé de plus de 200 datacenters) nous permet d'éliminer chaque point de défaillance et de protéger l'infrastructure de nos clients, tout en assurant une expérience exceptionnelle aux utilisateurs finaux, qui devront attendre quelques instants avant d'accéder à l'application lorsque la charge est élevée.

Une requête transitant par le réseau Cloudflare, alors qu'une file d'attente est configurée
Une requête transitant par le réseau Cloudflare, alors qu'une file d'attente est configurée

Configuration d'une file d'attente

La configuration d'une file d'attente se révèle incroyablement facile et rapide ! Dans sa version la plus simple, l'utilisateur ne doit renseigner que cinq champs : 1) le nom de la file d'attente, 2) un nom d'hôte (qui sera déjà prérempli avec le nom de la région dans laquelle la file est configurée), 3) le total des utilisateurs actifs autorisés au sein de l'application à un moment donné, 4) le nombre de nouveaux utilisateurs par minute autorisés au sein de l'application et 5) la durée de la session pour un utilisateur donné. Aucun codage ni modification au niveau de l'application n'est nécessaire.

Les clients qui ne souhaitent pas ajouter de marque supplémentaire disposent de la possibilité d'utiliser notre modèle de file d'attente par défaut. Cette option permet de simplifier le processus de mise en service d'une telle file.

Et voilà ! Il vous suffit de cliquer sur Save (Enregistrer) et votre file d'attente sera bonne pour le service !

Les clients disposant de plus de temps et de compétences techniques suivront le même processus et bénéficieront de capacités de personnalisation complètes. Ils pourront ainsi personnaliser la file d'attente à l'image de leur marque afin de s'assurer qu'elle correspond à l'aspect général de leur produit.

Enfin, la gestion de différentes files d'attente s'avère extraordinairement simple. Grâce à notre tableau de gestion des files d'attente, vous pouvez profiter d'un aperçu complet sur les files en cours d'utilisation (qu'elles placent ou non des utilisateurs dans la file à l'heure actuelle) et/ou désactivées.

Nous sommes particulièrement impatients de placer la puissance de notre service File d’attente entre les mains de nos clients, afin de leur permettre de continuer à se concentrer sur leur activité et leur clientèle. Gardez un œil sur notre blog : nous publierons bientôt un nouvel article traitant des importantes mises à jour apportées à la fonctionnalité File d’attente dans le cadre de notre offre Entreprise !