Mettre à l’échelle des applications ASP.NET Core SignalR avec le service Azure SignalR

Développer des applications SignalR

SignalR est actuellement disponible dans deux versions pour une utilisation avec des applications web :

  • ASP.NET SignalR
  • new ASP.NET Core SignalR

ASP.NET Core SignalR est une nouvelle version entièrement réécrite, Par conséquent, ASP.NET Core SignalR n’est pas compatible avec la version antérieure de SignalR. Les API et les comportements sont différents. Azure SignalR Service prend en charge les deux versions.

Azure SignalR Service vous permet d’héberger votre application web réelle sur plusieurs plateformes (Windows, Linux et macOS) Azure App Service, IIS, Nginx, Apache, Docker. Vous pouvez également utiliser l’auto-hébergement dans votre propre processus.

Azure SignalR Service est le meilleur choix si les objectifs de votre application sont les suivants :

  • prise en charge des fonctionnalités les plus récentes pour la mise à jour des clients web avec des mises à jour de contenu en temps réel,
  • s’exécutant sur plusieurs plateformes (Azure, Windows, Linux et macOS)
  • hébergement dans différents environnements

Pourquoi ne pas déployer SignalR soi-même ?

Il s’agit toujours d’une approche valide pour déployer votre propre application web Azure prenant en charge SignalR en tant que composant principal sur votre application web globale.

L’une des principales raisons d’utiliser le service Azure SignalR est la simplicité. Avec le service Azure SignalR, vous n’avez pas besoin de gérer les problèmes de performances, d’évolutivité ou de disponibilité. Le contrat de niveau de service de 99,9 % s’en occupe pour vous.

Par ailleurs, WebSocket est généralement la technique privilégiée pour prendre en charge des mises à jour de contenu en temps réel. Toutefois, plus le nombre de connexions WebSocket persistantes augmente, plus l’équilibrage de charge devient problématique. Solutions courantes : équilibrage de charge DNS, équilibreurs de charge matériels et équilibrage de charge logicielle. Le service Azure SignalR gère ce problème à votre place.

Pour ASP.NET Core SignalR, une autre raison peut être que vous n’avez pas besoin d’héberger une application web du tout. La logique de votre application web peut utiliser l’informatique serverless. Par exemple, votre code n’est hébergé et ne s’exécute qu’à la demande avec des déclencheurs Azure Functions. Ce scénario peut être difficile, car votre code s’exécute uniquement à la demande et ne conserve pas de longues connexions avec les clients. Le service Azure SignalR est en mesure de gérer cette situation, car il gère déjà les connexions à votre place. Pour plus d’informations, consultez la vue d’ensemble sur l’utilisation de SignalR Service avec Azure Functions. Étant donné que ASP.NET SignalR utilise un autre protocole, ce mode serverless n’est pas pris en charge pour ASP.NET SignalR.

Comment fonctionne la mise à l’échelle ?

Il est courant de mettre à l’échelle SignalR avec SQL Server, Azure Service Bus ou Azure Cache pour Redis. Le service Azure SignalR gère l’approche de mise à l’échelle à votre place. Si les performances et le coût sont comparables à ces méthodes, il vous épargne la complexité associée à la gestion de ces services. Il suffit de mettre à jour le nombre d’unités du service. Chaque unité prend en charge jusqu’à 1 000 connexions clientes.

Étapes suivantes