Usar NCache en Red Hat OpenShift

Clúster de Kubernetes, Docker y Linux

Red Hat Enterprise Linux. Puede hacer esto tanto para Java como para .NET Core aplicaciones.

OpenShift es una plataforma de aplicaciones de contenedores de código abierto de Red Hat basada en el orquestador de contenedores de Kubernetes para el desarrollo y la implementación de aplicaciones empresariales.

Si su aplicación es Java y/o .NET Core se ejecuta en Red Hat Enterprise Linux y OpenShift y desea utilizar NCache para mejorar su rendimiento y escalabilidad para cargas máximas de transacciones, puede estar seguro de que NCache es totalmente compatible con este entorno.

Mire este video para ver lo fácil que es implementar NCache como parte de su clúster de Red Hat OpenShift Kubernetes como una implementación de Docker.

Hoy, demostraré cómo puedes usar NCache en la plataforma de contenedores Red Hat OpenShift. Como sabe, OpenShift es una plataforma de contenedores que ofrece Red Hat y se basa en contenedores de aplicaciones que funcionan con Docker, mientras que Kubernetes proporciona los servicios de orquestación y administración.

Se basa en Red Hat Enterprise Linux y hoy les mostraré los detalles paso a paso para la implementación y el uso de NCache en esta plataforma. Entonces, comencemos rápidamente con esto.

NCache Despliegue

Antes que nada, repasemos NCache implementación en la plataforma de contenedores Red Hat OpenShift. Aquí hay un despliegue típico de NCache en la plataforma de contenedores Red Hat OpenShift. Estoy mostrando un solo clúster de Kubernetes con diferentes implementaciones de aplicaciones, así como NCache despliegue de clústeres.

ncache-despliegue-redhat-openshift
NCache Implementación en Red Hat OpenShift

Tenemos una aplicación web de Java, que nuevamente es una imagen de Docker implementada en diferentes pods. Tengo un servicio web Java nuevamente mostrado por diferentes Pods. Estas aplicaciones Java utilizan el cliente Java de NCache, mientras que tengo una implementación separada para ASP.NET Core aplicaciones, nuevamente usando una imagen Docker en Linux pero esto está usando el .NET Core cliente para NCache comunicación. En lo que respecta a la implementación del lado del servidor, está utilizando Imagen de Docker basada en Linux para NCache, que está disponible en nuestro sitio web y puede usarlo en Red Hat Enterprise Linux como se muestra aquí y crea un clúster de caché usando diferentes Docker NCache Imágenes puestas a disposición en esta plataforma y luego tengo esto Servicio de descubrimiento de caché y NCache Puerta de enlace de monitoreo remoto.

Entonces, este Servicio de descubrimiento es un servicio sin cabeza dentro de Kubernetes, que puede crear dentro de OpenShift y esto permite que todas las aplicaciones cliente que conoce simplemente se conecten a sí mismas y luego esto administraría el enrutamiento y el descubrimiento de todos los recursos que son parte del clúster de caché. Por ejemplo, no necesito conocer las direcciones IP ni ninguno de los detalles sobre el Pod 10, 11 o 12, simplemente me conecto a este Servicio de detección, que es un Servicio con nombre y que a su vez me enrutaría a todos los recursos dentro NCache clúster de caché. De manera similar, una puerta de enlace de monitoreo remoto también se conecta a este servicio de detección para permitir que cualquier administrador del sistema realice operaciones de monitoreo y administración fuera de este clúster de Kubernetes. . Entonces, esta es una implementación típica en la que tendríamos diferentes tipos de aplicaciones que se conectan a NCache en un único clúster de Kubernetes.

Aquí hay detalles sobre la configuración de nuestro entorno de demostración.

detalles del entorno de demostración
Detalles del entorno de demostración

Estoy usando 2 NCache servidores para formular un clúster y usaré 2 aplicaciones cliente para conectarme a este caché. El lado del servidor NCache La imagen de Docker se representa con esta etiqueta 'enterprise-server-linux-5.0.1'.

demo-entorno-detalles2

Esto está disponible en nuestro sitio web, así como en Centro acoplable. Es nuestra última versión 5.0 SP1 .NET Core versión, para que pueda usarlo tanto en Windows como en Linux, pero para esta demostración usaremos Linux. La aplicación Java está utilizando el cliente Java de NCache y .NET Core la aplicación va a usar .NET Core cliente de NCache y estoy usando Operaciones CRUD para representar el caso de uso de almacenamiento en caché de datos de la aplicación dentro de estas aplicaciones.

Despliegue NCache Servidores

El primer paso es implementar NCache Servidores en OpenShift. Entonces, comencemos rápidamente con eso. Inicié sesión en la consola web de Red Hat OpenShift y lo primero que debemos hacer es crear un proyecto.

crear_proyecto

Entonces, vamos a crear un proyecto vacío. Vamos a nombrarlo 'ncachedemo' y elija 'Crear' y luego crearemos un proyecto vacío.

crear_proyecto2

No hay despliegues en este punto en esto. Por lo tanto, debemos comenzar a implementar NCache servidores y para eso puedo navegar por el catálogo o puedo usar un archivo YAML preconfigurado que debe tener para casos de uso de producción y puede importar ese archivo YAML. Entonces, hagamos eso y ya tengo un archivo YAML que usaría para NCache Implementación del lado del servidor. Aquí está. Entonces, es el tipo de implementación correcto, el 'tipo' es 'Implementación', 'nombre' se elige para ser 'ncache'. Usaré dos réplicas y luego tengo algunos detalles de la imagen del contenedor aquí. Entonces, lo principal que quiero resaltar es la imagen de Docker, que estoy usando aquí.

yaml

Es NCache Enterprise Servidor Linux Docker Imagen, que está disponible en Docker Hub y también puede obtener una referencia de esto en nuestro Página de descarga así como. Entonces, si vas a NCache la página de descarga, debería poder ver esta imagen aquí. La imagen de Linux del servidor de caché que está disponible en Docker Hub. Si hago clic en esto, esto me llevará directamente a Centro acoplable y de ahí es de donde puedes extraer esta imagen. Entonces, hay un comando de extracción general 'docker pull alachisoft/ncache' y la etiqueta que estamos buscando específicamente es Enterprise Server Linux 5.0.1, y esa es nuestra principal .NET Core Versión de Linux que usaremos para esta demostración.

docker_hub

Lo siguiente es la cantidad de réplicas, eso define la cantidad de puertos, habrá 2 y estos son detalles de todos los puertos que estoy usando para mi NCache contenedores, que necesito estar abiertos como mínimo.

yaml2

Son puertos de gestión y conexión de clientes para NCache comunicación. Entonces, tengo este YAML, que continuaría e importaría y luego presionaría 'Crear' y eso automáticamente sabría que comenzaría mi implementación de NCache servidores.

redhat2

Como ya puedes ver, dentro de Deployments tengo 'ncache' implementación y tengo '2 pods' que se están creando y puedo ver más el estado de estos Pods, ya sea que se estén ejecutando o no, haciendo clic en los 'Pods' y luego debería mostrarme el estado actual que los muestra corriendo y ellos también están listos.

redhat3

Entonces, hay dos despliegues de NCache que se ponen a disposición. Por cierto, todo esto se puede hacer a través de la consola web como se muestra en este momento o también puede ejecutar las herramientas de línea de comandos para ver más el estado de sus Pods en ejecución y para eso necesita ejecutar el comando 'oc obtener vainas' y eso enumerará todos los Pods que se implementan aquí y también puede hacer coincidir los nombres 'r4f' y 'wx7' son los mismos Pods que acabamos de crear.

herramienta de línea de comandos

Si además quiero ver las direcciones IP, también puedo usar 'obtener vainas -o anchas' switch y eso también me daría más detalles de las IP de estos Pods. Entonces, tenemos .206 y .236 como dos Pods que se ejecutan con NCache Imagen del servidor implementada en ellos.

línea de comandos-herramienta2

Servicio de descubrimiento de caché

Crearemos un servicio de descubrimiento de caché que nos ayudará a enrutar todos NCache comunicación a Pods subyacentes y esto también se discutió como parte de nuestra implementación, donde teníamos un servicio sin cabeza para administrar todas las comunicaciones de cliente a servidor para NCache y también usaremos esto para las opciones de administración y monitoreo para este clúster de caché y también fuera del clúster de Kubernetes que tenemos.

Entonces, veamos cómo crear este servicio de descubrimiento de caché. Ahora para crear el servicio de descubrimiento de caché, nuevamente necesitamos un archivo YAML, que tengo aquí y si tenemos que revisar el contenido de este servicio, es del tipo 'Servicio', lo he llamado 'cacheserver'. Puedes inventarte cualquier nombre. SessionAffinity debe establecerse en 'ClientIP'. Esto es para garantizar que las operaciones de administración y monitoreo fuera del clúster de Kubernetes estén adheridas a uno de los Pods en un momento dado. Entonces, ese es un paso obligatorio, que debe configurar y luego simplemente tiene una asignación de este servicio con nombre a los pods subyacentes. Por ejemplo, tenemos el puerto 8250 asignado desde el servicio 2 Pods y la implementación que elegí es NCache así que esto cubriría todo NCache Pods que ya hemos implementado y luego tenemos 8251 y luego el puerto 9800. Entonces, los primeros dos puertos son para opciones de administración y monitoreo y el puerto 9800 es para la comunicación de cliente a servidor entre las aplicaciones cliente que se conectan a NCache.

yaml3

Bien, ahora importemos este YAML, a través de nuestro asistente y luego presionaría 'Agregar', presionaría 'Crear' y esto crearía automáticamente mi servicio de descubrimiento de caché. Como puede ver, el 'POD SELECTOR' es 'ncache'. Entonces, esto es para NCache Pods y Service to Port Mapping sugieren que tenemos 8250, 8251 y 9800 correctamente mapeados entre nuestro servicio de descubrimiento de caché y todos NCache vainas Entonces, eso completa la configuración del servicio de descubrimiento de caché aquí.

crear-caché-descubrimiento
Crear servicio de descubrimiento de caché

Crear puerta de enlace de gestión

El siguiente paso es crear una puerta de enlace de administración y monitoreo para NCache despliegues y que nos permitiría administrar y monitorear NCache las implementaciones fuera de este clúster de Kubernetes también y la forma en que funcionaría es que cualquier operación de administración realizada se enrutaría a través de esta puerta de enlace a este servicio de descubrimiento de caché y eso, a su vez, lo ayudaría a administrar y monitorear todos los Pods subyacentes también.

Entonces, veamos cómo configurar rápidamente esta puerta de enlace. Ahora, para crear la puerta de enlace de administración, debo ir a 'Redes' y dentro tenemos 'Rutas'.

crear-administración-puerta de enlace
Crear puerta de enlace de gestión

Entonces, seguiré adelante y crearé nuestra ruta a este servicio sin cabeza. Entonces, si hago clic en él, puede nombrarlo cualquier cosa y, en función de eso, solo necesita seleccionar el servicio y, en este caso, se debe seleccionar el servicio 'cacheserver' creado en el paso anterior. Simplemente enumeraría todos los servicios aquí y solo necesita proporcionar el puerto de destino para la administración y el monitoreo.

redhat4

En este punto, solo usaré 8251 y presionaré 'Crear' porque ese es el que me permitiría crear, ya sabes, administrar y monitorear NCache fuera de este clúster de Kubernetes también y esta es la ubicación desde donde puedo hacer clic y eso abriría automáticamente el NCache Acceso de administración web a uno de los pods dentro NCache implementación y, como puede ver, tengo .3.236 IP apareciendo.

caché en clúster

Estos son algunos cachés preconfigurados y si nota que este es uno de los pods dentro de mi implementación, donde me conecté. Entonces, puedo acceder completamente al Pod subyacente y puedo administrarlos. Una cosa que quiero mostrar aquí es el aspecto de afinidad de sesión, ese es un paso obligatorio. Esto es nuevamente para garantizar que si abre un Pod con fines de administración, debe estar pegajoso. Los comandos de administración tienen que estar adheridos a ese Pod a la derecha. Entonces, para eso, debe establecer este valor en 'ClientIP' y este es uno de los pasos obligatorios que debe configurar.

Habiendo pasado por esto, si vuelvo al portal de administración puedo ver claramente que estoy conectado a .236 y desde aquí puedo realizar todo tipo de operaciones de administración y monitoreo para NCache.

Crear clúster de caché

En este punto, la configuración de nuestro entorno OpenShift para NCache se completó y ahora podemos continuar y crear un clúster de caché a continuación. Bien, dentro de esta herramienta de administración, voy a hacer clic en 'Nuevo' y eso abrirá un asistente de creación de caché para mí.

crear-caché-cluster
Crear clúster de caché

Voy a nombrar mi caché, llamémoslo 'democache'. Mantendré todo predeterminado aquí, 'Partición de réplica' y proporcionaré la primera IP que se proporciona automáticamente y necesito la IP del segundo Pod que puedo copiar desde aquí y luego pegarlo aquí y luego elegir este clic en este signo más (+) y eso especificaría el segundo Pod. Nuevamente, mantenga todo predeterminado en esto. Los parámetros son los mismos y luego 'Iniciar este caché al finalizar' y elijo 'Finalizar' y eso continuaría y crearía mi clúster de caché. Entonces, con estos dos Pods, usando el NCache Herramienta de administración web, ahora puedo crear un clúster de caché y usar el Administrador web desde mi propio cuadro aquí. Si hago clic en los detalles aquí, también puedo ver algunos detalles más en lo que respecta a los aspectos de monitoreo y también puedo ver las estadísticas de este grupo de caché. Entonces, tan pronto como se carga, puede ver que hay diferentes parámetros. Podemos ver 'Cluster Health', que está completamente conectado y también podemos ver algunos otros gráficos aquí.

salud del clúster

No hay ningún cliente conectado en este punto, por lo que no veo ningún proceso de cliente ni ninguno de los clientes que se muestran en el estado del clúster, pero tan pronto como implementaría y ejecutaría mis aplicaciones de cliente, vería los procesos de cliente, una vez que conectar a NCache aquí abajo, así como en el otro lado también. Nuestro NCache El clúster de caché se crea y está listo para utilizarse.

Implementar y ejecutar aplicaciones cliente

El siguiente paso es implementar y ejecutar aplicaciones cliente en OpenShift, que usarán este clúster de caché. Nuevamente, voy a cargar el archivo YAML para la implementación del cliente y aquí lo tenemos, donde tenemos una etiqueta como 'multicliente' y nuevamente es una implementación separada.

yaml4

Tengo una imagen de Docker que tendría un .NET Core así como la aplicación Java que se ejecuta dentro de este contenedor. Por lo tanto, he usado un contenedor para alojar dos aplicaciones diferentes, pero aquí también puede tener contenedores separados. Entonces, dentro de mi mismo proyecto, si hago clic aquí, tengo NCache con dos Pods y si hago clic en 'Agregar' e importo mi implementación de cliente YAML, puedo continuar y crear esto y esto crearía automáticamente un contenedor separado, una implementación separada para mis aplicaciones de cliente. Si vuelvo a los proyectos y ahora tenemos dos implementaciones diferentes, tenemos 'multicliente' con 1 Pod y tenemos 'ncache' con 2 Pods, que hicimos como parte de NCache configuración del lado del servidor.

redhat5

Entonces, si voy a los Pods, nuevamente tengo el contenedor de estado creando y luego, si ejecuto este comando nuevamente, esto me daría la lista de todos los Pods junto con sus direcciones IP. Anteriormente teníamos 236 y 206 y ahora también añadimos 47, correcto. Entonces, ese es el módulo de implementación del cliente y aquí está la identificación de esto. Ahora, si veo rápidamente si hay aplicaciones ejecutándose actualmente en esta implementación en este pod, si ejecuto este comando muy rápido, todo lo que vería es el NCache Service Daemon, 'startup.sh' para este contenedor. Alachisoft.NCache.Daemon.dll comienza con NCache Proceso de Servicio y que tenemos un Proceso Web Manager.

cmd

Por lo tanto, no se está ejecutando ninguna aplicación de cliente en este punto desde este contenedor y esto es lo mismo que puede ver desde aquí donde no tenemos ningún cliente conectado. Entonces, sigamos adelante y ejecutemos una aplicación Java desde este cliente. Voy a ejecutar esto. Estoy ejecutando el nombre del caché que es 'democache', ese es el nombre para poder conectarme.

cmd2

No necesito ninguna dirección IP aquí, sino que necesito el servicio sin cabeza para el descubrimiento. Recuerde que creamos un servicio de descubrimiento, por lo que necesito volver a "servicios", obtener el nombre y el nombre era "servidor de caché" y tenía la asignación de puertos de este servicio a todos los pods subyacentes. Con NCache cliente, tenemos esta lógica integrada en la que se comunica con este servicio designado y desde ese servicio descubre automáticamente todos los pods subyacentes dentro de OpenShift Kubernetes Platform. Entonces, si especifico el nombre de este servicio, nuestro NCache el cliente es lo suficientemente inteligente y se conectaría automáticamente y formularía una configuración de cliente a servidor completamente conectada con NCache grupo. Entonces, esta aplicación ahora se está ejecutando y si restablezco el aspecto de monitoreo de esto, ahora puedo ver un clúster completamente conectado con un cliente agregado y ya puede ver la actividad del cliente que se muestra en adiciones/segundo y tenemos actividad dentro del consola también y podemos ver que las operaciones CRUD se están realizando en mi clúster de caché dentro de OpenShift.

Ahora, si observo los procesos del cliente, se muestran 47 IP, que están conectadas tanto a 236 como a 206. Entonces, con el servicio sin cabeza, el descubrimiento fue exitoso y pudo conectarse a todos los Pods subyacentes sin ningún problema. cuestiones.

tablero del servidor

Correcto, entonces y también puede ver que los aspectos de monitoreo y administración también funcionan absolutamente bien. Ahora, si ejecuto el mismo comando una vez más, muestro los procesos en ejecución dentro de la implementación de este cliente en este Pod. Entonces, si copio esto, ahora debería ver una aplicación Java usando NCache El cliente Java también se ejecuta como parte de esto. Entonces, aparte de NCache Service en Web Manager, ahora tenemos una aplicación Java ejecutándose que usa este 'democache' con el 'cacheserver' como parámetro del servidor para la conexión.

Entonces, así de simple es ejecutar una aplicación Java con NCache todo en Kubernetes utilizando OpenShift Platform.

El siguiente paso es ejecutar el .NET Core aplicación y para eso simplemente seguiría adelante y ejecutaría el .NET Core client, que es parte del mismo contenedor en el lado del cliente.

Entonces, los pasos son los mismos para mí y si ejecuto esto muy rápido, esto iniciaría nuestro .NET Core cliente para la conexión con NCache y nuevamente necesito 'democache' y 'cacheserver', que es el servicio de descubrimiento sin cabeza para la conexión a los Pods subyacentes. Entonces, el segundo cliente se ejecutaría y vería que los procesos del cliente aumentan allí donde vaya. Ahora tenemos un proceso de cliente separado conectado a NCache y si vuelvo aquí, tenemos 2 clientes conectados y tenemos todos los parámetros, todos los contadores que muestran actividad, que aumenta en su, ya sabes, capacidad correcta. Entonces, tenemos más Adiciones/segundo. Las recuperaciones/segundo también han aumentado.

servidor-dashboard2

Las actualizaciones/segundo han aumentado, a la derecha. Entonces, todos los valores aumentan con la carga recién agregada y puede ver el 'Panel de control del cliente', donde tenemos clientes que muestran toda la actividad.

panel de control del cliente

¿Entonces NCache La administración y el monitoreo funcionan absolutamente bien incluso para implementaciones de clientes, solo necesita abrir los puertos, como hicimos para el NCache servidores y aquí hay una vista de informe de los mismos, donde tenemos contadores del lado del servidor en el informe y luego tenemos los contadores del lado del cliente de nuestros pods de implementación del cliente.

panel de informes

Escalando NCache Médico

Lo siguiente que demostraré es 'Ampliar su NCache clúster de caché' en OpenShift Platform. Esto le ayudará a aumentar la capacidad de gestión de solicitudes en NCache y eso también en tiempo de ejecución.

Repasemos cómo hacer esto. Ahora, para aumentar la capacidad, agregue más pods a esta implementación. Voy a ir a 'Implementaciones'.

redhat6

Hay varias maneras de hacer esto. Como puede ver actualmente, tenemos 2 Pods para NCache. Entonces, para agregar otra instancia a esto, tengo una opción para 'Editar' el conteo aumentarlo a 3 y luego 'Guardar' esto y eso lo crearía automáticamente. Entonces, esa es la más fácil.

redhat7

Otra opción es que 'Edite' su implementación y le daría el archivo YAML y aumentaría el recuento de 'réplicas' que inicialmente configuramos en '2', lo aumentamos a 3 y luego lo recargamos y eso lo implementará automáticamente o solo guárdelo, simplemente seguiría adelante y lo haría.

redhat8

También puede usar la línea de comando, así que voy a usar esto por ahora y elegir 'Guardar' y eso debería ser suficiente para crear otro Pod usando la imagen del contenedor Docker que tengo y ahora debería ver otra réplica de este contenedor siendo creado y está funcionando completamente. Es muy rápido dentro de OpenShift y si ejecuto el 'oc obtener vainas' comando Debería poder ver otra dirección IP agregada, es 13.242. Entonces, tengo una implementación de cliente en NCache implementaciones de servidor Pod y luego, dentro de esa implementación, también he agregado 242. Entonces, mi OpenShift Pod está disponible, solo necesito volver a 'Administración' y luego agregarlo en mi clúster de caché también porque Web Manager está disponible. Entonces, solo necesito copiar esa dirección IP, elegir 'Agregar' y esto me permitirá agregar esa IP y elegir que se agregue en el caché, listo. Se agrega y luego, si hago 'clic derecho' y elijo 'Iniciar', esto se uniría al clúster de caché en tiempo de ejecución. No necesito interrumpir ninguna aplicación cliente, no necesito detener el caché en ejecución. Por lo tanto, mi clúster de caché en ejecución se unió a este nodo y ya comenzó a ver actividad porque las aplicaciones aún se ejecutaban, por lo que tengo copias de seguridad activas y creadas dentro NCache clúster y 242 está completamente unido al clúster de caché y participa en el manejo de solicitudes.

informe-panel2
Panel de informes

Por lo tanto, mi capacidad de manejo de solicitudes aumentó porque ahora tenemos 3 servidores que alojan el caché en OpenShift en lugar de 2. Está completamente conectado. Puede ver Solicitudes/seg, 242 se une a todas las operaciones y muestra actividad completa y si volvemos a los 'Procesos del cliente', estos también están conectados a 242 porque nuevamente está usando el servicio sin cabeza para el descubrimiento.

servidor-dashboard3

Entonces, independientemente de lo que agregue dentro de esa implementación, ese servicio coincidirá, ya conoce la ruta para eso. Entonces, tenemos todos estos servidores completamente conectados y funcionando absolutamente bien. Entonces, así de fácil es escalar su clúster de caché en OpenShift Platform y con Red Hat le brinda el soporte para que pueda utilizar NCache como parte de eso.

Esto nos lleva al final de nuestro video. Hemos demostrado con éxito cómo puede implementar NCache en Red Hat OpenShift Platform y lo fácil que es usarlo NCache desde dentro de su Java y .NET Core aplicaciones También revisamos la eficacia con la que puede administrar y monitorear su NCache Despliegues en OpenShift. Espero que esto haya sido útil. Comparta sus comentarios o preguntas con nosotros en Alachisoft SOPORTE support@alachisoft.com. ¡Gracias!

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