En utilisant NCache dans Red Hat OpenShift

Cluster Kubernetes, Docker et Linux

Red Hat Enterprise Linux. Vous pouvez le faire pour Java et .NET Core applications.

OpenShift est une plate-forme d'applications de conteneurs open source de Red Hat basée sur l'orchestrateur de conteneurs Kubernetes pour le développement et le déploiement d'applications d'entreprise.

Si votre application est Java et/ou .NET Core s'exécutant sur Red Hat Enterprise Linux et OpenShift et que vous souhaitez utiliser NCache pour améliorer ses performances et son évolutivité pour les pics de charges de transactions, soyez assuré que NCache prend pleinement en charge cet environnement.

Regardez cette vidéo pour voir à quel point il est facile de déployer NCache dans le cadre de votre cluster Red Hat OpenShift Kubernetes en tant que déploiement Docker.

Aujourd'hui, je vais vous montrer comment vous pouvez utiliser NCache dans la plate-forme de conteneurs Red Hat OpenShift. Comme vous le savez, OpenShift est une plate-forme de conteneurs proposée par Red Hat et elle est construite autour de conteneurs d'applications alimentés par Docker tandis que les services d'orchestration et de gestion sont fournis par Kubernetes.

Il est basé sur Red Hat Enterprise Linux et aujourd'hui, je vais vous montrer les détails étape par étape pour le déploiement et l'utilisation de NCache dans cette plateforme. Alors, commençons rapidement avec ça.

NCache Déploiement

Tout d'abord, passons en revue NCache déploiement dans la plate-forme de conteneur Red Hat OpenShift. Voici un déploiement typique de NCache dans la plate-forme de conteneurs Red Hat OpenShift. Je montre un seul cluster Kubernetes avec différents déploiements d'applications ainsi que NCache déploiement de grappes.

ncache-deploiement-redhat-openshift
NCache Déploiement dans Red Hat OpenShift

Nous avons une application Web Java, qui est à nouveau une image Docker déployée sur différents pods. J'ai à nouveau un service Web Java affiché par différents pods. Ces applications Java utilisent le client Java de NCache, alors que j'ai un déploiement séparé pour ASP.NET Core applications, en utilisant à nouveau une image Docker sous Linux, mais cela utilise le .NET Core client pour NCache la communication. En ce qui concerne le déploiement côté serveur, il utilise Image Docker basée sur Linux pour NCache, qui est disponible sur notre site Web et vous savez, vous pouvez l'utiliser sur Red Hat Enterprise Linux comme indiqué ici et vous savez, vous créez un cluster de cache en utilisant différents Docker NCache Images mises à disposition sur cette plateforme et puis j'ai ceci Service de découverte de cache ainsi que NCache Passerelle de surveillance à distance.

Donc, ce service de découverte est un service sans tête au sein de Kubernetes, que vous pouvez créer dans OpenShift et cela permet à toutes les applications clientes que vous connaissez de se connecter simplement à elles-mêmes, puis cela gérerait le routage et la découverte de toutes les ressources qui font partie du grappe de cache. Par exemple, je n'ai pas besoin de connaître les adresses IP ni aucun détail sur les pods 10, 11 ou 12, je me connecte simplement à ce service de découverte, qui est un service nommé et qui à son tour me dirigerait vers tous les ressources au sein NCache grappe de cache. De même, une passerelle de surveillance à distance se connecte également à ce service de découverte pour permettre aux opérations de surveillance et de gestion d'être effectuées en dehors de ce cluster Kubernetes par n'importe quel administrateur système et je vais vous donner une démonstration pratique sur ces deux manières de créer ces . Il s'agit donc d'un déploiement typique où nous aurions différents types d'applications se connectant à NCache dans un seul cluster Kubernetes.

Voici des détails sur la configuration de notre environnement de démonstration.

démo-environnement-détails
Détails de l'environnement de démonstration

J'utilise 2 NCache serveurs pour formuler un cluster et j'utiliserai 2 applications clientes pour me connecter à ce cache. Le côté serveur NCache Docker Image est représenté avec cette balise 'enterprise-server-linux-5.0.1'.

démo-environnement-détails2

Celui-ci est disponible sur notre site ainsi que sur Docker Hub. Il s'agit de notre dernière version 5.0 SP1 .NET Core version, afin que vous puissiez l'utiliser sur Windows ainsi que sur Linux, mais pour cette démonstration, nous utiliserons Linux. L'application Java utilise le client Java de NCache ainsi que .NET Core l'application va utiliser .NET Core client de NCache et j'utilise Opérations CRUD pour représenter le cas d'utilisation de la mise en cache des données d'application dans ces applications.

Déployer NCache Serveurs

La première étape consiste à déployer NCache Serveurs dans OpenShift. Alors, commençons rapidement avec ça. Je suis connecté à la console Web Red Hat OpenShift et la première chose que nous devons faire est de créer un projet.

créer_projet

Alors, créons un projet vide. Nommons-le 'ncachedemo' et choisissez 'Créer' et après cela, nous allons simplement créer un projet vide.

créer_projet2

Il n'y a pas de déploiements à ce stade. Nous devons donc commencer le déploiement de NCache serveurs et pour cela, je peux parcourir le catalogue ou je peux utiliser un fichier YAML préconfiguré que vous devriez avoir pour la production déjà des cas d'utilisation et vous pouvez importer ce fichier YAML. Donc, faisons cela et j'ai déjà un fichier YAML que j'utiliserais pour NCache Déploiement côté serveur. C'est ici. Donc, c'est bien le type de déploiement, le 'type' est 'Déploiement', 'nom' est choisi pour être 'ncache'. Je vais utiliser deux répliques, puis j'ai quelques détails sur l'image du conteneur ici. Donc, la principale chose que je veux souligner est l'image Docker, que j'utilise ici.

yaml

Ceci est NCache Enterprise Image Docker Linux du serveur, qui est disponible sur Docker Hub et vous pouvez également en obtenir une référence auprès de notre page de téléchargement aussi bien. Donc, si vous allez à NCache la page de téléchargement, vous devriez pouvoir voir cette image ici. L'image Linux du serveur de cache disponible sur Docker Hub. Si je clique dessus, cela m'amènerait directement à Docker Hub et c'est là que vous pouvez extraire cette image. Donc, il y a un pull docker Pull Command 'général alachisoft/ncache' et la balise que nous recherchons spécifiquement est Enterprise Server Linux 5.0.1, et c'est notre principal .NET Core Version Linux que nous utiliserons pour cette démonstration.

docker_hub

La prochaine chose est le nombre de répliques, qui définit le nombre de ports, il y en aura 2 et ce sont des détails sur tous les ports que j'utilise pour mon NCache conteneurs, que je dois être ouvert au minimum.

yaml2

Il s'agit des ports de gestion et de connexion client pour NCache la communication. Donc, j'ai ce YAML, que j'importerais, puis j'appuierais sur "Créer" et cela démarrerait automatiquement mon déploiement de NCache les serveurs.

redhat2

Comme vous pouvez déjà le voir, à l'intérieur des déploiements, j'ai 'ncache' déploiement et j'ai '2 pods' qui sont en cours de création et je peux en outre voir l'état de ces pods, qu'ils soient en cours d'exécution ou non en cliquant sur les 'pods', puis après cela, il devrait me montrer l'état actuel qui les montre en train de courir et ils sont également prêts.

redhat3

Il y a donc deux déploiements de NCache qui sont mis à disposition. Soit dit en passant, tout cela peut être fait via la console Web comme indiqué en ce moment ou vous pouvez également exécuter les outils de ligne de commande pour voir plus en détail l'état de vos pods en cours d'exécution et pour cela, vous devez exécuter la commande 'oc obtenir des dosettes' et cela listera tous les pods qui sont déployés ici et vous pouvez également faire correspondre les noms 'r4f' et 'wx7' sont les mêmes pods que nous venons de créer.

outil de ligne de commande

Si je veux en outre voir les adresses IP, je peux également utiliser 'obtenir des gousses -o larges' switch et cela me donnerait également plus de détails sur les adresses IP de ces pods. Donc, nous avons .206 et .236 comme deux pods fonctionnant avec NCache Image serveur déployée sur eux.

outil de ligne de commande2

Service de découverte de cache

Nous allons créer un service de découverte de cache qui nous aidera à router tous NCache communication avec les pods sous-jacents et cela a également été discuté dans le cadre de notre déploiement, où nous avions un service sans tête pour gérer toutes les communications client-serveur pour NCache et nous l'utiliserons également pour les options de gestion et de surveillance pour ce cluster de cache et cela aussi en dehors du cluster Kubernetes que nous avons.

Voyons donc comment créer ce service de découverte de cache. Maintenant, pour créer le service de découverte de cache, nous avons à nouveau besoin d'un fichier YAML, que j'ai ici et si nous devons parcourir le contenu de ce service, c'est le type 'Service', je l'ai nommé 'cacheserver'. Vous pouvez trouver n'importe quel nom. SessionAffinity doit être défini sur 'ClientIP'. Cela permet de s'assurer que les opérations de gestion et de surveillance en dehors du cluster Kubernetes restent fidèles à l'un des pods à tout moment. C'est donc une étape obligatoire, que vous devez configurer, puis il y a simplement un mappage de ce service nommé vers les pods sous-jacents. Par exemple, nous avons 8250 ports mappés à partir du service 2 Pods et le déploiement que j'ai choisi est NCache donc cela couvrirait tout NCache Pods que nous avons déjà déployés, puis nous avons 8251, puis le port 9800. Ainsi, les deux premiers ports sont pour les options de gestion et de surveillance et le port 9800 est pour la communication client à serveur entre les applications clientes se connectant à NCache.

yaml3

Bon maintenant, importons ce YAML, via notre assistant, puis après cela, j'appuierais sur "Ajouter", appuyez sur "Créer" et cela créerait automatiquement mon service de découverte de cache. Comme vous pouvez le voir, le 'POD SELECTOR' est 'ncache'. Donc, c'est pour NCache Les pods et le mappage du service au port suggèrent que nous avons 8250, 8251 et 9800 mappés avec succès entre notre service de découverte de cache et tous NCache Gousses. Donc, cela termine la configuration du service de découverte de cache ici.

créer-découverte-cache
Créer un service de découverte de cache

Créer une passerelle de gestion

L'étape suivante consiste à créer une passerelle de gestion et de surveillance pour NCache déploiements et qui nous permettrait de gérer et de surveiller NCache déploiements en dehors de ce cluster Kubernetes également et la façon dont cela fonctionnerait est que toute opération de gestion effectuée serait acheminée via cette passerelle vers ce service de découverte de cache et cela vous aiderait à son tour à gérer et à surveiller également tous les pods sous-jacents.

Voyons donc comment configurer rapidement cette passerelle. Maintenant, pour créer la passerelle de gestion, je dois aller sous "Réseau" et à l'intérieur, nous avons "Routes".

créer-gestion-passerelle
Créer une passerelle de gestion

Donc, je vais juste continuer et créer notre route vers ce service sans tête. Donc, si je clique dessus, vous pouvez simplement le nommer n'importe quoi et sur cette base, il vous suffit de sélectionner le service et, dans ce cas, le service 'cacheserver' créé à l'étape précédente doit être sélectionné. Il répertorie simplement tous les services ici et il vous suffit de fournir le port cible pour la gestion et la surveillance.

redhat4

À ce stade, je vais simplement utiliser 8251 et appuyer sur "Créer" car c'est celui qui me permettrait de créer, vous savez, de gérer et de surveiller NCache en dehors de ce cluster Kubernetes également et c'est l'emplacement à partir duquel je peux simplement cliquer et cela ouvrirait automatiquement le NCache Accès de gestion Web à l'un des pods dans NCache déploiement et comme vous pouvez le voir, j'ai .3.236 IP qui apparaît.

cluster-cache

Ce sont des caches préconfigurés et si vous remarquez que c'est l'un des pods de mon déploiement, où je me suis connecté. Ainsi, je peux accéder pleinement au pod sous-jacent et je peux les gérer. Une chose que je veux montrer ici, c'est l'aspect de la session Affinité, c'est une étape obligatoire. C'est encore une fois pour s'assurer que si vous ouvrez un pod à des fins de gestion, vous devez être collant. Les commandes de gestion doivent être cohérentes avec ce pod. Donc, pour cela, vous devez définir cette valeur sur 'ClientIP' et c'est l'une des étapes obligatoires que vous devez configurer.

Après avoir parcouru cela, si je reviens sur le portail de gestion, je vois clairement que je suis connecté à .236 et à partir de là, je peux effectuer toutes sortes d'opérations de gestion et de surveillance pour NCache.

Créer un cluster de cache

À ce stade, notre configuration d'environnement OpenShift pour NCache est terminé et nous pouvons maintenant continuer et créer ensuite un cluster de cache. D'accord, dans cet outil de gestion, je vais cliquer sur "Nouveau" et cela ouvrira un assistant de création de cache pour moi.

créer un cluster de cache
Créer un cluster de cache

Je vais nommer mon cache, nommons-le 'democache'. Je vais tout garder par défaut ici, 'Partition of Replica' et fournir la première adresse IP qui est automatiquement donnée et j'ai besoin de l'adresse IP du deuxième pod que je peux copier d'ici puis la coller ici puis choisir sur ce clic sur ce signe plus (+) et cela spécifierait le deuxième pod. Encore une fois, gardez tout par défaut. Les paramètres sont les mêmes, puis je 'Démarre ce cache à la fin' et choisis 'Terminer' et cela continuerait et créerait mon cluster de cache. Donc, avec ces deux pods, en utilisant le NCache Outil de gestion Web, je suis maintenant capable de créer un cluster de cache et d'utiliser le gestionnaire Web à partir de ma propre boîte ici. Si je clique sur les détails ici, je peux également voir plus de détails en ce qui concerne les aspects de surveillance et je peux également voir les statistiques de ce cluster de cache. Ainsi, dès qu'il se charge, vous pouvez voir qu'il existe différents paramètres. Nous pouvons voir "Cluster Health", qui est entièrement connecté, et nous pouvons également voir d'autres graphiques ici.

cluster-santé

Il n'y a pas de client connecté à ce stade, donc je ne vois aucun processus client ni aucun des clients affichés dans la santé du cluster, mais dès que je déploierais et exécuterais mes applications clientes, je verrais en fait les processus clients, une fois qu'ils se connecter à NCache sous ici, ainsi que de l'autre côté aussi. Notre NCache Le cluster de cache est créé et prêt à être utilisé.

Déployer et exécuter des applications client

L'étape suivante consiste à déployer et exécuter des applications clientes dans OpenShift, qui utiliseront ce cluster de cache. Encore une fois, je vais charger le fichier YAML pour le déploiement du client et nous l'avons ici, où nous avons une étiquette comme "multiclient" et encore une fois c'est un déploiement séparé.

yaml4

J'ai une image Docker qui aurait un .NET Core ainsi que l'application Java s'exécutant à l'intérieur de ce conteneur. J'ai donc utilisé un conteneur pour héberger deux applications différentes, mais vous pouvez également avoir des conteneurs séparés ici. Donc, dans mon même projet, si je clique ici, j'ai NCache avec deux pods et si je clique sur "Ajouter" et importe mon déploiement client YAML, je peux continuer et créer ceci et cela créera automatiquement un conteneur séparé, un déploiement séparé pour mes applications clientes. Si je reviens aux projets et maintenant, nous avons deux déploiements différents nous avons 'multiclient' avec 1 Pod et nous avons 'ncache' avec 2 pods, ce que nous avons fait dans le cadre de NCache configuration côté serveur.

redhat5

Donc, si je vais dans les pods, j'ai à nouveau le conteneur d'état en cours de création, puis si j'exécute à nouveau cette commande, cela me donnera la liste de tous les pods avec leurs adresses IP. Auparavant, nous avions 236 et 206 et nous en avons maintenant ajouté 47, n'est-ce pas. Donc, c'est le pod de déploiement client et voici l'ID de celui-ci. Maintenant, si je vois rapidement s'il y a des applications en cours d'exécution dans ce déploiement dans ce pod, si j'exécute cette commande très rapidement, tout ce que je verrais est le NCache Service Daemon, 'startup.sh' pour ce conteneur. Alachisoft.NCache.Daemon.dll commence par NCache Service Process et que nous avons un Web Manager Process.

cmd

Ainsi, aucune application client n'est exécutée à ce stade à partir de ce conteneur et c'est la même chose que vous pouvez voir à partir d'ici également où nous n'avons aucun client connecté. Alors, allons-y et exécutons une application Java à partir de ce client. Je vais lancer ça. J'exécute le nom du cache qui est 'democache', c'est le nom pour se connecter.

cmd2

Je n'ai pas besoin d'adresses IP ici, j'ai besoin du service sans tête pour la découverte. N'oubliez pas que nous avons créé un service de découverte, donc je dois revenir à "services", obtenir le nom et le nom était "cacheserver" et il avait le mappage de port de ce service à tous les pods sous-jacents. Avec NCache client, nous avons cette logique intégrée où il parle à ce service nommé et à partir de ce service, il découvre automatiquement tous les pods sous-jacents au sein de la plate-forme OpenShift Kubernetes. Donc, si je précise le nom de ce service, notre NCache le client est assez intelligent et se connecterait automatiquement et formulerait un client entièrement connecté à la configuration du serveur avec NCache groupe. Donc, cette application est maintenant en cours d'exécution et si je ramène l'aspect de surveillance de cela, je peux maintenant voir un cluster entièrement connecté avec un client ajouté et vous pouvez déjà voir l'activité du client affichée sur les ajouts/sec et nous avons une activité dans le console également et nous pouvons voir que les opérations CRUD sont effectuées sur mon cluster de cache dans OpenShift.

Maintenant, si je regarde les processus client, j'ai 47 adresses IP affichées, qui sont connectées à 236 ainsi qu'à 206. Ainsi, avec le service sans tête, la découverte a réussi et il a pu se connecter à tous les pods sous-jacents sans aucun questions.

tableau de bord du serveur

Bon, donc et vous pouvez également voir que les aspects de surveillance et de gestion fonctionnent également très bien. Maintenant, si j'exécute la même commande une fois de plus, où j'affiche les processus en cours d'exécution dans ce déploiement client sur ce pod. Donc, si je copie ceci, vous devriez maintenant voir une application Java utilisant NCache Le client Java s'exécute également dans le cadre de cela. Donc, à part NCache Service dans Web Manager, nous avons maintenant une application Java en cours d'exécution qui utilise ce "démocache" avec le "cacheserver" comme paramètre de serveur pour la connexion.

C'est aussi simple que d'exécuter une application Java avec NCache le tout dans Kubernetes à l'aide d'OpenShift Platform.

L'étape suivante consiste à exécuter le .NET Core l'application et pour cela, j'irais simplement de l'avant et lancerais l'application .NET Core client, qui fait partie du même conteneur côté client.

Donc, les étapes sont les mêmes pour moi et si je cours très vite, cela lancerait notre .NET Core client pour la connexion avec NCache et encore une fois, j'ai besoin de 'democache' et 'cacheserver' qui est le service de découverte sans tête pour la connexion aux pods sous-jacents. Ainsi, le deuxième client s'exécuterait et vous verriez les processus clients augmenter. Nous avons maintenant un processus client séparé connecté à NCache et si je reviens ici, nous avons 2 clients connectés et nous avons tous les paramètres, tous les compteurs montrant l'activité, qui est augmentée dans sa, vous savez, capacité droite. Donc, nous avons plus d'additions/seconde. Les récupérations/seconde ont également augmenté.

serveur-tableau de bord2

Les mises à jour/seconde ont augmenté, c'est vrai. Ainsi, toutes les valeurs sont augmentées avec la charge nouvellement ajoutée et vous pouvez voir 'Tableau de bord client', où nous avons des clients montrant toute l'activité.

tableau de bord client

Alors, NCache La gestion et la surveillance fonctionnent parfaitement même pour les déploiements de clients, il vous suffit d'ouvrir les ports, comme nous l'avons fait pour le NCache serveurs et voici une vue de rapport de la même chose, où nous avons des compteurs côté serveur dans le rapport, puis nous avons les compteurs côté client de nos pods de déploiement client.

rapport-tableau de bord

Mise à l'échelle NCache Grappe

La prochaine chose que je vais démontrer est 'Scaling Out your NCache cluster de cache' dans OpenShift Platform. Cela vous aidera à augmenter la capacité de traitement des demandes dans NCache et cela aussi à l'exécution.

Voyons comment procéder. Maintenant, pour augmenter la capacité, ajoutez plus de pods à ce déploiement. Je vais passer à 'Déploiements'.

redhat6

Il existe plusieurs façons de procéder. Comme vous pouvez le voir actuellement, nous avons 2 Pods pour NCache. Donc, afin d'ajouter une autre instance à cela, j'ai une option pour "Modifier" le nombre, l'augmenter à 3, puis "Enregistrer" ceci et cela le créerait automatiquement. Donc, c'est le plus simple.

redhat7

L'autre option est que vous 'Modifiez' votre déploiement et cela vous donnerait le fichier YAML et augmenterait le nombre de 'répliques' que nous l'avons initialement défini sur '2', l'augmenterait à 3 puis le rechargerait et cela le déploierait automatiquement ou enregistrez-le simplement, il irait de l'avant et le ferait.

redhat8

Vous pouvez également utiliser la ligne de commande, donc je vais l'utiliser pour l'instant et choisir "Enregistrer" et cela devrait suffire à créer un autre pod en utilisant l'image du conteneur Docker que j'ai et maintenant je devrais voir une autre réplique de ce conteneur étant créé et il est entièrement en cours d'exécution. C'est très rapide dans OpenShift et si j'exécute le 'oc obtenir des dosettes' commande, je devrais pouvoir voir une autre adresse IP ajoutée, c'est 13.242. Donc, j'ai un déploiement client sur existant NCache déploiements de pod de serveur, puis dans ce déploiement, j'en ai également ajouté 242. Donc, mon pod OpenShift est disponible, il me suffit de revenir à la "Gestion", puis de l'ajouter également dans mon cluster de cache car Web Manager est disponible. Donc, j'ai juste besoin de copier cette adresse IP, de choisir "Ajouter" et cela me permettra d'ajouter cette adresse IP et de choisir d'être ajoutée dans le cache, voilà. Il est ajouté, puis si je clique avec le bouton droit de la souris et que je choisis "Démarrer", cela rejoindra le cluster de cache au moment de l'exécution. Je n'ai pas besoin d'interrompre les applications clientes, je n'ai pas du tout besoin d'arrêter le cache en cours d'exécution. Donc, mon cluster de cache en cours d'exécution a rejoint ce nœud et voilà, il a déjà commencé à voir de l'activité également car les applications étaient toujours en cours d'exécution, j'ai donc des sauvegardes actives et créées dans NCache cluster et 242 est entièrement joint au cluster de cache et participe au traitement des demandes.

rapport-tableau de bord2
Tableau de bord du rapport

Ainsi, ma capacité de traitement des demandes a été augmentée car nous avons maintenant 3 serveurs hébergeant le cache dans OpenShift au lieu de 2. C'est entièrement connecté. Vous pouvez voir Requests/sec, 242 est joint à toutes, vous savez, les opérations et il montre une activité complète et si nous revenons aux 'Processus Client' ceux-ci sont également connectés à 242 car encore une fois, il utilise le service sans tête pour la découverte.

serveur-tableau de bord3

Ainsi, quoi que vous ajoutiez dans ce déploiement, ce service va correspondre, vous connaissez la route pour cela. Donc, nous avons tous ces serveurs entièrement intégrés et qui fonctionnent parfaitement bien. Il est donc facile de faire évoluer votre cluster de cache dans OpenShift Platform et avec Red Hat, il vous offre le support nécessaire pour que vous puissiez utiliser NCache dans le cadre de cela.

Cela nous amène à la fin de notre vidéo. Nous avons démontré avec succès comment vous pouvez déployer NCache dans Red Hat OpenShift Platform et sa facilité d'utilisation NCache depuis votre Java et .NET Core applications. Nous avons également examiné l'efficacité avec laquelle vous pouvez gérer et surveiller votre NCache Déploiements dans OpenShift. J'espère que cela a été utile. S'il vous plaît partagez vos commentaires ou questions avec nous à Alachisoft Support support@alachisoft.com. Je vous remercie!

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