utilizzando NCache nell'infrastruttura dei servizi di Microsoft Azure

Ciao e benvenuto a un'altra presentazione di NCache. Oggi parleremo di come possiamo schierare NCache in un ambiente Service Fabric. C'è molto da coprire, quindi iniziamo.

NCache Distribuzione

Iniziamo con una panoramica generale di ciò che stiamo cercando di ottenere. Quindi, qui abbiamo una vista a volo d'uccello di una tipica applicazione di Service Fabric distribuita in Azure.

ncache-deployment-azzurro

Abbiamo un cluster di Service Fabric con un servizio di bilanciamento del carico di Azure. All'interno dell'applicazione Service Fabric sono disponibili numerosi servizi che possono essere scritti in lingue diverse. Questi servizi sono in genere distribuiti come servizi containerizzati. Ora in un'applicazione Enterprise, la memorizzazione nella cache distribuita è importante per consentire prestazioni di lettura elevate ed è qui che NCache entra in gioco

NCache può essere distribuito all'interno dell'applicazione Service Fabric come servizio containerizzato. NCache il server è in esecuzione all'interno dei contenitori su più nodi del set di scalabilità di macchine virtuali, può comunicare tra loro e formare una cache in cluster. Colmare il divario tra il NCache client e server, abbiamo il Cache Discovery Service, che viene utilizzato per ottenere le informazioni sull'indirizzo IP in tempo reale del NCache server e fornire tali informazioni al NCache clienti. Con queste informazioni, il NCache i client possono quindi creare handle di cache, con i quali possono iniziare a eseguire la gestione della cache e le operazioni CRUD sul NCache cache raggruppata.

Quindi, i seguenti sono i parametri principali della dimostrazione di cui parleremo a metà oggi.

demo-ambiente-dettagli

I NCache i server in esecuzione all'interno dei contenitori di Windows utilizzeranno l'immagine Docker con il nome di 'alachisoft/ncache:più recente'. Questo contiene il NCache Enterprise, Con .NET framework installazione. Inizieremo con 2 NCache server, che vengono riuniti per formare una cache in cluster con una partizione della topologia di replica. Il due NCache le applicazioni client che abbiamo sono scritte .NET Core e Java ed eseguiranno operazioni CRUD su NCache server.

Crea cluster di Service Fabric

Quindi, per iniziare, la prima cosa che faremo è creare un'infrastruttura di Service Fabric in Azure. Posso accedere alla finestra del mio browser, dove ho già aperto il mio portale di Azure.

azzurro-portale

Ho creato un gruppo di risorse con il nome di 'NCacheServiceFabric' e questo, al momento, contiene solo una singola risorsa 'Key vault'. Questa risorsa dell'insieme di credenziali delle chiavi contiene il certificato che verrà utilizzato con il cluster di Service Fabric. Passando a Visual Studio 2019, ho un modello ARM aperto e ho introdotto le impostazioni, per consentire la modalità di configurazione aperta di Service Fabric.

studio visivo

Parleremo di più della modalità di configurazione aperta di Service Fabric e del motivo per cui la stiamo usando dopo aver distribuito l'infrastruttura. Quindi, per iniziare con la distribuzione, posso passare a "Esplora soluzioni" e sul mio progetto del gruppo di risorse di Azure, posso fare clic con il pulsante destro del mouse, venire a distribuire e ho elencato il gruppo di risorse.

studio-visivo2

Si aprirà una finestra di distribuzione. Posso fare clic sul pulsante "Distribuisci" e la distribuzione inizierà.

pulsante di distribuzione

Ci vorrà del tempo, quindi metto in pausa il video qui. Il nostro modello è stato distribuito con successo e per confermarlo possiamo tornare al nostro portale di Azure. Se aggiorno la pagina, vedrai le modifiche e qui lo facciamo. Quindi, ora il nostro cluster di Service Fabric e tutte le risorse dipendenti associate sono stati creati correttamente. Per iniziare, la prima cosa di cui parlerò è la modalità di configurazione aperta, a cui ho accennato prima.

Questo articolo esamina sostanzialmente la modalità di configurazione aperta e il motivo per cui viene utilizzata. Per i nostri scopi, la modalità di configurazione aperta consente il NCache server che sono in esecuzione all'interno dei contenitori per essere effettivamente in grado di comunicare tra più host e si uniscono per formare una cache in cluster e per vedere come viene fatto, possiamo accedere al portale di Azure e la prima cosa che guarderò è il Virtual Rete.

rete virtuale

Va bene, ora abbiamo più nodi dal set di scalabilità della macchina virtuale, ma se guardi da vicino, a ciascuno dei nodi sono assegnati più indirizzi IP. Il primo indirizzo IP è l'indirizzo principale dell'host. Tuttavia, gli altri indirizzi IP che sono collegati al nodo, formano il pool di indirizzi IP secondari e con la modalità di configurazione aperta di Service Fabric, questi indirizzi IP verranno assegnati ai contenitori, su cui il NCache i server saranno in esecuzione. Con gli indirizzi IP assegnati da questo pool secondario, i contenitori in più host possono comunicare tra loro senza problemi per creare un cluster di cache in Service Fabric.

L'altra cosa che voglio guardare nelle risorse è il bilanciamento del carico e se vengo alla "Configurazione IP frontale", la regola che mi interessa in realtà è "Regola 10" e questo ha a che fare con la porta 8251, che sarà utilizzato dal NCache Web Manager, di cui parleremo più avanti in questa presentazione. Ma la cosa importante da notare è che con il NCache Web Manager, utilizzeremo una persistenza permanente, come si può vedere dai campi "persistenza della sessione" mostrati qui, con un valore di "IP client".

nc-web-manager

Con questo, se ci sono più istanze di NCache Web Manager in esecuzione, saremo in grado di avere un'esperienza utente coerente tra il browser e il servizio finale. Ora che abbiamo esaminato l'infrastruttura e l'abbiamo distribuita con successo, ci occuperemo della distribuzione dell'applicazione Service Fabric e per questo torneremo a Visual Studio e avremo un certo numero di file ServiceManifest, corrispondenti al servizi dell'applicazione. Abbiamo il NCache servizio, il NCache Il servizio Web Manager, il servizio Discovery e il servizio container client, che ospiteranno le nostre applicazioni client. Entreremo nei dettagli di ciascuno di questi servizi, dopo aver distribuito l'applicazione. Per fare ciò, torneremo a Esplora soluzioni e qui faremo semplicemente clic con il pulsante destro del mouse sul progetto e sul nome dell'applicazione Service Fabric e scendendo a "Pubblica".

esploratore di soluzioni

Verrà aperta la finestra di distribuzione che, come puoi vedere, ha già rilevato l'endpoint di connessione del cluster di Service Fabric. Tutto quello che dobbiamo fare a questo punto è fare clic su "Pubblica" e il processo inizierà.

finestra di distribuzione

Ci vorrà del tempo, quindi metterò in pausa il mio video qui. L'applicazione è stata distribuita correttamente e siamo pronti nella finestra "Service Fabric Explorer". Come puoi vedere, il DNS del cluster è fornito qui.

servizio-esploratore di tessuti

E se vado a vedere alla "DASHBOARD", ho cinque nodi attivi e funzionanti con 1 applicazione e 4 servizi. I 4 servizi possono essere visualizzati nel riquadro di sinistra. Il primo servizio che voglio guardare è, il NCache servizio. Questo rappresenta il NCache server che verranno eseguiti all'interno dei contenitori e che formeranno la cache in cluster. Poi ho il NCache Servizio Web Manager, rappresenta una GUI di facile utilizzo per la creazione e il monitoraggio di un cluster di cache. Poi ho il NCache Discovery Service, che sarà responsabile dell'acquisizione degli indirizzi IP del NCache server e fornendoli alle applicazioni client. Parlando delle applicazioni client, abbiamo il servizio container client che rappresenta un container che ospita due diverse applicazioni, una scritta .NET Core e l'altro in Java. Ora entrerò nei dettagli di ciascuno di questi servizi a turno.

NCache Servizio cluster

Il primo che voglio guardare, è il NCache Servizio cluster e per questo tornerò a Visual Studio. Questo è il ServiceManifest per il NCache Cluster Service, come puoi vedere è un servizio container, che utilizza l'immagine 'alachisoft/ncache'.

studio-visivo3

Ci sono un paio di Endpoint, che ho registrato con il servizio di denominazione e questi sono i seguenti: Abbiamo l'endpoint di "gestione della cache", che espone la porta 8250, su cui i server di cache ascolteranno le richieste di connessione. Abbiamo l'endpoint 'cache-client' che espone la porta 9800. Tutto il Operazioni CRUD vengono eseguiti attraverso questa porta. Oltre a questi, abbiamo anche gli Endpoint "bridge-management" e "bridge-client". Per questa presente dimostrazione, ci concentreremo solo sui primi due Endpoint mostrati qui.

studio-visivo4

NCache Service Management

Il secondo servizio che guardiamo, è il NCache Service Management, che rappresenta la GUI di Web Manager. Tornando a Visual Studio, se vengo a ServiceManifest per il NCache Web Manager Service, vediamo che è anche un servizio contenitore che utilizza la stessa immagine del NCache servizio e l'endpoint che registriamo con il servizio di denominazione è "gestione web" e che espone la porta 8251.

studio-visivo5

NCache Servizio di scoperta

Il terzo Servizio è ovviamente il NCache Servizio di scoperta e il ServiceManifest per questo è fornito qui.

nc-scoperta-tipo

I NCache Discovery Service è un ASP affidabile e senza stato.NET Core API Web. Che si consulta con il servizio di denominazione e acquisisce gli Endpoint che sono stati registrati dal NCache servizio qui fornito. Con gli Endpoint ricevuti dal servizio di denominazione, il Discovery Service può quindi fornire tali informazioni al NCache clienti.

Servizi per applicazioni client

Il quarto servizio che abbiamo nella nostra applicazione, è il Servizi app client e anche per questo abbiamo questi ServiceManifest aperti e le applicazioni client, il .NET Core e Java sono alloggiati all'interno dello stesso contenitore. La cui immagine è 'ncache/app:sfclient'.

sfcliente

La cosa importante da notare qui è che, con il NCache servizio e servizio client, stiamo usando 'open config'. Il NCache il servizio ha la modalità di configurazione aperta, per consentire ai container in esecuzione su host diversi di comunicare tra loro e quindi formare il cluster di cache mentre sul container client abbiamo un NCache client e installazione che verranno utilizzati dalla GUI di Web Manager per acquisire i contatori lato client ed essere in grado di monitorare il comportamento del client dalla GUI.

Crea cluster di cache

La parte successiva da fare è la creazione effettiva del cluster di cache e per questo torniamo alla nostra finestra di Service Fabric Explorer. La prima cosa che farò è confermare che il mio Service Discovery funzioni. Per questo, fornirò l'URI, che è costituito dal DNS cluster e dalla porta su cui è in ascolto il servizio di rilevamento, che è 55100.

collegamento google

Se faccio clic su Invio, vedo che gli indirizzi IP e le porte associate per ogni Endpoint che sono stati registrati dal NCache servizio, sono stati presentati con successo. Se si osserva attentamente, gli indirizzi IP sono gli stessi, come forniti dalla rete virtuale a questi nodi di Service Fabric, come parte del pool IP secondario.

indirizzo IP

Ora che abbiamo il rilevamento del servizio in esecuzione, andiamo e veniamo al NCache Gestore web. Ancora una volta, forniremo il DNS cluster, seguito dalla porta su cui è in ascolto, che è 8251 e questo ci porta alla finestra principale della GUI di Web Manager.

web-manager-gui

Ora dimostrerò quanto sia facile creare una cache in cluster e per questo tutto ciò che devo fare è fare clic sul pulsante "Nuovo" mostrato qui.

nuovo pulsante

Inizierò dando il nome per la cache.

nome-cache

Mantieni tutto il resto predefinito. Userò la partizione della topologia di replica con modalità asincrona.

asincrono

Ora a questo punto fornirò gli indirizzi IP di questi server che costituiranno la mia cache in cluster. Quindi, prima darò al primo IP e al secondo 11. Con questi due aggiunti, possiamo passare alla fase successiva.

indirizzo ip2

Mantieni tutto il resto predefinito e alla fine facciamo semplicemente clic su "Fine".

finire

La Cache verrà creata, come si può vedere nella finestra principale.

creato dalla cache

Ora che è stato creato, è il momento di avviarlo e per questo possiamo fare clic sulla casella di controllo accanto al nome della cache e quindi premere il pulsante "Avvia".

inizia a

Ora che la cache è stata avviata, ci sono un paio di cose che possiamo guardare in questo momento. La prima cosa che possiamo fare è guardare lo strumento 'Monitoraggio' facendo clic sul pulsante 'Monitoraggio', mentre la casella di controllo è premuta.

monitore

Si aprirà un'altra finestra e potremo vedere le dashboard che compongono il nostro Strumento di monitoraggio. La prima cosa che puoi guardare qui è la "Salute del cluster". Vediamo che abbiamo 2 server, con le Partizioni Attivo e Replica, sono completamente connessi, come si può vedere dal colore verde.

cache del cluster

Anche qui abbiamo le quattro diverse partizioni mostrate in un formato grafico.

dashboard del server

Ci sono un paio di contatori che possiamo esaminare in questo momento, inclusi 'Richieste/secondo', 'Aggiunte', 'Recupero', 'Aggiornamenti', 'Elimina' ecc. Il 'Conteggio' è 0, insieme a tutti gli altri Contatori operazioni CRUD perché non ci sono ancora processi client connessi e i processi client una volta connessi possono essere visti dalla dashboard 'Processo client', che mostrerà l''IP client', l''ID processo' e a quale server è connesso . Questo è il "Server Dashboard". L'altro dashboard disponibile per impostazione predefinita è il "Client Dashboard" e qui possiamo guardare i diversi contatori, provenienti dai client ed essere in grado di diagnosticare e monitorare il comportamento del client.

dashboard client

La terza dashboard che viene fornita per impostazione predefinita è la "Report Dashboard", che mostra una vista generale sia del server che dei contatori delle prestazioni lato client.

dashboard-report

Esegui applicazioni client

Per vedere le informazioni in azione, avvieremo ora le applicazioni client. Quindi, ora possiamo eseguire le nostre app client. Tornando alla finestra del monitor, ho qui il PowerShell aperto all'interno del contenitore del client e sono già all'interno della cartella 'nettester', che contiene i binari per il .NET Core App. Eseguirò un comando batch che prende come parametri, il nome della cache, che è "democache" e l'URI del servizio di rilevamento della cache come mostrato qui.

cmd

È costituito dal DNS in cluster, nonché dalla porta del servizio di rilevamento della cache. Ora, se premo "Invio", la cache verrà inizializzata dal lato client e esamineremo alcune attività nella finestra di monitoraggio. Quindi, senza ulteriori indugi e qui vediamo che il client è riuscito a ottenere gli indirizzi IP e l'handle della cache è stato inizializzato e ciò può essere confermato dal monitoraggio dello stato del cluster, che mostra che il numero di client è aumentato di uno.

finestra di monitoraggio

Iniziamo anche a vedere alcune attività sui diversi dashboard associati alle operazioni CRUD. Ad esempio "Aggiunte", "Recupera", Aggiornamenti" ed "Elimina". Oltre all'attività complessiva mostrata con le 'Richieste/sec'. Vediamo che il "Conteggio" ha iniziato ad aumentare quando il Cliente ha iniziato a inserire elementi nella cache e vediamo nel "Processo client" nuove voci relative al processo del client. Vediamo 'Client IP' e 'Process ID' e vediamo che il client è connesso a entrambi i server. Si tratta di una funzionalità specifica per la partizione e la partizione della topologia di replica nota come riconoscimento del cluster. Passando al "Client Dashboard", vediamo anche alcune attività qui e possiamo vedere che il Web Manager è stato in grado di ottenere i contatori dal lato client.

dashboard-cliente2

Il 'Report Dashboard' offre una visione d'insieme. Vediamo che l'istanza per nodo dei contatori delle prestazioni viene mostrata qui sui server e vediamo anche l'attività sul lato "Report client" proveniente dal lato client.

report-dashboard2

Ora che siamo stati in grado di connetterci con successo da .NET Core Client, proveremo ora a connetterci anche dal client Java. Quindi, proprio come con il .NET Core Applicazione, abbiamo un file batch che esegue l'applicazione Java qui. Anche in questo caso, prende gli stessi parametri, ovvero il nome della cache e l'URI del Cache Discovery Service.

cmd2

Ora eseguirò il programma e guarderò cosa cambia nella finestra di monitoraggio. Quindi, premo "Invio" e l'applicazione è stata avviata ed è stata inizializzata con successo e ora vediamo che ora ci sono 2 client collegati a ciascuno di questi server.

finestra di monitoraggio2

Venendo qui, diamo un'occhiata a cosa mostra l'attività. Prima di tutto, diamo un'occhiata al 'Conte'. Il "Conteggio" ha iniziato ad aumentare, perché il numero di client è aumentato ed entrambi stanno scaricando i dati nella cache. Anche le richieste hanno iniziato ad aumentare, il loro tasso e qui nel "Processo cliente", vediamo che ci sono 2 clienti mostrati qui. Poiché vengono eseguiti dallo stesso contenitore, gli IP del client sono gli stessi ma gli ID di processo sono diversi e uno da cui proviene .NET Core e l'altro da Java. Se arrivo alla finestra principale un'altra finestra, voglio mostrare è la finestra "Statistiche". Che offre un'altra visione di cosa sta succedendo? Per farlo, farò clic sul pulsante con i puntini di sospensione e andrò alla scheda "Mostra statistiche".

statistica

Qui vediamo anche i contatori delle prestazioni per nodo in questa finestra. Gli indirizzi IP sono mostrati qui. Pertanto, siamo riusciti a connettere i nostri client ai nostri server all'interno dello stesso cluster di Service Fabric.

statistiche2

scalata NCache Cluster

In quest'ultima parte della dimostrazione, dimostreremo l'aggiunta di runtime di nodi alla cache in cluster e vedremo che le aggiunte non hanno alcun impatto sulle prestazioni delle applicazioni client. Per questo, torniamo alla nostra finestra principale nel "Web Manager". Per aggiungere un terzo nodo, tutto ciò che dobbiamo fare è fare clic sul collegamento "Visualizza dettagli" come mostrato qui.

cluster-cache2

Questo ci porterà in un'altra finestra e se arriviamo alla sezione Nodi del server, per aggiungere un terzo nodo, tutto ciò che dobbiamo fare è fare clic sul pulsante "Aggiungi" mostrato qui.

pulsante di aggiunta

Fornire l'indirizzo del terzo Server. Lo farò qui e darò quello con 17 e il nodo è stato aggiunto con successo.

nodo_aggiunto

Ora che è stato aggiunto, dobbiamo avviarlo e per questo basta fare clic sulla casella di controllo accanto all'indirizzo IP e fare clic su "Avvia" ed è stato aggiunto con successo.

start2

Tornando alla finestra principale, se aggiorniamo questo pulsante, vediamo ora che ci sono 3 server e ora diamo un'occhiata a cosa succede alla finestra di monitoraggio. Come prima, facciamo clic sulla casella di controllo qui e sulla scheda "Monitoraggio" e ora vediamo che ci sono 3 server mostrati nella dashboard "Salute del cluster" ed è completamente connesso.

server-dashboard2

E nel "Processo cliente", abbiamo 3 server diversi che soddisfano la richiesta dei 2 clienti.

processo-cliente

E se guardi nella sezione "Conteggio", il "Conteggio" è stato bilanciato nel carico tra i 3 nodi.

sezione di conteggio

Ciò mostra che la strategia di bilanciamento del carico utilizzata dalla partizione del cluster di replica è attiva.

Questo ci porta alla fine della nostra presentazione. Abbiamo esaminato come possiamo schierare NCache come servizio containerizzato all'interno di un'applicazione Service Fabric. Se hai qualche domanda su NCache o la presentazione a cui hai appena assistito, non esitare a contattarci all'indirizzo support@alachisoft.com. Grazie.

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