NCache Haute disponibilité et maintenance planifiée

Cette vidéo montre comment NCache maintient vos données hautement disponibles en offrant une disponibilité et une fiabilité des données à 100 %. Dans cette démo particulière, je vais démarrer et arrêter un nœud de serveur de cache à partir d'un cluster de cache en cours d'exécution et je vais vous montrer comment NCache gère cela avec succès, sans interruption ni perte de données, pour vos applications clientes.

Aujourd'hui, je vais parler de "comment vous pouvez atteindre une haute disponibilité dans NCache et comment NCache vous offre une haute disponibilité ». Comme tu le sais, NCache est utilisé dans des applications critiques, qui ne peuvent se permettre aucun temps d'arrêt.

Voici une image de vous avez une batterie de serveurs d'applications qui utilise un cluster de cache de plusieurs serveurs et, ensuite, il y a plusieurs sources de données. Et, il s'agit généralement d'au moins deux serveurs de cache ou plus.

NCache Utilisé dans les applications critiques
NCache Utilisé dans les applications critiques

Et, NCache vous fournit un clustering de cache dynamique, où vous pouvez ajouter ou supprimer des serveurs de cache lors de l'exécution sans arrêter l'application, car NCache a une architecture peer-to-peer. Et je vais le démontrer dans la vidéo d'aujourd'hui.

Je vais utiliser la topologie de réplique de partition, où nous commencerons et continuerons à ajouter plus de serveurs et vous verrez dans cette topologie que chaque serveur a une partition. Donc, si je commence avec un serveur, il n'y a qu'une seule partition et la réplique est également sur la même partition ou, peut-être qu'il n'y a pas de réplique, puis lorsque vous ajoutez un deuxième serveur, vous avez deux partitions. Ainsi, toutes les données du cache sont divisées en deux et chaque partition est répliquée sur un serveur différent.

Topologie de mise en cache : cache de partition-réplication

Et puis, lorsque vous ajoutez un troisième serveur, vous avez trois partitions et les mêmes données sont divisées en trois partitions. Chaque partition contient désormais un tiers des données au lieu d'avoir la moitié des données et chaque partition est sauvegardée sur un serveur différent. Donc, c'est ce que je vais démontrer.

Ajout de clients et de serveurs lors de l'exécution

Permettez-moi de sauter rapidement dans le produit et de vous montrer ceci. J'ai trois serveurs de cache que j'utiliserai. Je vais commencer par un, puis j'en ajouterai d'autres. Et, puis j'ai un client, je suis en fait en ce moment, assis sur la machine cliente. Donc, je vais juste cliquer dessus et ouvrir le NCache Web Manager, qui est un outil de gestion basé sur le Web. Et actuellement, c'est comme ça NCache vient quand vous installez NCache. Donc, comme vous avez installé NCache sur ces trois serveurs, sur chaque serveur, il y avait un "démocache" qui a été installé. Donc, je vais maintenant démarrer la démocache et vous verrez que la démocache est lancée.

Démarrer un cache
Démarrer un cache

Une fois qu'il est lancé, j'ouvrirai également des statistiques dessus et je surveillerai également le cache. Le monitoring me donne un très beau tableau de bord. Il existe un tableau de bord de serveur et un tableau de bord de rapport. Le tableau de bord du rapport ressemble beaucoup à la fenêtre des statistiques. Donc, je vais juste m'en tenir au tableau de bord du serveur et je le garderai ici. Et, maintenant que j'ai ceci en cours d'exécution, je dois maintenant exécuter les clients.

NCache est livré avec un outil de test de stress basé sur Powershell. Alors, laissez-moi taper le mot NCache. Il y a une gestion Powershell, donc, je vais lancer 'Test-stress' et je vais lui donner un nom de mon cache, qui est 'democache', comme vous pouvez le voir juste ici'Démocache Test-Stress'. Le nom du cache est insensible à la casse, vous pouvez donc le saisir comme vous le souhaitez.

Outil de test d'effort
Outil de test d'effort

Lorsque je lance l'application, c'est mon outil de test d'effort. La raison en est que vous n'avez pas à faire de programmation pour commencer à tester NCache. Vous pouvez également simuler le stress grâce à cet outil de test de stress. C'est pourquoi on l'appelle outil de test de résistance. Mais, vous savez, imaginez que ce serait votre application.

Maintenant, si je viens à ma fenêtre de statistiques, vous verrez que j'ai un décompte d'environ, vous savez, 400 éléments qui ne cessent d'augmenter. J'ai environ 981 ou environ 1000 requêtes par seconde de ce client.

Fenêtre Statistiques
Fenêtre Statistiques

Je vais maintenant lancer une deuxième application client. Ainsi, je peux continuer à ajouter plusieurs clients en démarrant plusieurs instances d'outils de test de stress ou, je suis désolé, des instances Powershell. Donc, si je viens ici, je répète Démocache Test-Stress. Une fois que j'ai fait cela, vous verrez que le nombre ou la demande a presque doublé maintenant. Parce que, comme vous l'avez vu sur cette image, chaque client place sa propre charge de transaction sur le serveur, la capacité de transaction du serveur a donc presque doublé. Je peux également voir ici que dans le tableau de bord de mon serveur, j'ai deux clients connectés à un cluster de cache à un nœud.

Ajout d'un deuxième client
Ajout d'un deuxième client

Donc, il n'y a qu'un seul serveur dans le cluster que j'utilise actuellement. D'accord, je vais maintenant, supposons que ce qui se passe dans la vraie vie, c'est que, vous savez, votre capacité augmente et en passant, nous recommandons un minimum de deux serveurs de cache. Ainsi, vous ne devriez jamais avoir un seul serveur de cache en cours d'exécution. Mais, je voulais juste commencer avec un, donc, je pourrais ajouter deux serveurs à l'exécution pour vous montrer.

Donc, maintenant, la prochaine chose que je fais est, je vais ajouter un deuxième serveur de cache et le deuxième serveur de cache que je vais ajouter est le 117. Je vais continuer et 117, je dirai ajouter. Il a été ajouté mais il s'est arrêté. Donc, je vais cliquer ici et dire commencer. Cela ne fera que démarrer le nœud du serveur.

Ajout d'un deuxième serveur de cache
Ajout d'un deuxième serveur de cache

Une fois que j'ai commencé ici, vous verrez qu'un deuxième nœud sera ajouté ici, là. Et, le décompte du cache a chuté. Je ne vous ai pas montré que le nombre de cache était en fait le double, maintenant qu'il s'agit de deux serveurs, le nombre de cache a chuté et les demandes de transaction par seconde ont été divisées par deux. Parce que la moitié des requêtes sont traitées par ce serveur cache, la moitié d'entre elles sont traitées par ce serveur cache. Donc, c'est comme ça que le compte a chuté.

Stats

Donc, maintenant, je viens d'ajouter un serveur de cache sans arrêter l'application. Vous pouvez voir que l'outil de test de résistance s'exécute ici et qu'il s'exécute également ici. Aucun problème. Et ce qui s'est passé maintenant, c'est que mes partitions, donc, j'étais un serveur, maintenant je suis un cluster à deux serveurs. Donc, il y a la partition un, la partition deux et chaque partition est sauvegardée sur l'autre serveur. Alors, laissez-moi vous montrer ce que c'est. Donc, voici la partition un. Il a obtenu autant d'articles et sa réplique est ici. Donc, vous voyez que c'est presque la même quantité que celle-ci. Et puis c'est ma partition deux. Environ 1500 quelque chose et c'est sauvegardé ici.

Asynchrone. Réplication

Maintenant, cette réplication est asynchrone. Ainsi, ce décompte ne sera pas toujours exact. Mais, ce sera finalement exact même si vous arrêtez la transaction.

D'accord. Maintenant, disons que ma charge de transaction ne cesse de croître. Mon entreprise se porte bien et j'ai besoin d'ajouter plus de serveurs car j'ai besoin d'augmenter la capacité de transaction. Je peux aussi ajouter plus de clients parce que c'est ce qui va se passer.

Premièrement, je vais ajouter plus de clients parce que la première chose que je vais faire est d'ajouter plus de clients, plus de serveurs d'applications, je veux dire. Et cela entraînera une charge de transaction plus élevée. Regardez juste, cette charge de transaction va augmenter, là, voyez. Il est passé à 1182 par serveur au lieu de 800 quelque chose et en fait il est encore plus passé à 1200 quelque chose.

Charge de transaction plus élevée
Charge de transaction plus élevée

Ainsi, la charge de transaction continue d'augmenter. Je peux aussi le voir ici. Je peux voir la demande par seconde sur chaque serveur, qui est distribuée au fur et à mesure que j'ajoute plus de serveurs, elle augmente.

Donc, maintenant que j'ai ajouté plus de clients, à un moment donné, je devrai, vous savez, je remarquerai que mes serveurs de cache commencent à ralentir parce que la capacité de transaction atteint son maximum ou peut-être la capacité de stockage de combien de mémoire J'ai dans chaque serveur est au maximum. Donc, je dois ajouter encore un autre serveur.

Dans tous les cas, comme je l'ai dit, nous recommandons un minimum de deux serveurs. Ainsi, vous ne devriez jamais avoir au moins un seul cluster de serveurs en production. Parce que cela ne vous donne pas une haute disponibilité. Ainsi, lorsque vous en avez au moins deux et que vous atteignez la limite de capacité de ces deux, alors il est temps d'ajouter un troisième serveur.

Comment ajouter un troisième serveur ? J'ai un troisième serveur ici 157. Je viendrai ici tout de suite et je dirai ajouter un serveur et c'est 157. Donc, je viendrai ici et ajouterai 157. Encore une fois, il est ajouté mais il s'est arrêté. Je viendrai ici, sélectionner ceci et dire commencer.

Ajout d'un troisième serveur de cache
Ajout d'un troisième serveur de cache

Une fois que je commence à remarquer, ce 1800 va baisser. Regardez, dès que le troisième serveur démarre, il partagera la charge, là-bas. Vous voyez, cela se résumait à environ 1100 quelque chose chacun.

Partage de charge
Partage de charge

Parce que, maintenant, j'ai trois serveurs au lieu de deux et comme je l'ai montré ici, lorsque vous avez trois serveurs, vous avez trois partitions. Ainsi, les données de ces deux partitions sont divisées en trois partitions.

Donc, maintenant, chaque partition a une réplique sur un serveur différent et c'est ainsi que les données sont réellement distribuées. Donc, je viens de démontrer que vous pouvez ajouter plus de serveurs sans arrêter ni l'application ni le cache. Donc, tout est… Je veux dire que l'application n'est pas du tout affectée par ce changement, par l'ajout de serveurs supplémentaires, ce qui est une bonne chose à propos de NCache qu'il vous permet de faire cela.

D'accord. Donc, maintenant, il arrive un moment où vous devez peut-être également arrêter un serveur. Il existe deux façons de mettre un serveur hors service. Celui que vous réduisez de façon permanente parce que vous réduisez votre capacité. Peut-être que vous passez de trois serveurs à deux parce que c'est une activité saisonnière. Vous avez eu un pic d'utilisation pendant la période des fêtes et maintenant vous allez revenir à votre configuration par défaut, vous savez, plus petite. Ainsi, certains de ces serveurs vont être supprimés. Alors, allons-y et faisons cela.

Je vais supprimer le serveur 157 dans ce cas. Donc, je vais choisir le serveur 157 et je dirai stop. Je vais d'abord arrêter. Maintenant, comme vous pouvez le voir, alors que je m'arrête, ce décompte va baisser et ce décompte va encore augmenter. Vous voyez, c'est encore passé à environ 2000 chacun. Cela signifie que les données sont passées de ceci à cela.

Suppression/Arrêt du serveur lors de l'exécution
Suppression/Arrêt du serveur lors de l'exécution

Je suis passé d'une configuration à trois partitions à une configuration à deux partitions. Chaque partition est répliquée, comme vous pouvez le voir ici chaque partition. Donc, cette partition est répliquée ici et cette partition est répliquée ici, d'accord. Et, aucun effet sur les applications comme vous pouvez le constater.

Donc, cela gère à peu près la situation où vous devez ajouter un serveur, car vous devez augmenter la capacité ou vous devez arrêter un serveur, car votre besoin de capacité a changé. C'est en raison de l'utilisation saisonnière que le besoin de capacité a changé.

Mode de maintenance

Il existe une autre situation que nous appelons le mode de maintenance, où vous devez arrêter un serveur mais pas parce que votre capacité a diminué, c'est parce que vous devez effectuer une maintenance. Disons que vous devez appliquer des correctifs du système d'exploitation ou quelque chose du genre. Donc, vous devez arrêter un serveur pendant peut-être cinq minutes, dix minutes, une demi-heure quelque chose. Mais, votre cache contient d'énormes quantités de données. Je veux dire nos clients, ils ont des dizaines de gigaoctets de données sur chaque serveur. Donc, si vous avez un cluster de trois, quatre, cinq, six serveurs et des données combinées de dizaines de gigaoctets sur chaque serveur, l'arrêt d'un serveur a en fait un impact sur les performances. Parce que, maintenant, si vous deviez repartitionner, tout passer de trois partitions à deux partitions, vous allez faire beaucoup de transfert d'état et puis pour quoi, encore une fois pour le rajouter. Nous avons donc proposé une fonctionnalité appelée mode de maintenance, où vous pouvez dire NCache ça va, j'arrête ce serveur mais je ne veux pas que vous repartitionniez le cache, gardez cela comme trois nœuds de partition, la partition un, la partition deux et la réplique trois, qui est juste ici, deviendra la partition trois. Et cela reste actif. C'est un arrangement temporaire. À la fin, une fois que vous avez terminé, vous ramènerez ce nœud et il reviendra à cette image.

Mode de maintenance vers le bas d'un serveur de cache
Mode de maintenance vers le bas d'un serveur de cache

Laissez-moi vous montrer comment vous pouvez faire ça, d'accord. Donc, je vais tout d'abord réaliser à nouveau la configuration à trois serveurs, je vais ajouter ceci, supposons bien que je l'avais supprimé, maintenant je le rajoute. J'aurais dû l'enlever, je l'ai seulement arrêté. Mais, je vais le rajouter. Je suis à nouveau sur un cluster à trois nœuds. Mes données sont uniformément réparties.

Mode de maintenance vers le bas d'un serveur de cache
Mode de maintenance vers le bas d'un serveur de cache

Ma charge de transaction est répartie uniformément et je peux également le voir ici. En fait, cela ne le montre pas encore, il le fera. Mais peu importe. Donc, une fois que j'ai ça, maintenant je dois faire l'entretien. Donc, je vais venir ici et je dirai, d'accord encore une fois, rappelez-vous que chaque nœud a environ 1200 éléments chacun, d'accord.

Donc, si je devais le réduire, à un cluster à deux nœuds, cela devrait aller jusqu'à plus de 2000 éléments dans chaque nœud, ce qui n'est pas ce qui va se passer parce que, je vais venir ici et je dirai, ici, je dirai arrêter cela pour l'entretien.

Arrêter le nœud pour la maintenance
Arrêter le nœud pour la maintenance

Quand, je clique dessus il me demande, combien de temps tu veux le garder en maintenance ? Evidemment, ce timeout est très important car à la fin de ce timeout NCache suppose qu'il ne s'agit plus de maintenance. Parce que, si vous ne rajoutez pas le nœud à ce moment-là, NCache suppose que vous l'avez réellement supprimé de manière permanente, comme l'autre supprimé, que je viens de vous montrer et qu'il supprimera et repartitionnera réellement le cache.

Arrêter le nœud pour la maintenance
Arrêter le nœud pour la maintenance

Mais, si vous le rajoutez dans ce délai et qu'il s'agit d'un délai configurable, si vous le rajoutez dans ce délai, alors NCache fera ce que je viens de vous montrer qu'il ne repartitionnera pas, il gardera simplement cette partition, cette réplique dans un mode de partition temporaire. Alors, permettez-moi de dire, d'accord, je dis d'arrêter ça maintenant. Alors, venons ici 1300, 1300, 1470 et maintenant c'est complètement parti. Mais, notez que ce nombre n'a pas augmenté. Pourquoi? Parce que l'une des répliques est devenue une partition active. Vous ne savez pas lequel à travers cette photo mais le fait que le compte n'ait pas augmenté, la réplique est toujours là. Cette réplique est devenue une partition active. Donc, maintenant, le serveur un a la partition un et la partition trois, le serveur deux a la partition deux et une réplique passive un et, le serveur trois est en panne, ce que je dois faire, vous savez, je dois l'arrêter pour la maintenance.

Mode de maintenance vers le bas d'un serveur de cache
Mode de maintenance vers le bas d'un serveur de cache

Alors, maintenant, vous y allez et vous faites votre entretien. Vous appliquez vos correctifs et, maintenant que vous avez terminé, vous voulez le remettre en place, donc, encore une fois, vous venez ici, vous n'avez même pas besoin de rajouter, dites simplement recommencer parce que cela a été arrêté. Et, au fait, dans tout cela, l'application fonctionnait toujours sans aucune interruption. Donc, tout cela, tous ces changements ne nécessitent aucune interruption d'application. Donc, je vais dire recommencer. Et, une fois que je dis commencer, maintenant regardez, cela va reprendre sa position et il rattrape à nouveau les données et vous verrez qu'il est à nouveau au même niveau, qu'il était auparavant.

Démarrer un nœud lors de l'exécution

Conclusion

Ainsi, comme vous pouvez le voir, j'ai démontré à la fois l'ajout et la suppression de nœuds au moment de l'exécution de manière permanente et également la suppression temporaire d'un nœud pour une maintenance planifiée. Voilà, c'est la fin de ma démo. J'avais l'espoir de vous démontrer que NCache vous offre une grande disponibilité. C'est une disponibilité à 100% où vous n'avez pas besoin d'arrêter l'application. Il n'y a pas d'interruption dans l'application.

Que faire ensuite?

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