Sviluppo di microservizi e servizi app di Azure con NCache

Webinar registrato
Di Ron Hussain e Adam J. Keller

Ottimizza le prestazioni e la scalabilità delle tue app cloud di Azure per l'esecuzione in condizioni di carico massimo. Usa un repository di dati veloce, scalabile e comune per migliorare l'esperienza delle applicazioni di servizio di Azure senza alcuna perdita di dati o sessioni.

Questo webinar illustra come integrare i microservizi di Azure e i servizi app con una cache distribuita .NET nel cloud.

Copriremo:

  • Introduzione ai microservizi e ai servizi app di Azure
  • Utilizzo dei pacchetti NuGet per NCache risorse dell'applicazione client
  • Fare NCache Chiamate API dai Servizi di Azure
  • Creazione e distribuzione di una cache distribuita in Azure
  • Uso della cache per i servizi di Azure
  • Monitoraggio della cache che esegue i Microservizi e i Servizi app di Azure

L'argomento che abbiamo selezionato oggi sta utilizzando NCache che è il principale sistema di memorizzazione nella cache distribuita all'interno dei servizi di Azure. Il mio obiettivo principale oggi saranno i microservizi di Azure. Parlerò di alcuni dettagli architetturali dei microservizi. Parlerò di alcuni dettagli sul motivo per cui hai bisogno di cache distribuita nei microservizi, quali sono i limiti e poi parlerò anche di servizi app Progetti di servizi di applicazioni web Microsoft Azure, dove le tue applicazioni web potrebbero aver bisogno anche di un sistema di caching distribuito per gestione dei dati, per sessioni, memorizzazione nella cache di output. Quindi, quel tipo di caratteristiche che evidenzierò. L'agenda principale che tratterò oggi, la parte pratica di questo webinar si concentrerà sull'architettura di distribuzione. Come viene distribuita esattamente una cache distribuita e come esattamente le tue applicazioni dovrebbero connettersi ad essa.

Microservizi e servizi app di Azure

Quindi, prima parlerò di alcuni dettagli introduttivi sui microservizi e sui servizi app di Azure

Che cos'è un microservizio?

Che cos'è un microservizio? Quindi, questo è un termine molto comune che sentiamo molto in questi giorni. È una piattaforma ed è offerta da Microsoft Azure. Ci sono alcuni AWS e poi ci sono anche alcuni fornitori di terze parti. In genere, chiamerei semplicemente Akka.NET, che è anche una piattaforma molto popolare su Java e poi l'hanno messa anche su .NET. Un microservizio è una piattaforma che incapsula gli scenari aziendali del cliente e si occupa di alcuni problemi che il cliente sta riscontrando all'interno dell'applicazione. Quindi, potrebbe essere sviluppato da un piccolo team di ingegneri. Potrebbe essere scritto in qualsiasi linguaggio di programmazione.

Potrebbe essere con stato o senza stato, ma è qualcosa che è indipendente all'interno dell'applicazione. Quindi, può essere con versione indipendente, implementato, distribuito e quindi la cosa bella dell'architettura di microservizi è che può essere ridimensionata, in modo indipendente. Non è necessario ridimensionare un'intera applicazione. Se una parte all'interno dell'applicazione soddisfa queste caratteristiche, puoi semplicemente implementarla come un microservizio. La tua applicazione può usarla come risorsa di microservizi e quindi puoi ridimensionare questa particolare porzione senza doversi preoccupare dell'intera scalabilità dell'applicazione. Quindi, ti offre un approccio più granulare ai diversi segmenti all'interno dell'applicazione.

Ho evidenziato due punti comuni qui che i tuoi microservizi sono protocolli di interfaccia ben definiti e interagiscono anche con altri microservizi. E poi hanno nomi univoci che è qualcosa che ottieni in Microsoft Azure e quindi devono rimanere coerenti e disponibili in caso di errori. Quindi, questa è un'altra importante caratteristica di un microservizio. Questo è qualcosa che ho copiato dal sito Web di Microsoft MSDN. Quindi, e sono abbastanza sicuro che tutti sappiano cos'è il microservizio. Quindi, questo dovrebbe coprire alcuni dettagli di base sul microservizio, va bene?

Tessuto di servizio di Microsoft Azure

Ecco il diagramma in cui il tipo di applicazione ha un tipo di servizio che potrebbe essere con stato o senza stato. L'ho già trattato.

microsoft-azure-service-fabric

C'è un altro tipo di applicazione che potrebbe anche avere i propri microservizi e quindi potrebbe parlare con alcune origini dati back-end per il codice, per le configurazioni. Potrebbe chiamare un servizio web. Potrebbe anche avere alcuni dati a cui ha bisogno di accedere e poi lo sono, sai ... Questa è solo un'idea di come sono architettati i microservizi. Potrebbero esserci più applicazioni e ogni applicazione potrebbe avere più microservizi, che a loro volta sono un cluster di server, cluster di istanze. Potresti avere partizioni all'interno del microservizio. Questo è principalmente un microservizio con stato. Se disponi di più microservizi, puoi scegliere di disporre di microservizi con stato o senza stato.

microsoft-azure-service-fabric-2

Se sono microservizi con stato, avresti una partizione dati e quindi ci sono repliche di altre partizioni. Quindi, se una partizione si interrompe, il backup sarà reso disponibile, automaticamente. Quindi, questo fa parte di Microsoft Azure, anche questo è parte generale dell'architettura di microservizi ed è ciò che ti offre anche Amazon, Akka.NET che ha anche lo stesso tipo di formato di domanda. Quindi, il microservizio è qualcosa che fornisce lo stato al suo interno all'interno della sua architettura per impostazione predefinita. Quindi, evidenzierò esattamente dove hai bisogno di una cache distribuita come NCache. Perché esattamente hai bisogno di una cache distribuita e ci sono alcuni colli di bottiglia, ci sono alcuni problemi che la cache distribuita aiuterà a risolvere come parte di questo webinar, che tratterò.

Introduzione ai servizi app Web di Azure

Poi parlerò anche dei servizi di applicazioni web di Azure. È più facile distribuire applicazioni Web in Microsoft Azure.

introduzione ai servizi webapp di Azure

Non è necessario disporre dell'intera VM. In realtà riduce il tuo tempo DevOps, la quantità di esperienza necessaria, il tempo necessario, è qualcosa che viene gestito. Quindi, potresti semplicemente ottenere un'applicazione basata su istanza distribuita in Microsoft Azure. È un ambiente dedicato completamente isolato per le tue applicazioni. Puoi ridimensionarlo. Puoi ospitare più applicazioni. Possono essere le tue app mobili, web o potrebbero essere le tue app per le funzioni, qualunque sia richiesta a questo punto puoi usarla usando il nostro modello di servizio di app web di Microsoft Azure.

E poi è altamente scalabile, ho già detto che l'isolamento è garantito. Ottieni un accesso sicuro alla rete e quindi puoi anche utilizzare un elevato utilizzo della memoria e altre risorse necessarie. E questa è una transizione che la maggior parte delle distribuzioni sta prendendo dove effettivamente invece di avere l'intera VM che ospita la tua applicazione in un modulo Web o uno scenario di giardino Web in cui devi gestire l'intera VM, puoi avere un approccio basato sull'istanza in cui è possibile distribuire un'applicazione basata sui servizi e potrebbe essere una tipica applicazione MVC che può utilizzare sessioni, che può utilizzare chiamate al database. Quindi, tutti i tipi di normali concetti relativi alle applicazioni Web MVC, ma è solo che la distribuzione è leggermente diversa.

Caching distribuito

Ora che abbiamo definito i microservizi di Azure e i servizi di applicazioni Web di Azure, giusto? Pertanto, il microservizio in Microsoft Azure è un progetto di Service Fabric mentre i servizi di app Web sono un progetto di servizio di app. Quindi, evidenzierò i dettagli al riguardo e parlerò del pezzo di rete di cui hai bisogno per utilizzare nella cache distribuita.

Che cos'è una cache distribuita in memoria?

In primo luogo, parlerò dei concetti di cache distribuita in generale.

che cosa è la cache di memoria distribuita

Che cos'è una cache distribuita? Una cache distribuita è un cluster di servizi di memorizzazione nella cache poco costosi che sono raggruppati insieme per la memoria e le loro risorse per la potenza di calcolo e quindi la loro potenza di archiviazione e, nel caso della cache distribuita, è la memoria che presenta la memoria principale. Quindi, raggruppa tutte le risorse di memoria in una capacità logica.

Quindi puoi sincronizzare gli aggiornamenti della cache su tutti i server cache. Ad esempio, qualsiasi aggiornamento applicato a un determinato server viene applicato a tutti i server di memorizzazione nella cache. Quindi, la cache distribuita è un cluster di più server cache economici che sono uniti in una capacità logica. Hai più server in Microsoft Azure, questi saranno macchine virtuali. Così, NCache viene distribuito su una macchina virtuale. Questa è l'opzione di distribuzione corrente. NCache può anche essere distribuito in Docker, giusto? Quindi, questa è un'altra opzione di distribuzione. Quindi, il server cache in esecuzione su una macchina virtuale ma verrà trattato come una risorsa separata all'interno di Microsoft Azure e questa è la distribuzione tipica per quanto NCache è interessata la configurazione lato server.

La caratteristica successiva di una cache distribuita è che tutti gli aggiornamenti della cache dovrebbero essere sincronizzati su tutti i server di memorizzazione nella cache. Potresti avere 2 3 4 server di memorizzazione nella cache e dovrebbero avere una vista coerente dei dati. I dati dovrebbero essere visibili nello stesso stato per tutte le applicazioni ad esso collegate.

E, quindi, potrebbe aumentare linearmente la memoria e le transazioni man mano che aumenti la tua capacità, hai bisogno di più spazio di archiviazione, più risorse, puoi semplicemente introdurre sempre più server di memorizzazione nella cache e dovrebbe crescere in modo lineare. E .. quindi la replica è un'altra parte di essa che dovrebbe replicare i dati, per tutti i dati che vengono aggiunti se il server si interrompe, dovrebbero essere replicati automaticamente. La replica dovrebbe essere eseguita in base all'operazione, quindi i dati dovrebbero essere resi disponibili se un server si interrompe.

Quindi, queste sono alcune caratteristiche comuni della cache distribuita.

L'archiviazione dei dati è un collo di bottiglia per la scalabilità

In genere, le tue applicazioni, che si tratti di servizi app o microservizi, potrebbero parlare con alcune origini dati di back-end. In Microsoft Azure potresti avere un'istanza del server sequel che potrebbe trovarsi sulla stessa rete V o una rete V incrociata ma continui a parlare con il server di database.

l'archiviazione dei dati è un collo di bottiglia

Quindi, potrebbe essere lento potrebbe non essere molto scalabile. Quindi, ha più senso introdurre un livello di cache distribuita anche in Microsoft Azure. E parlerò anche di casi d'uso per quanto riguarda i servizi in-app di microservizi.

NCache Distribuzione

Questa è una distribuzione tipica di NCache.

ncache distribuzione in Azure

Quindi, in Microsoft Azure avresti VM che si ridimensionerebbero orizzontalmente, potresti semplicemente creare una rete virtuale, creare VM e quindi installare NCache su quelle macchine virtuali o usa le nostre immagini di Azure o AWS. Quindi, per parlare e quindi le tue applicazioni possono connettere microservizi, app API, tipiche app ospitate da IIS su altre macchine virtuali o potrebbero essere servizi app a cui possono connettersi tutti e ti risparmia viaggi verso le origini dati di back-end. Quindi, questa è l'idea generale di una distribuzione tipica di NCache e lo rivedrò una volta che passeremo alla nostra distribuzione per i microservizi e i servizi delle app di Azure. Nel cloud questo cambierebbe leggermente. Quindi, ne parleremo.

Tre usi comuni di NCache

VA BENE! questa è la diapositiva più importante di questo webinar. Voglio evidenziare dove utilizzeresti esattamente una cache distribuita nei servizi di Microsoft Azure, giusto? Quindi, in genere si parla di applicazioni Web, servizi Web, applicazioni back-end, servizi finestra, che devono accedere ai dati da un'origine centralizzata e hanno bisogno di un repository molto veloce. Quindi, questo è un tipico caso d'uso. In Microsoft Azure hai già una piattaforma molto scalabile. Le tue applicazioni possono scalare in modo lineare e questo è il caso tipico anche con moduli Web e Web Garden.

Quindi, ho elencato alcuni casi d'uso importanti che puoi utilizzare all'interno di Microsoft Azure per i servizi.

Memorizzazione nella cache dei dati dell'app

Prima di tutto, puoi usarlo per la memorizzazione nella cache dei dati e questo vale per i microservizi di Microsoft Azure e per i servizi delle app. Se ci sono servizi apolidi, giusto? Perché i servizi con stato richiederebbero il proprio set di partizionamento e quindi avresti anche repliche, ma senza stato non hanno repliche. Quindi, un aspetto importante è che hai un'applicazione stateless ma vuoi comunque avere l'affidabilità dei dati, giusto? Quindi, in tal caso puoi mettere i dati in una cache distribuita. La cache distribuita in base alla progettazione può coprire l'aspetto della replica e l'aspetto dell'elevata disponibilità. Quindi, i tuoi dati sarebbero resi disponibili anche per i microservizi senza stato.

Inoltre, il vantaggio successivo potrebbe essere anche all'interno del microservizio o del servizio app, se è presente un'applicazione Web che può comunicare con un'origine dati back-end come il server SQL. Quindi, il server SQL è lento. Non è qualcosa che può gestire un enorme carico di transazioni. In risposta a ciò, una cache distribuita può avere più server, che sono linearmente ridimensionati e sono uniti in una capacità logica, giusto? Quindi, puoi aggiungere sempre più server al volo. E in Microsoft Azure è molto semplice gestirlo. Puoi semplicemente generare una nuova VM e raddoppieresti semplicemente la tua capacità aggiungendo sempre più server di memorizzazione nella cache. Quindi, caso d'uso della memorizzazione nella cache dei dati, è prima di tutto in memoria. Quindi, è super veloce nella capacità del database e quindi è una piattaforma molto scalabile anche in Microsoft Azure rispetto al tuo server Microsoft SQL. Quindi, questi sono due vantaggi che ottieni nei servizi delle app di Microsoft Azure e nel caso d'uso di Microsoft. Hai solo bisogno di presentarti NCache Chiama l'API e continui ad aggiungere dati in una coppia di valori chiave.

Memorizzazione nella cache specifica di ASP.NET

Il secondo caso d'uso è specifico dei servizi di app Web Microsoft. Riguarda la memorizzazione nella cache specifica di ASP.NET. Quindi, se hai un servizio app, puoi usarlo NCache, con cui parla il tuo servizio app NCache per le sessioni e per l'output dei dati nella cache. A proposito, può anche usare l'API di memorizzazione nella cache degli oggetti perché questo caso d'uso si applica anche ai servizi dell'app ASP.NET. Pertanto, lo stato della sessione in genere farà parte della stessa istanza del servizio app che richiede la necessità di un bilanciamento del carico della sessione permanente o potrebbe far parte del database. In entrambi i casi, se si tratta di una sessione appiccicosa, è limitata dove devi avere un bilanciamento del carico appiccicoso che è l'opzione predefinita. E poi, dal lato del database, sarà di nuovo lento e quindi sarà anche l'unico punto di errore.

Con i servizi delle app, utilizzando NCache come provider di sessioni, prima di tutto, è molto scalabile. È estremamente veloce e non ci sarebbe nessun singolo punto di errore. Le sessioni vengono replicate tra i server, quindi è qui che ottieni un vantaggio in cui dovresti prendere in considerazione l'utilizzo di una cache distribuita per le tue applicazioni ASP.NET. E poi questa potrebbe essere anche una distribuzione multisito e questo è qualcosa che ho intenzione di trattare anche oggi in cui avremmo un'applicazione distribuita in un sito che comunica con i server di memorizzazione nella cache sullo stesso sito e quindi ha la capacità di parlare anche ai server di memorizzazione nella cache del sito. Inoltre, evidenzierò quali configurazioni sono necessarie all'interno di Azure, ma all'interno è impossibile NCache offerte di memorizzazione nella cache distribuite all'interno di Microsoft Azure.

Il secondo caso d'uso riguarda la memorizzazione nella cache dell'output, giusto? È quindi possibile utilizzare le pagine statiche all'interno di un servizio app all'interno di un'applicazione Web distribuita come servizio app. Se sono presenti Pagine statiche, memorizzi nella cache i contenuti di tali pagine. L'intero output della pagina può essere memorizzato nella cache e puoi utilizzare quell'output di pagina la prossima volta che devi accedere alla stessa pagina. Quindi, questo è un altro vantaggio. Questo è qualcosa che tratterò nel nostro tipico webinar sulle prestazioni e sulla scalabilità di ASP.NET, in cui parlo di quattro modi diversi per ottimizzare le prestazioni di ASP.NET. Pertanto, lo stesso concetto verrebbe applicato ai servizi dell'app Microsoft Azure, in cui un'applicazione Web viene distribuita come servizio dell'app.

Pub/Sub e condivisione dei dati di runtime

Ora il terzo caso d'uso importante e questo è il bit più importante quando si tratta di microservizi. Sebbene si applichi anche ai servizi delle app. I servizi dell'app potrebbero richiedere la condivisione dei dati direttamente da un servizio dell'applicazione che comunica con un altro servizio dell'applicazione oppure potrebbero essere dati condivisi tra due diverse applicazioni. Quindi, ci sono applicazioni web che sono di natura diversa ma dipendono dagli stessi dati. Potrebbe esserci un'applicazione di segnalazione e potrebbe esserci un consumatore di quella, oppure potrebbe esserci un produttore in termini di cataloghi di prodotti e poi c'è un'altra applicazione che deve dipendere da quella, deve generare alcuni rapporti in base alla prima applicazione . Quindi, quel caso d'uso richiede che le tue applicazioni condividano i dati tra loro. Quindi, non è possibile utilizzare il database per condividere i dati, ma è lento e in alcuni casi è anche un singolo punto di errore. La cache distribuita ha più senso perché le tue applicazioni possono connettersi ad essa in un modello client-server. Più applicazioni possono connettersi allo stesso livello stesso livello di memorizzazione nella cache e quindi possono utilizzare le stesse risorse della cache e ottenere l'accesso agli stessi dati ed è qualcosa che puoi attivare.

Nei microservizi di Azure, è necessario portarlo a un altro livello. Nei microservizi di Azure, sebbene questi siano in cluster e ho già menzionato che potrebbero essere con stato e senza stato, giusto? Potrebbe esserci un requisito e questo è qualcosa che ho menzionato che i tuoi microservizi potrebbero dover interagire anche con i microservizi, giusto? Pertanto, in base alla progettazione, l'architettura dei microservizi richiede che le istanze del servizio potrebbero dover interagire tra loro e quindi potrebbe essere necessario condividere i dati tra loro. E questo è un requisito fondamentale per quanto riguarda la piattaforma di microservizi. Abbiamo semplicemente bisogno che più istanze dell'applicazione condividano i dati tra loro. Un microservizio invia alcuni dati ed è disponibile per altre istanze di microservizi, se è uno stato o potresti avere più applicazioni che interagiscono sulle stesse righe, ma all'interno di due microservizi questo è qualcosa che è un must e quindi molti provider di terze parti lo sono fornendo la condivisione dei dati e il modello pub/sub come parte delle loro offerte, giusto?

Quindi, in Microsoft Azure, se è necessario gestire la condivisione dei dati in cui un'applicazione comunica con un archivio e dispone di dati necessari per un'altra applicazione, un'altra istanza di microservizi, quindi è necessaria una piattaforma per gestirlo e NCache offre quella piattaforma in cui i dati sono resi disponibili in modo centralizzato. È un repository estremamente veloce. È estremamente scalabile, inoltre più istanze di microservizi diversi servizi o istanze degli stessi servizi possono connettersi a questa cache e quindi possono utilizzare le funzionalità di condivisione dei dati al di fuori di essa. Pertanto, i dati sono disponibili centralmente in modo più rapido.

Quindi abbiamo il modello pub/sub basato su argomenti. Abbiamo una piattaforma di messaggistica fuori di esso. Quindi, un messaggio può essere inviato, potrebbe essere un messaggio guidato dai dati o potrebbe essere un messaggio guidato dall'applicazione o un messaggio basato su argomenti in cui l'applicazione produttore e questa è un'istanza di microservizio che invia i dati alla cache e quindi quel messaggio viene trasmesso a tutti i destinatari a questo abbonato. Allo stesso modo, in alcuni casi, gli abbonati possono anche essere produttori. È quindi possibile usare la messaggistica pub/sub tra più istanze di microservizi di Azure. Potrebbe essere anche la condivisione di dati guidata da eventi tra più istanze. Inoltre, abbiamo la notifica degli eventi e il sistema di query continue. Potrebbe essere un comando SQL e in base a ciò è possibile definire nuovamente un set di dati rispetto al quale è possibile ottenere messaggi basati sui dati da questo. Quindi, questo è il caso d'uso che prenderesti in considerazione utilizzando la cache distribuita di Microsoft Azure all'interno dei microservizi di Microsoft Azure.

NCache Scenari di distribuzione in MS Azure

Poi parlerò anche dei servizi di applicazioni web di Azure. È più facile distribuire applicazioni Web in Microsoft Azure.

scenari di distribuzione

Va bene. Quindi, ora abbiamo due tipi di scenari giusti. Quindi, avremmo distribuito tutto in una singola regione in un unico sito all'interno dello stesso gruppo di risorse o preferibilmente all'interno della stessa rete virtuale, giusto? Quindi, ne ho già discusso NCache verrà distribuito su VM in Microsoft Azure mentre le tue applicazioni possono essere VM che accedono a quelle VM di NCache oppure questi potrebbero essere servizi di Azure e oggi ci concentreremo sui servizi di Azure. Il caso di VM è molto tipico in cui si genera una VM, si accede all'iAS, si ospita l'applicazione lì e quindi si connette l'applicazione a NCache utilizzando NCache API o provider dell'archivio sessioni. Ma, quando si tratta di servizi, è necessario eseguire alcune configurazioni di rete. Quindi, con cui il tuo servizio parla NCache.

Quindi, abbiamo la distribuzione in un unico sito in cui i tuoi servizi di Azure e NCache sono distribuiti nella stessa regione nello stesso sito. Pertanto, il servizio di Azure quando lo distribuisci, devi collegarlo allo stesso gruppo di risorse e anche alla stessa rete virtuale. Quindi, questo è l'approccio consigliato. Non avresti bisogno di alcun intermediario. Non ci sarebbero più salti non rallenterebbe le cose. Quindi, questo è lo scenario consigliato per il nostro sito.

Secondo scenario, questo è anche uno scenario molto valido in cui potresti avere più siti, giusto? Ti consigliamo comunque che la tua cache e le tue applicazioni, i tuoi servizi di app di microservizi dovrebbero essere sempre nella stessa regione in cui dovrebbero essere in grado di connettersi tra loro. Da NCache è un protocollo TCP-IP. Quindi, utilizza indirizzi IP e porte per tutte le comunicazioni e queste sono porte TCP-IP. Quindi, deve essere distribuito in modo tale che le tue applicazioni siano nelle vicinanze. Sono schierati in combinazione l'uno con l'altro. Sono nelle vicinanze, non sono disponibili diversi luppoli. Pertanto, ti consigliamo di distribuire la cache nello stesso sito in cui si trovano le tue applicazioni, ma potrebbe esserci uno scenario in cui stai utilizzando funzionalità multisito. Dove la tua applicazione potrebbe dover comunicare con la cache su un altro sito o dove le tue cache devono comunicare tra loro. Quindi, abbiamo bisogno di una comunicazione da sito a sito in corso NCache come pure.

Quindi, questo è l'ordine del giorno che tratterò questi due scenari. Si consiglia lo scenario 1 che tutto è nei singoli più vicini alla tua applicazione. Lo scenario due è che potresti avere più siti e la tua applicazione dal sito uno comunica con i server di memorizzazione nella cache del sito due o potrebbe essere server di memorizzazione nella cache. Ad esempio, per la funzione di replica WAN è possibile disporre di un bridge tra le cache del sito uno e del sito due.

Scenario 1: distribuzione in un unico sito per i servizi di Azure e NCache (Consigliata)

Pertanto, per la distribuzione in un unico sito per i servizi di Azure, illustrerò alcuni passaggi dettagliati al riguardo. Parlerò dello sviluppo di applicazioni, di come presentate NCache chiamate all'interno della tua applicazione e utilizzeremo un progetto di servizio per questo come esempio di riferimento. Bene. Quindi, questo è il diagramma che dovrebbe coprire tutti i dettagli che ho intenzione di trattare in questo webinar.

distribuzione-sito-singolo-ncache-azzurro

L'ho già menzionato NCache i server saranno macchine virtuali in Microsoft Azure. Giusto? Quindi, devi occuparti della rete virtuale che supporta queste VM e poi NCache deve essere installato su questi e quindi sulle tue applicazioni Web, che vengono distribuite come servizi app, potrebbero essere app API o potrebbero essere app di microservizi, giusto? Sono tutte istanze di servizio. Non sono VM sottostanti. Quindi, questo significa anche che non puoi installare NCache su queste risorse è necessario includerlo come parte delle risorse dell'applicazione. Quindi, ci sono pacchetti NuGet che evidenzieremo. Va bene! Quindi, abbiamo app Web e poi app API e potrebbero esserci anche microservizi e altre app.

Quindi, questa è una tipica distribuzione a sito singolo in cui abbiamo la stessa rete virtuale di Azure che ospita le tue applicazioni e il VMS di NCache. E quello che stiamo davvero facendo in questo è un punto per il sito VPN tra le tue applicazioni web e le tue app di servizio e NCache servizio. Quindi, ecco come appare la rete generale. Fa parte della stessa rete virtuale in cui utilizzeremo effettivamente un progetto di servizio. Presenteremo NCache risorse in esso quindi creeremo risorse lato server per NCache. Quindi, che le nostre VM siano attive e funzionanti e quindi torneremo semplicemente all'applicazione e allegheremo la nostra applicazione alla stessa rete virtuale in cui il nostro NCache Esistono macchine virtuali. Quindi, ciò lo renderebbe un unico sito e utilizzerebbe la stessa rete virtuale del nostro servizio di memorizzazione nella cache.

passaggi per la distribuzione a sito singolo
Passaggio 1 per la distribuzione su sito singolo: creare macchine virtuali per NCache

Quindi, esaminiamo i passaggi con questi.

sito singolo-passaggio1

Va bene! Il primo passo è quello che hai NCache Sul lato server, riscaldalo e configuralo e ciò significa in realtà configurare le macchine virtuali di Azure per NCache e questo passaggio è comune per tutti i tipi di distribuzione, sia che si tratti di una distribuzione su un unico sito o di una distribuzione su più siti. Per la distribuzione su un singolo sito, è sufficiente che il tuo NCache i server sono impostati, sono macchine virtuali e quindi NCache è installato su quelli. Quindi, ti porterò rapidamente al nostro portale di Azure, giusto? E, se vado solo ai gruppi di risorse, ho appena creato un gruppo di risorse, fammi semplicemente ordinarlo. Il mio primo gruppo di risorse è il gruppo di risorse demo uno, giusto? E qui abbiamo tutti i tipi di VM, ad esempio, abbiamo la VM demo uno e poi abbiamo anche la VM demo due e in effetti ho usato la stessa rete virtuale, male mio.. Va bene! Ho usato la stessa rete virtuale per entrambe queste macchine demo.

Lascia che ti mostri rapidamente il.. lascia che lo porti proprio qui. Va bene! Quindi, abbiamo la demo VM uno se guardi questo è distribuito nell'Europa occidentale e poi abbiamo la demo VM due e poi c'è una demo VM v-net uno, giusto? Se faccio clic su di esso, posso vedere la demo VM 1 e la demo VM 2 parte di questo e questi sono gli indirizzi IP 10.4.0.4 e 10.4.0.5. Quindi, questo rappresenta i nostri due NCache VM e se ti porto rapidamente in questo ambiente proprio qui.

Quindi, quello che ho fatto davvero è che ho creato una VM, un'immagine vuota del 2012 o del 2016 andrebbe al nostro Alachisoft sito web e tutto ciò di cui hai bisogno, non c'è nessun programma di installazione speciale per NCache. Devi solo utilizzare il programma di installazione esistente. Vai alla pagina di download e scarica la versione di prova di 30 giorni di NCache dal nostro sito Web e una volta fatto che ho installato NCache su demo VM 1 e demo VM 2. E poi ho creato anche una cache di rete V demo. I passaggi per la creazione della cache sono molto semplici. Devi solo andare alla cache demo, prendere la topologia di memorizzazione nella cache, async e specificare la demo VM 1 e quindi penso che la demo VM 2 dovrebbe scegliere l'IP così com'è. Sì lo fa. Quindi, questi server sono in grado di parlare tra loro.

Un ulteriore passaggio che ho fatto, se torno alla presentazione, questi sono i passaggi necessari per l'impostazione NCache servizio per Microsoft Azure. Crei una rete virtuale di Azure, giusto? È qualcosa che potresti già avere nel tuo ambiente. Quindi crei macchine virtuali su quelle reti virtuali di Azure. Quindi, potresti avere un set dedicato di VM per NCache; server uno server due server tre. E poi ti assicuri di mantenere le stesse sottoreti. Questo è qualcosa che ti consigliamo e poi installi NCache su tutte quelle macchine virtuali. Poi un'altra cosa è che apri NCache porte per la comunicazione. Ci sono due tipi di porte, due tipi di considerazioni sulla rete che devi avere. Uno è che devi avere il firewall interno disabilitato e quindi sulla rete in cui si trovano queste VM, dovresti avere un gruppo di sicurezza di rete, giusto?

Quindi, ad esempio, demo VM one network security group, avremmo queste porte già aperte, giusto? Quindi, se ti mostro rapidamente il NCache porte, tutto ciò di cui abbiamo bisogno sono le porte 9800 e 48250. Questo è per la comunicazione in entrata e in uscita. 9800 e 48250 Quindi, questo assicurerebbe che qualsiasi applicazione tenti di utilizzare NCache, che utilizza la porta 9800, è in grado di connettersi a questi server di memorizzazione nella cache e quindi a qualsiasi applicazione che sta tentando di gestire, ad esempio, potrebbe esserci un'altra VM che sta tentando di gestirlo e potrebbe essere una rete virtuale incrociata, ma fa parte del stesso gruppo di risorse, questi gruppi di sicurezza di rete consentono di avere questa comunicazione in corso su queste porte. Quindi, questo è tutto. Questa è la considerazione che devi avere.

Ho disattivato il firewall sui server di memorizzazione nella cache stessi. E queste porte sono aperte e ho appena creato una cache e posso vedere le statistiche. Posso semplicemente eseguire un'applicazione dello strumento di stress test direttamente su queste macchine e posso farlo rapidamente, c'è un po' di ritardo, quindi per favore abbi pazienza. E posso anche simulare un po' di stress anche su questi. Quindi, mi dispiace V net una cache ed eseguiamo e simuliamo l'attività su questi due server di memorizzazione nella cache. Quindi, ecco quanto è facile per quanto riguarda l'installazione lato server. Ora devi tornare alla tua applicazione e dare un'occhiata. Sì! ecco qua. Quindi, abbiamo delle attività in arrivo. Quindi, siamo a posto. Lo chiuderò.

Passaggio 2 per la distribuzione su sito singolo: distribuire il servizio di Azure nell'ambiente

Quindi, ora che abbiamo le macchine virtuali configurate, ho creato anche un cluster di cache, la cosa successiva è che ho bisogno di un'applicazione Web che possa comunicare con questo cluster di cache, giusto? Quindi, tornerò rapidamente alla mia presentazione proprio qui, giusto?

sito singolo-passaggio2

Quindi, dal punto di vista delle tue applicazioni, ciò di cui hai veramente bisogno è che hai bisogno di una configurazione di rete da punto a sito tra la tua applicazione, nel tuo servizio app in NCache. Quindi, prima di tutto, l'ho già fatto, giusto? solo per evidenziarlo. Ora, se torni al gruppo di risorse, abbiamo il gruppo di risorse demo 1. Quindi, abbiamo un gateway di rete virtuale demo, giusto? Abbiamo creato un gateway su questo, giusto? E poi abbiamo un punto per il sito. Questo è un gateway di rete virtuale che utilizza demo v-net, che è la rete principale per il nostro servizio di memorizzazione nella cache. Quindi, se torno qui, se guardi questo diagramma, in realtà utilizza un gateway di rete virtuale qui, che fa parte di questa rete virtuale e quindi le mie applicazioni che distribuirò a breve avranno un punto sul sito comunicazione in corso tra questo in modo che questo sia collegato alla stessa rete virtuale. Questo è il requisito di Microsoft Azure. affinché il servizio dell'app possa comunicare con le risorse che si trovano su una rete virtuale, ad esempio le macchine virtuali, è necessario disporre di un punto di configurazione del sito.

Quindi, tornando proprio qui. Quindi, abbiamo un gruppo di risorse demo. Anche se ti mostro il punto al sito, lasciami venire qui, se ti mostro le configurazioni da sito a sito del punto, abbiamo questo IP che è un IP generale per i nostri servizi di app. Quindi, una volta distribuito un servizio app, fai clic su di esso e quindi lo colleghi alla rete virtuale corrispondente.

Quindi, tornerò al mio progetto, penso di non averlo mostrato prima, ma questa è un'applicazione di esempio che è un'app di servizio. Ti mostrerò cosa è necessario. Quindi, se fai clic con il pulsante destro del mouse su di esso, hai pacchetti NuGet disponibili per Microsoft Azure.

demo-step1-singolo sito

Quindi, per esempio, abbiamo Alachisoft.NCache.SDK. Questi sono disponibili privatamente con noi, giusto? Questi equipaggiano le tue applicazioni con tutti i NCache punti alle risorse perché non c'è alcuna installazione di NCache dal lato cliente. Tipico NCache la distribuzione è che hai un client installato, hai un server installato. Quindi, coprilo, giusto? Ma con i servizi è un'istanza. Quindi, non hai accesso alla VM sottostante. Quindi, in tal caso, hai bisogno dei pacchetti NuGet. In modo che tutte le risorse siano rese parte di cui hai bisogno all'interno dell'applicazione. Quindi, questo è il pacchetto nougat che ho già installato. Che cosa ha davvero aggiunto tutto il NCache librerie del sito client, giusto? Quindi, ha aggiunto anche alcune configurazioni. Quindi, abbiamo client.ncconf, che è il file principale che si collega a qualsiasi cache.

Ad esempio, ho già le impostazioni per connettermi a V net una cache che è il nome e quindi ho anche gli indirizzi IP interni per connettermi a quelli. La prossima cosa è che pubblico questa applicazione e quindi questa applicazione dovrebbe essere in grado di accedere a 10.4.0.4 per VM uno e 10.4.0.5 per VM due. Quindi, devo assicurarmi che ci sia un punto per la comunicazione del sito in cui questo IP pubblico è accessibile alla mia applicazione, solo allora sarebbe in grado di connettersi con questa cache.

Quindi, tornando all'applicazione, sto mostrando alcune chiamate alla cache. Quindi, all'interno di questo progetto MVC, abbiamo il nostro controller principale in cui abbiamo questa istanza della cache e quindi sto usando l'istanza della cache. Inizializza cache. Lasciami andare a questo metodo proprio qui. Quindi, questo è il metodo inizializzato, NCache.initializeCache e quindi chiamiamo anche cache.insert per aggiungere un elemento, Cache.delete per eliminare quell'elemento, cache.get per recuperare l'elemento e quindi se non sono sicuro di aver eseguito un test di carico, sì! Quindi, esiste un altro test di caricamento del metodo che carica effettivamente l'elemento, migliaia di elementi vengono caricati nella cache e quindi vengono recuperati anche quelli. Quindi, questo dovrebbe occuparsi della logica principale e della nostra applicazione.

Ci sono alcune viste che ti mostrerò. Quindi, abbiamo anche delete, get, index e load test e questi vengono semplicemente chiamati tramite la nostra applicazione. Quindi, quello che farò è che questi sono di base NCache chiamate. Quindi, quello che farò dopo è semplicemente distribuirlo su Microsoft Azure. Quindi, ho già impostato tutti i gruppi di risorse e il pezzo di rete, proprio qui. Ma ciò di cui hai veramente bisogno è che se si tratta di un'app Microsoft Azure, devi semplicemente creare un nuovo nome della tua app Web in base al tuo abbonamento. Aspettiamo un po' di tempo. Quindi, che scelga l'abbonamento. Ecco qua. Quindi, ha selezionato automaticamente l'organizzazione di Visual Studio e quindi il gruppo di risorse, ho solo intenzione di utilizzare il gruppo di risorse demo uno. Quindi, sto usando la distribuzione su sito singolo. Quindi, fa parte dello stesso gruppo di risorse e quindi scelgo il piano di servizio e quindi scelgo semplicemente crea. Potresti anche mettere nuovo qui. Quindi, che anche la posizione sia l'Europa occidentale, va bene? Scegli OK su questo e quindi scegli crea e verrà avviato automaticamente su quello.

Da allora, l'ho già fatto. Quindi, quello che faccio dopo è che andrò semplicemente alla mia configurazione web, assicurandomi che stia usando V net cache one e all'interno di client.ncconf abbiamo la V net one cache. Quindi, questa applicazione verrà distribuita nello stesso sito. Lo stesso gruppo di risorse finisce e poi lo allegherò alla rete virtuale che fa parte del mio NCache server VM.

Tornando a Microsoft Azure, tra un momento, se vado al gruppo di risorse uno, dovremmo avere questa applicazione da qualche parte. Ecco qua! Se fai clic su di esso e poi sul pezzo di rete di questa applicazione una volta che è stata distribuita, giusto? Così giusto! Quindi, vai al networking, ci fai clic e poi è già connesso alla demo v-net one, giusto? L'ho già fatto, vero? Quindi, nel tuo caso, dal momento che una volta che hai stabilito una connessione punto al sito sul tuo gateway di rete virtuale, hai un gruppo di risorse demo, giusto? Riportando questo su, proprio qui. Quindi, una volta creata una rete virtuale, creare un punto per il sito e quindi questo IP del servizio app viene esposto, dopo aver distribuito il servizio app è necessario collegarlo alla rete virtuale, giusto? Quindi, questo è qualcosa che è un passaggio in più che è necessario, proprio qui. Quindi, spero che la mia applicazione sia caricata. Lo sto aspettando si!

Ora sul lato server cancellerò il contenuto e inserirò solo un elemento. Aggiunto con successo nella cache. E puoi vedere un oggetto su di esso, lo prenderò rapidamente. Mi dispiace, non posso davvero mostrarti i contatori, ma in realtà li ha recuperati e quindi posso eliminarli, giusto? Quindi, e poiché fa parte della stessa rete virtuale, è molto più veloce in confronto.

Ora mi limiterò a simulare alcuni test di carico, aggiungerò solo migliaia di elementi e dovresti vedere un po' di attività. Ecco qua, vero? Quindi, le richieste al secondo e quegli elementi vengono aggiunti e quindi potresti vedere circa 600 elementi qui circa 400 elementi qui e quindi non recupera quegli elementi. Quindi, questa è una distribuzione tipica dei tuoi servizi, siano essi microservizi, servizi app, app API o qualsiasi applicazione distribuita in un modello di servizio. Devi solo introdurre i pacchetti NuGet, creare un punto di connessione al sito NCache Le macchine virtuali attraverso ciò che il gateway di rete e quindi l'istanza dell'applicazione possono essere collegate alla macchina virtuale. Quindi, queste sono tutte le configurazioni di rete di Microsoft Azure e NCache ha solo bisogno di indirizzi IP privati ​​da esporre sul canale TCP-IP. Quindi, questo è tutto ciò di cui abbiamo bisogno.

Scenario 2: distribuzione multisito per i servizi di Azure e NCache

Quindi, poiché abbiamo meno tempo a disposizione, penso che negli ultimi 10 minuti tratterò anche lo scenario multisito. Le configurazioni sono quasi simili.

distribuzione-multisito-ncache-azzurro

Abbiamo le nostre app Web o servizi Microsoft o servizi app distribuiti su una rete virtuale di Azure o in un sito e quindi NCache VM o un altro sito e per questo ciò di cui abbiamo veramente bisogno è un gateway di rete locale qui e un gateway di rete virtuale qui e poi abbiamo bisogno di una connessione da sito a sito tra questi due. Anche in questo caso, queste sono tutte impostazioni di Microsoft Azure che consentono a due parti di connettersi tra loro utilizzando una connessione da sito a sito e NCache utilizza quelli e gli IP interni sono mappati su ciascun lato. Quindi, il tuo NCache gli IP interni del server sono mappati sulla rete virtuale dei servizi applicativi e viceversa.

E per questo ti mostrerò rapidamente le configurazioni. Se ti riporto ai gruppi di risorse, abbiamo il gruppo di risorse demo due, giusto? Quindi, questa è un'altra rete virtuale. E abbiamo la demo v-net due, proprio qui, e ho anche due scatole su questa rete virtuale, demo VM 3 e Demo VM 4. Quindi, questo ambiente qui è 10. 4.0.4 questa è un'altra rete virtuale. Potrebbe essere anche attraverso il sito Sto solo usando l'analogia di un'altra rete virtuale come un altro sito. Ma potrebbe essere un sito trasversale, potrebbe essere un altro data center in un'altra regione in Microsoft Azure.

Passaggi per la distribuzione multisito: distribuire il servizio di Azure nell'ambiente

Quindi, ciò di cui hai veramente bisogno è mantenere le stesse impostazioni per questo come ho già spiegato.

passaggi per la distribuzione multisito

Mantieni la parte VM sulla stessa rete virtuale stessa sottorete, crea una cache, avvia quella cache e ora la tua applicazione deve connettersi alla nostra cache che è un sito incrociato. Per questo, è necessaria una comunicazione da sito a sito in corso. E, se torno qui su questo gruppo di risorse demo, dal momento che abbiamo una rete virtuale demo e un gateway di rete virtuale demo, sì, ecco qua, gateway di rete virtuale 2, giusto? Quindi, questo è un gateway sul secondo sito. Quindi, se andiamo alle connessioni, abbiamo la connessione da sito a sito della demo 2. Quindi, abbiamo una connessione da sito a sito al gateway di rete locale demo 2. Quindi, è qualcosa che ho configurato, giusto? Quindi, ciò consente alla mia rete virtuale uno di connettersi alla rete virtuale due che si trovano attraverso il sito. Quindi, questo è esattamente quello che abbiamo fatto.

Ti mostrerò rapidamente il NCache applicazione che qui non cambia nulla. Devi solo cambiare il nome della cache e quindi dovresti avere gli indirizzi IP per connetterti ai server di memorizzazione nella cache che ho come parte dello stack. Quindi, V-net per memorizzare nella cache e userò la stessa applicazione a cui ora connettermi, devo solo pubblicarlo ancora una volta e notare che lo pubblico ancora nel gruppo di risorse demo uno. Considerando che le nostre macchine virtuali sono nel gruppo di risorse demo due. E questa è la VM 3, proprio qui, dove abbiamo due server di memorizzazione nella cache. Quindi, lo pubblicherò ancora una volta mantenendo una connessione da sito a sito già configurata. Pubblicherò solo questa e la stessa applicazione ora passerà attraverso la rete, attraverso il sito dalla rete virtuale 1 alla rete virtuale 2 e sarei in grado di connettersi a questo. Quindi, aspetterò solo che venga pubblicato e poi tornerò qui e ti mostrerò il pezzo di networking ancora una volta.

Quindi, ciò di cui hai veramente bisogno è la stessa configurazione per le macchine virtuali, mantenere la stessa rete virtuale qui, la stessa sottorete, generare il VMS, installare NCache su di essi, disabilitare il firewall, configurare il gruppo di sicurezza di rete in modo tale NCache le porte sono aperte e quindi è necessaria una connessione da sito a sito tra le applicazioni come servizi a cui si connettono NCache servizio. Quindi, se hai già una rete virtuale a cui sono collegati i tuoi servizi app, devi solo assicurarti che la rete virtuale 1 sia ora in grado di parlare con la rete virtuale 2 e quindi ci sia un sito incrociato e questo è esattamente quello che ho fatto anche in Microsoft Azure. Quindi, l'editoria ha avuto successo. Penso che fosse questo. Mi permetta di chiuderlo e mi permetta di inserire un elemento, va bene? E vediamo se un elemento è stato aggiunto, ecco fatto. Quindi, ora l'elemento è stato aggiunto. Quindi, ora sta parlando attraverso il sito, da un sito all'altro e quindi se ottengo questo elemento verrebbe semplicemente recuperato. Se lo elimino, questo elemento andrebbe via dalla mia demo VM 3, non ci sono elementi e, allo stesso modo, simulerò semplicemente un test di carico in cui inizierò a utilizzare lo stesso ambiente ma sto solo simulando alcune attività su esso.

Quindi, ora il mio sito uno, i servizi dell'app stanno parlando con il servizio cache del sito 2. Stanno attraversando il sito. Non è uno scenario consigliato perché esiste una replica WAN o una latenza WAN che potrebbe farne parte. Quindi, ti consigliamo di mantenere tutto nello stesso sito, ma è possibile che ci sia uno scenario in cui la tua funzionalità basata su sessioni multisito, ad esempio, basata sulla funzionalità dell'applicazione banner di NCache. Potrebbero essere le applicazioni locali che parlano con Azure o le applicazioni Azure che parlano con una premessa viceversa. Quindi, questi sono i requisiti e anche il nostro test di carico è ora completo, quindi è stato eseguito con successo.

Quindi, questo copre la nostra distribuzione di Azure.

Opzioni di memorizzazione nella cache distribuita per .NET

Alcune cose che vorrei menzionare a questo punto che e c'è a Redis anche il confronto.

opzioni di cache distribuita

Parliamo di Azzurro. Quindi, ne parleremo sicuramente Redis. Quindi, è disponibile sul nostro sito web. NCache è 100% .NET. È sviluppato in c-sharp. È completamente supportato per.NET e java. In confronto, Redis dietro le quinte è su Linux, non hai il controllo sul VMS. In NCache hai il pieno controllo sul VMS. puoi eseguire il codice lato server NCache così come la versione Microsoft di una versione Windows di Redis non è che tu sappia stabile. È la versione Linux che viene utilizzata dietro le quinte e quindi fornita come modello di servizio. E poi, NCache può essere utilizzato anche su Docker. Se hai intenzione di usare NCache sui contenitori Dockers lato server, potresti usarlo.

E poi, parlerò anche di alcuni dettagli per quanto riguarda le opzioni di distribuzione. Devi solo installare NCache parte del server, ottieni una versione di Azure dalla nostra parte. È una versione solo per server e quindi sono necessari i pacchetti NuGet per equipaggiare le tue applicazioni NCache ed è qualcosa che puoi anche ottenere dal nostro team di supporto o vendita. Quindi, questo è qualcosa che non è disponibile pubblicamente. È intenzionale, ma devi solo richiedercelo e quindi ti forniremo la versione per Azure e i pacchetti NuGet, quindi è solo il pezzo di rete di cui hai bisogno per la configurazione di un singolo sito o di più siti. In genere, si consiglia un sito singolo e, in tal caso, è necessaria una comunicazione da punto a sito e in più siti è necessaria una comunicazione da sito a sito.

Quindi, questo completa la nostra presentazione.

Cosa fare dopo?

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