Usar NCache en Microsoft Azure Service Fabric

Hola y bienvenidos a otra presentación de NCache. Hoy vamos a hablar de cómo podemos desplegar NCache en un entorno de Service Fabric. Hay mucho que cubrir, así que comencemos.

NCache Despliegue

Comencemos con una descripción general de lo que estamos tratando de lograr. Entonces, aquí tenemos una vista panorámica de una aplicación típica de Service Fabric implementada en Azure.

ncache-implementación-azul

Tenemos un clúster de Service Fabric que tiene un equilibrador de carga de Azure. Dentro de la aplicación Service Fabric, tenemos una serie de servicios que podrían estar escritos en diferentes idiomas. Estos servicios normalmente se implementan como servicios en contenedores. Ahora, en una aplicación empresarial, el almacenamiento en caché distribuido es importante para permitir un alto rendimiento de lectura y ahí es donde NCache entra en juego.

NCache se puede implementar dentro de la aplicación Service Fabric como un servicio en contenedores. NCache servidor se ejecuta dentro de los contenedores en los múltiples nodos del conjunto de escalado de máquinas virtuales, pueden comunicarse entre sí y formar una memoria caché en clúster. Salvar la brecha entre los NCache clientes y los servidores, tenemos el Servicio de descubrimiento de caché, que se utiliza para obtener la información de la dirección IP en tiempo real del NCache servidores y proporcionar esa información al NCache clientela. Con esta información, el NCache los clientes pueden crear identificadores de caché, con los que pueden comenzar a realizar la gestión de caché y las operaciones CRUD en el NCache Caché en clúster.

Entonces, los siguientes son los parámetros principales de la demostración que vamos a realizar hoy.

detalles del entorno de demostración

El NCache los servidores que se ejecutan dentro de los contenedores de Windows utilizarán la imagen de Docker con el nombre de 'alachisoft/ncache:más reciente'. Esto contiene el NCache Enterprise, Con un .NET framework instalación. Empezaremos con 2 NCache servidores, que se unen para formar una caché en clúster con una partición de topología de réplica. Los dos NCache Las aplicaciones cliente que tenemos están escritas en .NET Core y Java y realizarán operaciones CRUD en el NCache servidores.

Crear clúster de Service Fabric

Entonces, para comenzar, lo primero que haremos será crear una infraestructura de Service Fabric en Azure. Puedo pasar a la ventana de mi navegador, donde ya he abierto mi Azure Portal.

portal azul

He creado un grupo de recursos con el nombre de 'NCacheServiceFabric' y esto, en este momento contiene solo un único recurso de 'Almacén de claves'. Este recurso del almacén de claves contiene el certificado que se usará con el clúster de Service Fabric. Al pasar a Visual Studio 2019, tengo una plantilla ARM abierta y he introducido configuraciones para permitir el modo de configuración abierta de Service Fabric.

estudio visual

Hablaremos más sobre el modo de configuración abierta de Service Fabric y por qué lo usamos después de implementar la infraestructura. Entonces, para comenzar con la implementación, puedo ir a 'Solution Explorer' y en mi proyecto de grupo de recursos de Azure, puedo hacer clic derecho, ir a implementar y he enumerado el grupo de recursos.

estudio-visual2

Esto abrirá una ventana de implementación. Puedo hacer clic en el botón 'Implementar' y comenzará la implementación.

botón de despliegue

Esto tomará algún tiempo, así que voy a pausar el video aquí. Nuestra plantilla se ha implementado con éxito y para confirmar esto podemos volver a nuestro portal de Azure. Si actualizo la página, verán los cambios y aquí lo hacemos. Entonces, ahora nuestro clúster de Service Fabric y todos los recursos dependientes asociados se han creado correctamente. Para empezar, lo primero de lo que voy a hablar es del modo de configuración abierta, que mencioné antes.

Este artículo básicamente repasa el modo de configuración abierta y por qué se usa. Para nuestros propósitos, el modo de configuración abierta permite la NCache servidores que se ejecutan dentro de los contenedores para poder comunicarse entre múltiples hosts y unirse para formar un caché en clúster y para ver cómo se hace esto, podemos ir al portal de Azure y lo primero que miraré es el Virtual Red.

red virtual

De acuerdo, ahora tenemos varios nodos del conjunto de escalado de máquinas virtuales, pero si observa detenidamente, cada uno de los nodos tiene varias direcciones IP asignadas. La primera dirección IP es la dirección principal del host. Sin embargo, las otras direcciones IP que se adjuntan al nodo forman el grupo de direcciones IP secundarias y, con el modo de configuración abierto de Service Fabric, estas direcciones IP se asignarán a los contenedores en los que el NCache los servidores estarán funcionando. Con las direcciones IP asignadas desde este grupo secundario, los contenedores en varios hosts pueden comunicarse entre sí sin problemas para crear un clúster de caché en Service Fabric.

La otra cosa que quiero ver en los recursos es el balanceador de carga y si llego a la 'Configuración de IP de frontend', la regla que realmente me interesa es la 'Regla 10' y esto tiene que ver con el puerto 8251, que será utilizado por el NCache Web Manager, de la que hablaremos más adelante en esta presentación. Pero lo importante a tener en cuenta es que con el NCache Web Manager, vamos a utilizar una persistencia fija como se puede ver en los campos de 'persistencia de sesión' que se muestran aquí, con un valor de 'IP de cliente'.

nc-web-manager

Con esto, si hay múltiples instancias de NCache Al ejecutar Web Manager, podremos tener una experiencia de usuario consistente entre el navegador y el servicio final. Ahora que analizamos la infraestructura y la implementamos correctamente, vamos a pasar a la implementación de la aplicación Service Fabric y, para eso, volveremos a Visual Studio y tenemos varios archivos ServiceManifest, correspondientes a servicios de la aplicación. tenemos el NCache servicio, el NCache El servicio de Web Manager, el servicio de descubrimiento y el servicio de contenedor de clientes, que alojarán nuestras aplicaciones de clientes. Entraremos en los detalles de cada uno de estos servicios, después de haber implementado la aplicación. Para hacerlo, regresaremos a un explorador de soluciones y aquí simplemente haremos clic con el botón derecho en el proyecto y el nombre de la aplicación de Service Fabric y bajaremos a 'Publicar'.

explorador de la solución

Esto abrirá nuestra ventana de implementación y, como puede ver, ya ha seleccionado el punto final de conexión del clúster de Service Fabric. Todo lo que tenemos que hacer en este punto es hacer clic en 'Publicar' y el proceso comenzará.

ventana de implementación

Esto tomará algún tiempo, así que voy a pausar mi video aquí. La aplicación se implementó correctamente y estamos listos en la ventana "Service Fabric Explorer". Como puede ver, el DNS del clúster se proporciona aquí.

servicio-fabric-explorer

Y si voy y veo el 'TABLERO', tengo cinco nodos funcionando con 1 aplicación y 4 servicios. Los 4 servicios se pueden ver en el panel izquierdo. El primer servicio que quiero ver es, el NCache Servicio. Esto representa el NCache servidores que se ejecutarán dentro de los contenedores y que formarán la memoria caché en clúster. Entonces tengo el NCache Servicio Web Manager, esto representa una GUI fácil de usar para la creación y supervisión de un clúster de caché. Entonces tengo el NCache Discovery Service, que será el encargado de adquirir las direcciones IP de los NCache servidores y proporcionarlos a las aplicaciones cliente. Hablando de las aplicaciones de cliente, tenemos el servicio de contenedor de cliente que representa un contenedor que alberga dos aplicaciones diferentes, una escrita en .NET Core y el otro en Java. Ahora voy a entrar en los detalles de cada uno de estos servicios a su vez.

NCache Servicio de Cluster

El primero que quiero ver es el NCache Cluster Service y para eso volveré a Visual Studio. Este es el ServiceManifest para el NCache Cluster Service, como puede ver, es un servicio de contenedor, que usa la imagen 'alachisoft/ncache".

estudio-visual3

Hay un par de terminales que registré con el servicio de nombres y estos son los siguientes: tenemos el terminal de 'gestión de caché', que expone el puerto 8250, en el que los servidores de caché escucharán las solicitudes de conexión. Tenemos el punto final 'cache-client' que es, exponer el puerto 9800. Todos los Operaciones CRUD se realizan a través de este puerto. Además de estos, también tenemos los puntos finales 'bridge-management' y 'bridge-client'. Para esta demostración actual, solo nos concentraremos en los dos primeros puntos finales que se muestran aquí.

estudio-visual4

NCache Servicio de Administracion

El segundo servicio que analizamos es el NCache Servicio de Administracion, que representa la GUI de Web Manager. Volviendo a Visual Studio, si llego al ServiceManifest para el NCache Web Manager Service, vemos que también es un servicio contenedor que utiliza la misma imagen que el NCache service y el punto final que registramos con el servicio de nombres es 'administración web' y que expone el puerto 8251.

estudio-visual5

NCache Servicio de descubrimiento

El tercer Servicio es, por supuesto, el NCache Servicio de descubrimiento y el ServiceManifest para eso se proporciona aquí.

tipo-descubrimiento-nc

El NCache Discovery Service es un ASP confiable y sin estado.NET Core API web. El cual consulta con el servicio de naming y adquiere los Endpoints que fueron registrados por el NCache servicio que aquí se brinda. Con los Dispositivos Periféricos recibidos del servicio de nombres, el Servicio de Descubrimiento puede proporcionar esa información al NCache clientes.

Servicios de aplicaciones de clientes

El cuarto servicio que tenemos en nuestra aplicación, es el Servicios de aplicaciones de cliente y para eso también tenemos abiertos estos ServiceManifest y las Aplicaciones Cliente, las .NET Core y Java están alojados dentro del mismo contenedor. cuya imagen es 'ncache/aplicaciones:sfclient'.

cliente sf

Lo importante a tener en cuenta aquí es que, con el NCache servicio y servicio al cliente, estamos usando 'configuración abierta'. Él NCache El servicio tiene el modo de configuración abierta, para permitir que los contenedores que se ejecutan en diferentes hosts se comuniquen entre sí y, por lo tanto, formen el clúster de caché mientras que en el contenedor del cliente tenemos un NCache cliente e instalación que utilizará la GUI de Web Manager para adquirir los contadores del lado del cliente y poder monitorear el comportamiento del cliente desde la GUI.

Crear clúster de caché

La siguiente parte que debe hacer es la creación real del clúster de caché y, para eso, volvamos a nuestra ventana de Service Fabric Explorer. Lo primero que voy a hacer es confirmar que mi descubrimiento de servicios está funcionando. Para eso, daré el URI, que está compuesto por el DNS agrupado y el puerto en el que escucha Discovery Service, que es 55100.

enlace de google

Si hago clic en Intro, veo que las direcciones IP y los puertos asociados para cada punto final que fueron registrados por el NCache servicio, se han presentado con éxito. Si observa detenidamente, las direcciones IP son las mismas que proporcionó la red virtual a estos nodos de Service Fabric, como parte del grupo de IP secundario.

dirección IP

Ahora que tenemos el descubrimiento de servicios ejecutándose, vayamos y lleguemos a la NCache Administrador web. Nuevamente, daremos el DNS agrupado, seguido del puerto en el que está escuchando, que es 8251 y esto nos lleva a la ventana principal de la GUI de Web Manager.

administrador-web-gui

Ahora voy a demostrar lo fácil que es crear un caché en clúster y para eso todo lo que tengo que hacer es hacer clic en el botón 'Nuevo' que se muestra aquí.

boton nuevo

Comenzaré dando el nombre del caché.

nombre-caché

Mantenga todo lo demás por defecto. Usaré la partición de topología de Réplica con modo asíncrono.

asincrónico

Ahora, en este punto, voy a dar las direcciones IP de estos servidores que formarán mi caché en clúster. Entonces, primero voy a dar la primera IP y la segunda 11. Con estos dos agregados, podemos pasar a la siguiente fase.

dirección-ip2

Mantenga todo lo demás predeterminado y al final simplemente hacemos clic en 'Finalizar'.

acabado

Se creará el caché, como se puede ver en la ventana principal.

caché-creado

Ahora que está creado, es hora de iniciarlo y para eso podemos hacer clic en la casilla de verificación junto al nombre del caché y luego presionar el botón 'Iniciar'.

comienzo

Ahora que se ha iniciado el caché, hay un par de cosas que podemos ver ahora. Lo primero que podemos hacer es mirar la herramienta 'Monitor' haciendo clic en el botón 'Monitor', mientras se presiona la casilla de verificación.

monitorear

Esto abrirá otra ventana y podremos ver los tableros que componen nuestra herramienta de monitoreo. Lo primero que puede ver aquí es 'Cluster Health'. Vemos que tenemos 2 servidores, con las Particiones Activa y Réplica, están completamente conectados, como se puede ver en el color verde.

caché de clúster

Aquí también se muestran las cuatro particiones diferentes en un formato gráfico.

tablero del servidor

Hay un par de contadores que podemos ver en este momento, incluidos 'Solicitudes/segundo', 'Adiciones', 'Obtención', 'Actualizaciones', 'Eliminación', etc. El 'Recuento' es 0, junto con todos los demás La operación CRUD se contrarresta porque aún no hay procesos de cliente conectados y los procesos de cliente, una vez conectados, se pueden ver desde el panel de 'Proceso de cliente', que mostrará la 'IP de cliente', el 'ID de proceso' y a qué servidor está conectado. . Este es el 'Panel de control del servidor'. El otro panel que está disponible de forma predeterminada es el 'Panel de clientes' y aquí podemos ver los diferentes contadores que provienen de los clientes y poder diagnosticar y monitorear el comportamiento del cliente.

panel de control del cliente

El tercer panel que viene de forma predeterminada es el "Panel de informes", que muestra una vista general de los contadores de rendimiento del lado del servidor y del lado del cliente.

panel de informes

Ejecutar aplicaciones cliente

Para ver la información en acción, ahora iniciaremos las aplicaciones cliente. Entonces, ahora podemos ejecutar nuestras aplicaciones cliente. Volviendo a la ventana del monitor, aquí tengo el PowerShell abierto dentro del contenedor del cliente y ya estoy dentro de la carpeta 'nettester', que contiene los archivos binarios para el .NET Core aplicación. Ejecutaré un comando por lotes que toma como parámetros el nombre de la caché, que es 'democache', así como el URI del Servicio de detección de caché, como se muestra aquí.

cmd

Está formado por el DNS agrupado, así como por el puerto del Servicio de descubrimiento de caché. Ahora, si presiono 'Enter', el caché se inicializará desde el lado del cliente y veremos alguna actividad en la ventana de monitoreo. Entonces, sin más preámbulos, aquí vemos que el cliente logró obtener las direcciones IP y el identificador de caché se inicializó y esto se puede confirmar desde el monitor de estado del clúster, que muestra que la cantidad de clientes aumentó en uno.

ventana de monitoreo

También comenzamos a ver algo de actividad en los diferentes tableros asociados con las operaciones CRUD. Tales como 'Adiciones', 'Obtención', Actualizaciones' y 'Eliminaciones'. Además de la actividad general que se muestra con las 'Solicitudes/seg'. Vemos que el 'Recuento' ha comenzado a aumentar a medida que el Cliente ha comenzado a colocar elementos en el caché y vemos en el 'Proceso del Cliente', nuevas entradas relacionadas con el proceso del cliente. Vemos la 'IP del cliente' y el 'ID del proceso' y vemos que el cliente está conectado a ambos servidores. Esta es una característica específica de la partición y la partición de la topología de réplica conocida como reconocimiento de clústeres. Al pasar al 'Panel de control del cliente', también vemos algo de actividad aquí y podemos ver que el administrador web ha podido obtener los contadores del lado del cliente.

cliente-dashboard2

El 'Panel de informes' ofrece una vista general. Vemos que la instancia por nodo de los contadores de rendimiento se muestra aquí en los servidores y también vemos la actividad en el lado 'Informe del cliente' que también proviene del lado del cliente.

informe-panel2

Ahora que hemos podido conectarnos con éxito desde el .NET Core Cliente, ahora también intentaremos conectarnos desde el Cliente Java. Entonces, al igual que con el .NET Core Aplicación, tenemos un archivo por lotes que ejecuta la aplicación Java aquí. Nuevamente, toma los mismos parámetros, a saber, el nombre del caché y el URI del Servicio de descubrimiento de caché.

cmd2

Ahora ejecutaré el programa y miraré los cambios en la ventana de monitoreo. Entonces, presiono 'Enter' y la aplicación se ha iniciado y se ha inicializado con éxito y ahora vemos que ahora hay 2 clientes conectados a cada uno de estos servidores.

ventana de monitoreo2

Viniendo aquí, veamos lo que muestra la actividad. En primer lugar, echemos un vistazo al 'Conde'. El 'Recuento' ha comenzado a aumentar, porque la cantidad de clientes ha aumentado y ambos están volcando datos en el caché. Las solicitudes también han comenzado a aumentar, la tasa de ellas y aquí en el 'Proceso del cliente', vemos que hay 2 clientes que se muestran aquí. Dado que se ejecutan desde el mismo contenedor, las direcciones IP de los clientes son las mismas, pero los ID de proceso son diferentes y uno proviene de .NET Core y el otro de Java. Si llego a la ventana principal, otra ventana que quiero mostrar es la ventana 'Estadísticas'. ¿Cuál da otra visión de lo que está pasando? Para ello, haré clic en el botón de puntos suspensivos y pasaré a la pestaña "Mostrar estadísticas".

statistics

También vemos aquí los contadores de rendimiento por nodo en esta ventana. Las direcciones IP se muestran aquí. Por lo tanto, hemos tenido éxito al conectar a nuestros clientes con nuestros servidores, todos dentro del mismo clúster de Service Fabric.

estadísticas2

Piel escamosa NCache Médico

En esta última parte de la demostración, demostraremos la adición de nodos en tiempo de ejecución a la memoria caché en clúster y veremos que las adiciones no tienen ningún impacto en el rendimiento de las aplicaciones cliente. Para eso, regresemos a nuestra ventana principal en el 'Administrador web'. Para agregar un tercer nodo, todo lo que tenemos que hacer es hacer clic en el enlace 'Ver detalles' como se muestra aquí.

caché de clúster2

Esto nos llevará a otra ventana y si llegamos a la sección Nodos del servidor, para agregar un tercer Nodo, todo lo que tenemos que hacer es hacer clic en el botón 'Agregar' que se muestra aquí.

botón agregar

Proporcione la dirección del tercer servidor. Voy a hacer eso aquí y le daré el uno con 17 y el nodo se agregó con éxito.

nodo_agregado

Ahora que se agregó, tenemos que iniciarlo y para eso simplemente hacemos clic en la casilla de verificación junto a la dirección IP y hacemos clic en 'Iniciar' y se ha agregado con éxito.

start2

Volviendo a la ventana principal, si actualizamos este botón, ahora vemos que hay 3 servidores y ahora veamos qué sucede en la ventana de monitoreo. Igual que antes, hacemos clic en la casilla de verificación aquí y hacemos clic en la pestaña 'Monitor' y ahora vemos que hay 3 servidores que se muestran en el tablero 'Cluster Health' y están completamente conectados.

servidor-dashboard2

Y en el 'Proceso del cliente', tenemos 3 servidores diferentes que proporcionan la solicitud de los 2 clientes.

cliente-proceso

Y si observa la sección 'Recuento', el 'Recuento' se ha equilibrado entre los 3 nodos.

sección de conteo

Esto muestra que la estrategia de equilibrio de carga empleada por la partición del clúster de réplica está en vigor.

Esto nos lleva al final de nuestra presentación. Hemos visto cómo podemos implementar NCache como un servicio en contenedores dentro de una aplicación de Service Fabric. Si tiene alguna pregunta sobre NCache o la presentación que acaba de presenciar, no dude en ponerse en contacto con nosotros en support@alachisoft.com. Gracias.

© Copyright Alachisoft 2002 - Todos los derechos reservados. NCache es una marca registrada de Diyatech Corp.