utilizzando NCache in Red Hat OpenShift

Cluster Kubernetes, Docker e Linux

Red Hat Enterprise Linux. Puoi farlo sia per Java che per .NET Core applicazioni.

OpenShift è una piattaforma applicativa container open source di Red Hat basata sull'orchestratore di container Kubernetes per lo sviluppo e la distribuzione di app aziendali.

Se la tua applicazione è Java e/o .NET Core in esecuzione su Red Hat Enterprise Linux e OpenShift e si desidera utilizzare NCache per migliorarne le prestazioni e la scalabilità per i picchi di carico delle transazioni, ti assicuriamo che NCache supporta pienamente questo ambiente.

Guarda questo video per vedere com'è facile da distribuire NCache come parte del tuo cluster Red Hat OpenShift Kubernetes come distribuzione Docker.

Oggi ti dimostrerò come puoi usare NCache nella piattaforma container Red Hat OpenShift. Come saprai, OpenShift è una piattaforma container offerta da Red Hat ed è costruita attorno a container di applicazioni alimentati da Docker mentre i servizi di orchestrazione e gestione sono forniti da Kubernetes.

È basato su Red Hat Enterprise Linux e oggi ti mostrerò i dettagli passo passo per la distribuzione e l'utilizzo di NCache in questa piattaforma. Quindi, iniziamo rapidamente con questo.

NCache Distribuzione

Prima di tutto, esaminiamo NCache distribuzione nella piattaforma container Red Hat OpenShift. Ecco una tipica distribuzione di NCache nella piattaforma container Red Hat OpenShift. Sto mostrando un singolo cluster Kubernetes con diverse distribuzioni di applicazioni e NCache distribuzione del cluster.

ncache-distribuzione-redhat-openshift
NCache Distribuzione in Red Hat OpenShift

Abbiamo un'app Web Java, che è di nuovo un'immagine Docker distribuita su diversi pod. Ho di nuovo un servizio Web Java mostrato da diversi Pod. Queste applicazioni Java utilizzano il client Java di NCache, mentre ho una distribuzione separata per ASP.NET Core applicazioni, sempre utilizzando un'immagine Docker su Linux ma questo utilizza il file .NET Core cliente per NCache comunicazione. Per quanto riguarda la distribuzione lato server, sta utilizzando Immagine Docker basata su Linux per NCache, che è disponibile sul nostro sito Web e sai, puoi usarlo su Red Hat Enterprise Linux come mostrato qui e sai, crei un cluster di cache utilizzando Docker diversi NCache Immagini rese disponibili in questa piattaforma e poi ho questo Servizio di rilevamento della cache ed NCache Gateway di monitoraggio remoto.

Quindi, questo Discovery Service è un servizio headless all'interno di Kubernetes, che puoi creare all'interno di OpenShift e questo consente a tutte le applicazioni client che conosci semplicemente di connettersi a se stesse e quindi questo gestirebbe l'instradamento e il rilevamento di tutte le risorse che fanno parte del cluster di cache. Ad esempio, non ho bisogno di conoscere gli indirizzi IP o nessuno dei dettagli sul Pod 10, 11 o 12, mi collego semplicemente a questo Discovery Service, che è un servizio denominato e che a sua volta mi indirizzerebbe a tutti i risorse all'interno NCache cluster di cache. Allo stesso modo, anche un gateway di monitoraggio remoto si connette a questo servizio di rilevamento per consentire l'esecuzione di operazioni di monitoraggio e gestione al di fuori di questo cluster Kubernetes da parte di qualsiasi amministratore di sistema e ti darò una dimostrazione pratica su questi due come effettivamente, procedere e crearli . Quindi, questa è una distribuzione tipica in cui avremmo diversi tipi di applicazioni per la connessione NCache in un unico cluster Kubernetes.

Di seguito sono riportati i dettagli sulla configurazione dell'ambiente demo.

demo-ambiente-dettagli
Dettagli dell'ambiente dimostrativo

Sto usando 2 NCache server per formulare un cluster e userò 2 applicazioni client per connettermi a questa cache. Il lato server NCache Docker Image è rappresentato con questo tag 'enterprise-server-linux-5.0.1'.

demo-ambiente-dettagli2

Questo è disponibile sul nostro sito Web e su Hub Docker. È la nostra ultima versione 5.0 SP1 .NET Core versione, in modo da poterlo utilizzare sia su Windows che su Linux, ma per questa dimostrazione utilizzeremo Linux. L'applicazione Java utilizza il client Java di NCache ed .NET Core l'applicazione verrà utilizzata .NET Core cliente di NCache e sto usando Operazioni CRUD per rappresentare il caso d'uso di App Data Caching all'interno di queste applicazioni.

Schierare NCache Server

Il primo passo è distribuire NCache Server in OpenShift. Quindi, iniziamo rapidamente con quello. Ho effettuato l'accesso alla console Web Red Hat OpenShift e la prima cosa che dobbiamo fare è creare un progetto.

creare_progetto

Quindi, creiamo un progetto vuoto. Diamo il nome 'ncachedemo' e scegli 'Crea' e dopo creeremo solo un progetto vuoto.

creare_progetto2

Non ci sono distribuzioni a questo punto in questo. Quindi, dobbiamo iniziare la distribuzione di NCache server e per questo posso sfogliare il catalogo o posso usare un file YAML preconfigurato che dovresti avere già per i casi d'uso di produzione e puoi importare quel file YAML. Quindi, facciamolo in realtà e ho già un file YAML che userei per NCache distribuzione lato server. Ecco qui. Quindi, è il tipo di distribuzione giusto, il "tipo" è "Distribuzione", "nome" è scelto come "ncache'. Userò due repliche e poi avrò alcuni dettagli dell'immagine del contenitore proprio qui. Quindi, la cosa principale che voglio evidenziare è l'immagine Docker, che sto usando proprio qui.

YAML

Questo è anche NCache Enterprise Immagine Docker Linux del server, che è disponibile su Docker Hub e puoi anche ottenere un riferimento di questo dal ns pagina di download anche. Quindi, se vai a NCache nella pagina di download dovresti essere in grado di vedere questa immagine proprio qui. L'immagine Linux del server cache disponibile su Docker Hub. Se clicco su questo, questo mi porterebbe direttamente a Hub Docker ed è qui che puoi estrarre questa immagine. Quindi, c'è un pull docker pull generale di Pull Command alachisoft/ncache' e il tag che stiamo cercando specificamente è Enterprise Server Linux 5.0.1, e questo è il nostro principale .NET Core Versione Linux che useremo per questa dimostrazione.

docker_hub

La prossima cosa è il numero di repliche, che definisce il numero di porte, ce ne saranno 2 e questi sono i dettagli su tutte le porte che sto usando per il mio NCache contenitori, che devo essere almeno aperto.

yaml2

Si tratta di porte di gestione e di connessione client per NCache comunicazione. Quindi, ho questo YAML, che vorrei andare avanti e importare e quindi premere "Crea" e questo saprebbe automaticamente avviare la mia distribuzione di NCache server.

redhat2

Come puoi già vedere, all'interno di Deployments ho 'ncache' distribuzione e ho '2 pod' in fase di creazione e posso vedere ulteriormente lo stato di questi pod, indipendentemente dal fatto che siano in esecuzione o meno facendo clic su 'pod' e quindi dopo dovrebbe mostrarmi lo stato corrente che mostra loro che corrono e anche loro sono pronti.

redhat3

Quindi, ci sono due distribuzioni di NCache che vengono messi a disposizione. A proposito, tutto questo può essere fatto tramite la console web come mostrato in questo momento oppure puoi anche eseguire gli strumenti della riga di comando per vedere ulteriormente lo stato dei tuoi Pod in esecuzione e per questo è necessario eseguire il comando 'oc prendi i baccelli' e questo elencherà tutti i Pod che sono distribuiti proprio qui e puoi abbinare anche i nomi "r4f" e "wx7" sono gli stessi Pod che abbiamo appena creato.

strumento da riga di comando

Se voglio vedere ulteriormente gli indirizzi IP, posso anche usare 'prendi i baccelli -o larghi' switch e questo mi darebbe anche ulteriori dettagli sugli IP di questi Pod. Quindi, abbiamo .206 e .236 come due Pod in esecuzione NCache server Immagine distribuita su di essi.

strumento da riga di comando2

Servizio di rilevamento della cache

Creeremo un servizio di rilevamento della cache che ci aiuterà a instradare tutto NCache comunicazione ai Pod sottostanti e anche questo è stato discusso come parte della nostra distribuzione, in cui avevamo un servizio headless per gestire tutte le comunicazioni da client a server per NCache e lo useremo anche per le opzioni di gestione e monitoraggio per questo cluster di cache e anche al di fuori del cluster Kubernetes che abbiamo.

Quindi, vediamo come creare questo servizio di rilevamento della cache. Ora per creare il servizio di rilevamento della cache, abbiamo ancora bisogno di un file YAML, che ho qui e se dobbiamo esaminare i contenuti di questo servizio, è del tipo "Servizio", l'ho chiamato "cacheserver". Puoi inventare qualsiasi nome. SessionAffinity deve essere impostato su 'ClientIP'. Questo per garantire che le operazioni di gestione e monitoraggio al di fuori del cluster Kubernetes siano appiccicose a uno dei Pod in qualsiasi momento. Quindi, questo è un passaggio obbligatorio, che devi configurare e quindi ha semplicemente una mappatura da questo servizio denominato ai Pod sottostanti. Ad esempio, abbiamo 8250 porte mappate dai pod del servizio 2 e la distribuzione che ho scelto è NCache quindi questo coprirebbe tutto NCache Pod che abbiamo già distribuito e poi abbiamo 8251 e quindi la porta 9800. Quindi, le prime due porte sono per le opzioni di gestione e monitoraggio e la porta 9800 è per la comunicazione da client a server tra le applicazioni client che si connettono a NCache.

yaml3

Va bene ora, importiamo questo YAML, tramite la nostra procedura guidata e poi dopo premere "Aggiungi", premere "Crea" e questo creerebbe automaticamente il mio servizio di rilevamento della cache. Come puoi vedere, il 'POD SELECTOR' è 'ncache'. Quindi, questo è per NCache Pods e Service to Port Mapping suggeriscono che abbiamo 8250, 8251 e 9800 mappati con successo tra il nostro servizio di rilevamento della cache e tutti NCache Baccelli. Quindi, questo completa la configurazione per il servizio di rilevamento della cache qui.

crea-scoperta-cache
Crea servizio di rilevamento della cache

Crea gateway di gestione

Il passaggio successivo consiste nel creare un gateway di gestione e monitoraggio per NCache implementazioni e ciò ci consentirebbe di gestire e monitorare NCache anche le distribuzioni al di fuori di questo cluster Kubernetes e il modo in cui funzionerebbe è che qualsiasi operazione di gestione eseguita verrebbe instradata attraverso questo gateway a questo servizio di rilevamento della cache e ciò a sua volta ti aiuterebbe a gestire e monitorare anche tutti i Pod sottostanti.

Quindi, vediamo come configurare rapidamente questo gateway. Ora per creare il gateway di gestione, devo andare in "Rete" e all'interno abbiamo "Percorsi".

creare-gestione-gateway
Crea gateway di gestione

Quindi, andrò avanti e creerò il nostro percorso verso questo servizio senza testa. Quindi, se ci clicco sopra, puoi semplicemente nominarlo qualsiasi cosa e in base a ciò devi solo selezionare il servizio e, in questo caso, deve essere selezionato il servizio "cacheserver" creato nel passaggio precedente. Elencherebbe solo tutti i servizi qui e devi solo fornire la porta di destinazione per la gestione e il monitoraggio.

redhat4

A questo punto userò solo 8251 e premerò "Crea" perché è quello che mi permetterebbe di creare, sai, gestire e monitorare NCache anche al di fuori di questo cluster Kubernetes e questa è la posizione da cui posso semplicemente fare clic e ciò aprirebbe automaticamente il file NCache Accesso Web Management a uno dei Pod all'interno NCache distribuzione e come puoi vedere, ho .3.236 IP visualizzato.

cluster di cache

Queste sono alcune cache preconfigurate e se noti questo è uno dei Pod all'interno della mia distribuzione, a cui mi sono connesso. Quindi, sono in grado di accedere completamente al Pod sottostante e sono in grado di gestirli. Una cosa che voglio mostrare qui è l'aspetto dell'affinità della sessione, che è un passaggio obbligatorio. Questo è ancora una volta per assicurarti che se apri un Pod a scopo gestionale devi essere appiccicoso. I comandi di gestione devono essere appiccicosi a quel Pod a destra. Quindi, per questo è necessario impostare questo valore su "ClientIP" e questo è uno dei passaggi obbligatori che è necessario impostare.

Fatto ciò, se torno sul portale di gestione vedo chiaramente che sono connesso al .236 e da qui posso eseguire tutti i tipi di operazioni di gestione e monitoraggio per NCache.

Crea cluster di cache

A questo punto, il nostro ambiente OpenShift è configurato per NCache è completato e ora possiamo procedere e creare successivamente un cluster di cache. Ok, all'interno di questo strumento di gestione, farò clic su "Nuovo" e verrà aperta una procedura guidata di creazione della cache per me.

crea-cache-cluster
Crea cluster di cache

Assegnerò un nome alla mia cache, chiamiamola 'democache'. Manterrò tutto predefinito qui, "Partizione della replica" e fornirò il primo IP che viene fornito automaticamente e ho bisogno dell'IP del secondo Pod che posso copiare da qui e quindi incollarlo qui e quindi scegliere su questo fare clic su questo segno più (+) e questo specificherebbe il secondo Pod. Ancora una volta, mantieni tutto predefinito su questo. I parametri sono gli stessi e quindi "Avvia questa cache al termine" e scelgo "Fine" e questo andrebbe avanti e creerebbe il mio cluster di cache. Quindi, con questi due Pod, usando il NCache Strumento di gestione Web, ora sono in grado di creare un cluster di cache e di utilizzare Web Manager dalla mia casella proprio qui. Se clicco sui dettagli qui, posso anche vedere alcuni dettagli in più per quanto riguarda gli aspetti di monitoraggio e posso vedere anche le statistiche di questo cluster di cache. Quindi, non appena viene caricato, puoi vedere che ci sono diversi parametri. Possiamo vedere "Cluster Health", che è completamente connesso e possiamo vedere anche alcuni altri grafici qui.

cluster-salute

Non c'è nessun client connesso a questo punto, quindi non vedo alcun processo client o nessuno dei client mostrato nell'integrità del cluster, ma non appena distribuisco ed eseguirò le mie applicazioni client, vedrei effettivamente i processi client, una volta che connettersi a NCache qui sotto, così come dall'altra parte pure. I nostri NCache Il cluster di cache è stato creato e pronto per essere utilizzato.

Distribuire ed eseguire applicazioni client

Il passaggio successivo consiste nel distribuire ed eseguire applicazioni client in OpenShift, che utilizzerà questo cluster di cache. Ancora una volta, caricherò il file YAML per la distribuzione del client e qui ce l'abbiamo, dove abbiamo un'etichetta come "multiclient" e di nuovo è una distribuzione separata.

yaml4

Ho un'immagine Docker che avrebbe un .NET Core così come l'applicazione Java in esecuzione all'interno di questo contenitore. Quindi, ho usato un contenitore per ospitare due diverse applicazioni, ma qui puoi anche avere contenitori separati. Quindi, all'interno del mio stesso progetto, se clicco qui, ho NCache con due Pod e se faccio clic su "Aggiungi" e importo il mio client YAML di distribuzione, posso andare avanti e crearlo e questo creerebbe automaticamente un contenitore separato, distribuzione separata per le mie applicazioni client. Se torno ai progetti e ora abbiamo due implementazioni diverse abbiamo "multiclient" con 1 Pod e abbiamo "ncache' con 2 Pod, di cui abbiamo fatto parte NCache configurazione lato server.

redhat5

Quindi, se vado ai Pod, di nuovo ho il contenitore di stato che crea e quindi se eseguo di nuovo questo comando, questo mi darebbe l'elenco di tutti i Pod insieme ai loro indirizzi IP. In precedenza avevamo 236 e 206 e ora abbiamo aggiunto anche 47, giusto. Quindi, questo è il pod di distribuzione del client ed ecco l'ID di questo. Ora, se vedo rapidamente se ci sono applicazioni attualmente in esecuzione in questa distribuzione in questo pod, se eseguo questo comando molto velocemente, tutto ciò che vedrei è il NCache Service Daemon, 'startup.sh' per questo contenitore. Alachisoft.NCache.Daemon.dll inizia con NCache Service Process e che abbiamo un Web Manager Process.

cmd

Quindi, nessuna applicazione client viene eseguita a questo punto da questo contenitore e questo è lo stesso che puoi vedere anche da qui dove non abbiamo alcun client connesso. Quindi, andiamo avanti ed eseguiamo un'applicazione Java da questo client. Ho intenzione di eseguire questo. Sto eseguendo il nome della cache che è "democache", questo è il nome per connettermi.

cmd2

Non ho bisogno di indirizzi IP qui, invece ho bisogno del servizio senza testa per la scoperta. Ricorda che abbiamo creato un servizio di rilevamento, quindi devo tornare a "servizi", ottenere il nome e il nome era "cacheserver" e aveva la mappatura delle porte da questo servizio a tutti i pod sottostanti. Insieme a NCache client, abbiamo questa logica integrata in cui dialoga con questo servizio denominato e da quel servizio scopre automaticamente tutti i Pod sottostanti all'interno della piattaforma OpenShift Kubernetes. Quindi, se specifico il nome di questo servizio, il ns NCache il client è abbastanza intelligente e si collegherebbe automaticamente e formulerebbe un client completamente connesso con l'installazione del server NCache grappolo. Quindi, questa applicazione è ora in esecuzione e se riporto l'aspetto di monitoraggio di questo, ora posso vedere un cluster completamente connesso con un client aggiunto e puoi già vedere l'attività del client mostrata su aggiunte/sec e abbiamo attività all'interno del console e possiamo vedere che le operazioni CRUD vengono eseguite sul mio cluster di cache all'interno di OpenShift.

Ora, se osservo i processi client, ho mostrato un IP 47, che è collegato a 236 e a 206. Quindi, con il servizio senza testa, il rilevamento ha avuto successo ed è stato in grado di connettersi a tutti i Pod sottostanti senza alcun problemi.

dashboard del server

Giusto, così e puoi anche vedere che anche gli aspetti di monitoraggio e gestione funzionano perfettamente. Ora, se eseguo lo stesso comando ancora una volta, dove mostro i processi in esecuzione all'interno di questa distribuzione client su questo Pod. Quindi, se copio questo, ora dovresti vedere un'applicazione Java che utilizza NCache Anche client Java in esecuzione come parte di questo. Quindi, a parte NCache Servizio in Web Manager, ora abbiamo un'applicazione Java in esecuzione che utilizza questa "democache" con "cacheserver" come parametro del server per la connessione.

Quindi, ecco com'è semplice eseguire un'applicazione Java con NCache tutto in Kubernetes utilizzando OpenShift Platform.

Il prossimo passo è eseguire il .NET Core applicazione e per questo vorrei solo andare avanti ed eseguire il file .NET Core client, che fa parte dello stesso contenitore sul lato client.

Quindi, i passaggi sono gli stessi per me e se eseguo così velocemente, questo avvierà il nostro .NET Core client per la connessione con NCache e ancora ho bisogno di "democache" e "cacheserver" che è il servizio di rilevamento senza testa per la connessione ai pod sottostanti. Quindi, il secondo client verrebbe eseguito e vedresti aumentare i processi client lì. Ora abbiamo un processo client separato collegato a NCache e se torno qui, abbiamo 2 client collegati e abbiamo tutti i parametri, tutti i contatori che mostrano l'attività, che è aumentata nella sua, sai, capacità giusta. Quindi, abbiamo più aggiunte/secondo. Anche i recuperi/secondo sono aumentati.

server-dashboard2

Gli aggiornamenti/secondo sono aumentati, giusto. Quindi, tutti i valori vengono aumentati con il carico appena aggiunto e puoi vedere "Client Dashboard", dove abbiamo clienti che mostrano tutta l'attività.

dashboard client

Così, NCache La gestione e il monitoraggio funzionano perfettamente anche per le implementazioni client, devi solo aprire le porte, come abbiamo fatto per il NCache server ed ecco una visualizzazione del rapporto dello stesso, in cui abbiamo i contatori lato server nel rapporto e quindi abbiamo i contatori lato client dai nostri pod di distribuzione client.

dashboard-report

Ridimensionamento NCache Cluster

La prossima cosa che dimostrerò è "Ridimensionare il tuo NCache cache cluster' nella piattaforma OpenShift. Questo ti aiuterà ad aumentare la capacità di gestione delle richieste in NCache e anche questo in fase di esecuzione.

Esaminiamo come farlo. Ora per aumentare la capacità, aggiungi più Pod a questa distribuzione. Vado a "Distribuzioni".

redhat6

Ci sono diversi modi per farlo. Come puoi vedere attualmente, abbiamo 2 Pod per NCache. Quindi, per aggiungere un'altra istanza a questo, ho un'opzione per "Modificare" il conteggio, aumentarlo a 3 e quindi "Salva" questo e quello lo creerebbe automaticamente. Quindi, questo è il più semplice.

redhat7

Un'altra opzione è che "Modifica" la tua distribuzione e ti darebbe il file YAML e aumenterebbe il conteggio delle "repliche" che inizialmente lo abbiamo impostato su "2", aumentalo a 3 e quindi lo ricarichi e questo lo distribuirà automaticamente o salvalo e basta, andrebbe avanti e lo farebbe.

redhat8

Puoi anche usare la riga di comando, quindi per ora lo userò e sceglierò "Salva" e dovrebbe essere sufficiente per creare un altro Pod usando l'immagine del contenitore Docker che ho e ora dovrei vedere un'altra replica di questo contenitore essere creato ed è completamente funzionante. È molto veloce all'interno di OpenShift e se eseguo il 'oc prendi i baccelli' comando Dovrei essere in grado di vedere un altro indirizzo IP aggiunto, è 13.242. Quindi, ho la distribuzione del client esistente NCache server Pod implementazioni e quindi all'interno di tale distribuzione ho aggiunto anche 242. Quindi, il mio OpenShift Pod è disponibile, devo solo tornare alla "Gestione" e quindi aggiungerlo anche nel mio cluster di cache perché Web Manager è disponibile. Quindi, devo solo copiare quell'indirizzo IP, scegliere "Aggiungi" e questo mi consentirà di aggiungere quell'IP e scegliere di essere aggiunto nella cache, ecco fatto. Viene aggiunto e quindi se faccio clic con il pulsante destro del mouse e scelgo "Avvia", questo si unirà al cluster di cache in fase di esecuzione. Non ho bisogno di interrompere nessuna applicazione client, non ho bisogno di fermare affatto la cache in esecuzione. Quindi, il mio cluster di cache in esecuzione si è unito a questo nodo e il gioco ha già iniziato a vedere anche l'attività perché le applicazioni erano ancora in esecuzione, quindi ho attivo e backup creati all'interno NCache cluster e 242 è completamente unito al cluster di cache e partecipa alla gestione delle richieste.

report-dashboard2
Dashboard dei rapporti

Quindi, la mia capacità di gestione delle richieste è stata aumentata perché ora abbiamo 3 server che ospitano la cache in OpenShift invece di 2. È completamente connesso. Puoi vedere Richieste/sec, 242 è unito a tutte, sai, le operazioni e mostra l'attività completa e se torniamo ai "Processi client", anche quelli sono collegati a 242 perché ancora una volta utilizza il servizio senza testa per la scoperta.

server-dashboard3

Quindi, qualunque cosa tu aggiunga all'interno di quella distribuzione, quel servizio corrisponderà, conosci il percorso per quello. Quindi, abbiamo tutti questi server completamente collegati e funzionano perfettamente. Quindi, ecco com'è facile scalare in orizzontale il tuo cluster di cache in OpenShift Platform e con Red Hat ti offre il supporto in modo da poterlo utilizzare NCache come parte di ciò.

Questo ci porta alla fine del nostro video. Abbiamo dimostrato con successo come puoi distribuire NCache in Red Hat OpenShift Platform e quanto sia facile da usare NCache dall'interno del tuo Java e .NET Core applicazioni. Abbiamo anche esaminato l'efficacia con cui puoi gestire e monitorare il tuo NCache Distribuzioni in OpenShift. Spero che questo sia stato utile. Condividi il tuo feedback o le tue domande con noi all'indirizzo Alachisoft supporto support@alachisoft.com. Grazie!

© Copyright Alachisoft 2002 - . Tutti i diritti riservati. NCache è un marchio registrato di Diyatech Corp.