Étude de cas - NCache booster les performances d’une application de gestion de tâches

Image d'en-tête

Après une migration facile vers NCache, il a commencé à agir comme le ciment qui maintient notre application ensemble. Et les différentes fonctionnalités qu'il propose ont été un véritable plus, notamment les files d'attente, que nous avons utilisées à outrance.

Analyste de support d’applications d’entreprise
 

Pays ou région:
Europe

Industrie:
Défense militaire

Profil de l'entreprise:
Il s'agit d'un ministère européen de la défense qui œuvre à créer une connexion entre plusieurs nations, leur permettant de se consulter et de collaborer sur des projets de sécurité tout en coordonnant les activités internationales de gestion des crises.

NCache permet à cette organisation de maintenir une haute disponibilité et d'accélérer les performances de son application de gestion des tâches.

Télécharger le PDF
 

Introduction

Ces organisations exigent une haute disponibilité, une cohérence des données et une gestion simple des tâches. Cette organisation a notamment conçu une application de suivi à l'usage de ses employés pour gérer les informations et les tâches entre les différents départements. Les salariés se connectent à l'application et saisissent leurs tâches quotidiennes. Chaque service concerné peut superviser les employés et vérifier le statut de leurs tâches. L'entreprise utilisait auparavant Redis pour leurs processus de développement, mais ont été confrontés à des limitations dans leur déploiement sur leurs serveurs. De plus, en tant que principal contributeur à la paix sur la scène internationale, ils souhaitaient améliorer leur application de suivi pour être informé de tout changement survenant en temps réel.

 

Points douloureux de l’application

Ils nécessitent un bon mécanisme de mise en cache. Ils ont évalué Redis. Très tôt, ils ont découvert que Redis ne répondait pas à leurs exigences en matière de structure de données, ce qui signifie qu'ils ne pouvaient pas déployer Redis dans leur QG. De plus, la migration vers Redis n'a pas été aussi facile qu'on aurait pu le penser, Redis ne répondait pas aux exigences techniques de l'organisation. Redis est développé en C++ sous Linux. Et il n’est pas officiellement pris en charge sous Windows. Comme l'application de l'organisation a été créée à l'aide de .NET 6, l'intégration d'un produit qui n'est pas natif de .NET peut entraîner des problèmes.

 

Comment NCache S'intègre-t-il dans leur solution ?

NCache leur fournit une solution en mémoire flexible et évolutive pour leur application à un seul niveau ainsi que ses fonctionnalités avancées. Ils bénéficient de notifications de modification de données plus rapides pour les traiter et y travailler.

Ce fut une migration facile depuis Redis à NCache et c'était assez simple.

dit le Analyste de support d’applications d’entreprise de l'équipe.

Quoi que leur application semble manquer, NCache fourni les solutions optimales comme correctif.

Les modifications imprévues ou la maintenance planifiée n'affecteront pas les performances de l'application car elle utilise une topologie de cache répliquée : si un nœud est en panne, l'autre nœud le compense. Les exigences de l'organisation en matière de structure de données ont été remplies par NCache Des files d'attente très intuitives et faciles à mettre en œuvre. Du SignalR backplane vers Cache Loader, fournisseur de source de sauvegarde (Read-Through) et NCache serrures; l'application de suivi bénéficie de toutes ces fonctionnalités puissantes de NCache.

De plus, NCache est une solution de mise en cache distribuée native .NET qui peut être déployée sur Linux ainsi que Windows. Cela les a aidés dans leur déploiement, car Redis ne prend en charge que Linux. La plupart des applications .NET fonctionnent sous Windows et maintenant .NET Core les applications peuvent fonctionner à la fois sous Windows et Linux. Il est donc devenu essentiel de s’assurer que leurs caches distribués prennent également en charge ces deux systèmes d’exploitation. Et NCache en tant que l'une des meilleures solutions de mise en cache, fournit ce support.

Alachisoft Produit:
NCache

Besoins du client satisfaits :

  • Migration/déploiement faciles et directs
  • De meilleures structures de données
  • Évolutivité
  • Déplacements réduits dans la base de données
 

Présentation de l'architecture de l'application et déploiement avec NCache

L'architecture applicative comprend principalement les composants suivants :

  • L'extrémité avant:
    Le front-end est conçu à l’aide du cadre SVELTE JS.
  • Couche logique :
    La couche logique interagit avec la base de données à l'aide des API Rest. Il utilise .NET Core 6 API Web, dispose de hubs de notification SignalR et est livré avec des API .NET pour SearchService et les services de collaboration.
  • Back-end :
    Le back-end est basé sur SQL Server comme magasin de données. Les sources de données incluent SQL Server, ADFS, Sharepoint et Document Management Server. La source de sauvegarde (NCache Read-Through) est implémenté dans cette couche qui utilise .NET 6 avec NCache 5.3 SP1.

Pour un examen plus approfondi de l'application, l'API Web contient le service Action, Notification Hub ainsi que SignalR. NCache agit comme une plaque tournante centrale entre les différentes parties de l’application. L'utilisateur se connecte à l'aide d'ADFS (Active Directory Federation Services), accède au front-end et appelle l'API Web. L'API Web est chargée de créer cette action et de la mettre dans la file d'attente à l'intérieur du NCache. Le service d'action effectue plusieurs opérations telles que l'interrogation de la file d'attente, le traitement de l'objet tâcheur, etc.

S'il y a un élément présent dans le service d'action, il le traitera. Dans le cadre du traitement, le service Action envoie également les notifications via un Notification Hub. Ce service d'action modifie l'état de l'objet de données "Tasker" - en cas de changement d'état des données où de nouvelles données peuvent être ajoutées ou les données précédemment ajoutées sont mises à jour. Cela aide les utilisateurs à analyser le traitement et envoie des notifications à tous les utilisateurs concernés concernés par ce changement. L'application dispose également d'un service de collaboration pour gérer les tâches à l'aide de SharePoint.

Schéma architectural utilisant NCache
Figure 1 - Schéma architectural utilisant NCache

Actuellement, l'application utilise 2 serveurs à charge équilibrée hébergeant le front-end, la couche logique et NCache. De plus, il existe 1 serveur de base de données pour prendre en charge les serveurs. Ils disposent d'un cache général dans lequel ils stockent des files d'attente qui mettent également en cache certaines données de référence. Ils disposent également de 1 autres caches pour stocker des données statiques, c'est-à-dire des « tâches ». Le cache général et les caches statiques ont tous deux une source de sauvegarde (lecture) et un chargeur implémentés.

 

SignalR Backplane

L'organisation étend l'utilisation de l'application avec le SignalR backplane. Lorsque plusieurs utilisateurs utilisent l'application Web, ils attendent des commentaires sur l'objet tasker. Les commentaires leur sont fournis via un hub de notification qui utilise SignalR. Cela a éliminé le besoin d’actualiser la page Web à chaque fois pour demander de nouveaux messages.

Des applications Web ASP.NET en temps réel peuvent être créées avec SignalR, où le serveur diffuse des mises à jour à tous les utilisateurs connectés dès qu'une mise à jour est déclenchée. Ce faisant, le temps de réponse aux demandes de mises à jour des utilisateurs est réduit. NCache offre la prise en charge de SignalR en fournissant une extension au fournisseur SignalR. Le fournisseur dispose d'enregistrements de tous les serveurs Web concernés par l'application.

 

Structure des données de file d'attente pour des données cohérentes

Ils ont utilisé de manière excessive la structure de données de file d'attente fournie par NCache. Les files d'attente sont stockées dans le cache général pour conserver les informations en cours de traitement au moment de l'exécution. L'API Web ajoute un nouvel élément à la file d'attente. Ensuite, Action Service interroge cette file d'attente et si un nouvel élément est trouvé, il exécute les processus requis. La file d'attente entière est stockée dans NCache. Chaque fois qu'ils doivent récupérer un élément, ils n'ont pas besoin de parcourir toute la file d'attente car c'est non seulement un processus lent mais également coûteux. NCache utilise le référencement pour obtenir l'élément requis qui ne nuit pas aux performances.

La structure de données Queue est livrée avec différentes API comme GetQueue, qui vérifie si un élément existe ou non dans le cache à l'aide de la méthode Contains. De même, obtenir l'élément le plus haut d'une file d'attente, copier une file d'attente source entière dans le tableau unidimensionnel, supprimer des éléments de la file d'attente, enregistrer des événements (basés sur des clés et structures de données), verrouiller et déverrouiller les files d'attente pour la cohérence des données - tout cela sont les autres fonctionnalités qui NCache offres avec la structure de données Queue.

 

Verrouillage des files d'attente pour l'intégrité des données

L'organisation introduit également l'utilisation du verrouillage proposé par NCache. Par exemple, ils peuvent verrouiller la file d'attente chaque fois que l'utilisateur y lit ou y écrit, disons pendant environ 20 secondes à l'aide de l'API Lock afin de maintenir l'intégrité des données. Si la file d'attente requise est libre et prête à être à nouveau utilisée, l'utilisateur la déverrouille à l'aide de l'API Unlock. Lorsque nous parlons de mises à jour simultanées, NCacheLa fonction de verrouillage de est prête à servir et à assurer l'intégrité et la cohérence des données.

Qui sommes-nous Alachisoft:
Alachisoft fournit un cache distribué en mémoire haute performance populaire appelé NCache. NCache est un middleware Open Source qui s'exécute dans un environnement de production et améliore les performances et l'évolutivité des applications Web .NET, des applications de service SOA et des applications générales de serveur à fort trafic. Depuis 2005, NCache a une expérience éprouvée avec des centaines de clients partout dans le monde et spécialement aux États-Unis, au Royaume-Uni et en Europe occidentale.

Vous pouvez télécharger un essai gratuit de 30 jours entièrement fonctionnel de NCache de ici.

Alachisoft
Siège social
12005 Ford Road, Suite 520
Dallas, TX 75234

US: +1 (214) 764-6933
UK: +44 207 993-8327

sales@alachisoft.com
support@alachisoft.com

 

Source de sauvegarde (mise en cache en lecture directe)

Ils ont utilisé le fournisseur Read-Through implémenté dans le magasin de caches général et statique de l'application - pour récupérer les données de la source de données au cas où elles ne seraient pas présentes dans le cache. Cela minimise les déplacements réseau supplémentaires vers la base de données. NCache propose un fournisseur de lecture continue qui permet aux utilisateurs de communiquer avec la source de données. Dans Read-Through Caching, en cas d'échec du cache, NCache contactera le fournisseur pour charger les données derrière l'appel get.

Le fournisseur Read-Through est configuré à l'aide du IReadThruProvider pour .NET. Si un élément est introuvable dans le cache, les méthodes ChargerDepuisSource ainsi que LoadDataTypeFromSource fournir une logique pour charger l’objet ou le type de données à partir de la source de données définie.

 

Cache Loader pour pré-remplir le cache

NCache fournit une autre fonctionnalité puissante, le Chargeur de démarrage du cache qu'ils utilisent dans leur application de suivi. L'application pré-remplit les données dans le cache au démarrage. Cela permet non seulement de réduire les coûts de réseau, mais également de rendre les données hautement disponibles. Le but du Cache Loader est d'éviter la latence même lors de la requête initiale, mais comme le Cache Loader s'exécute sur un autre service, il est techniquement asynchrone. L'application de suivi conserve toujours les données les plus fréquemment utilisées dans le cache au démarrage. Cette fonctionnalité a contribué à améliorer les performances de l’application, ainsi que la gestion du débit des requêtes.

 

Aller de l'avant avec NCache

L'organisation bénéficie de NCache dans de nombreux domaines comme expliqué ci-dessus. Dans le cadre de leur croissance future, ils envisagent d'utiliser NCacheLa fonctionnalité Groupes de , ainsi que ses notifications d'événements et sa messagerie Pub/Sub, car le service d'action doit interroger à chaque fois pour vérifier les mises à jour. NCache est capable de gérer tout cela à leur place sans manquer de performances.

Que faire ensuite?

© Copyright Alachisoft 2002 - . Tous droits réservés. NCache est une marque déposée de Diyatech Corp.