NCache Alta disponibilidad y mantenimiento programado

Este video demuestra cómo NCache mantiene sus datos altamente disponibles al proporcionar un 100 por ciento de tiempo de actividad y confiabilidad de datos. En esta demostración en particular, iniciaré y detendré un nodo de servidor de caché desde un clúster de caché en ejecución y le mostraré cómo NCache maneja con éxito eso, sin tener ningún tiempo de inactividad o pérdida de datos, para sus aplicaciones cliente.

Hoy hablaré sobre 'cómo se puede lograr una alta disponibilidad en NCache y cómo NCache le proporciona alta disponibilidad'. Como tú sabes, NCache se utiliza en aplicaciones de misión crítica, que no pueden permitirse ningún tiempo de inactividad.

Aquí hay una imagen de usted tiene una granja de servidores de aplicaciones que está usando un clúster de caché de múltiples servidores y luego hay múltiples fuentes de datos. Y, por lo general, estos son como mínimo dos o más servidores de caché.

NCache Utilizado en aplicaciones de misión crítica
NCache Utilizado en aplicaciones de misión crítica

Y, NCache te proporciona un agrupamiento dinámico de caché, donde puede agregar o eliminar servidores de caché en tiempo de ejecución sin detener la aplicación, porque NCache tiene una arquitectura peer-to-peer. Y lo demostraré en el video de hoy.

Voy a usar la topología de réplica de partición, donde comenzaremos y seguiremos agregando más servidores y verán en esta topología que cada servidor tiene una partición. Entonces, si empiezo con un servidor, es solo una partición y la réplica también está en la misma partición o, tal vez no hay réplica y luego, cuando agrega un segundo servidor, tiene dos particiones. Entonces, todos los datos del caché se dividen por la mitad y cada partición se replica en un servidor diferente.

Topología de almacenamiento en caché: caché de partición-réplica

Y luego, cuando agrega un tercer servidor, tiene tres particiones y los mismos datos se dividen en tres particiones. Cada partición ahora tiene un tercio de los datos en lugar de tener la mitad de los datos y cada partición se respalda en un servidor diferente. Entonces, esto es lo que voy a demostrar.

Adición de clientes y servidores en tiempo de ejecución

Permítanme pasar rápidamente al producto y mostrarles esto. Tengo tres servidores de caché que usaré. Comenzaré con uno y luego seguiré agregando más. Y luego tengo un cliente, en realidad estoy ahora mismo, sentado en la máquina del cliente. Por lo tanto, voy a hacer clic en esto y abrir el NCache Web Manager, que es una herramienta de gestión basada en web. Y actualmente, así es como NCache viene cuando instalas NCache. Entonces, a medida que instalaste NCache en estos tres servidores, en cada servidor había un 'democache' que se instaló. Entonces, en realidad voy a iniciar el democache y verán que se inicia el democache.

iniciar un caché
iniciar un caché

Una vez que haya comenzado, también abriré una estadística y también monitorearé la memoria caché. El monitoreo me da un tablero muy agradable. Hay un panel de servidor y hay un panel de informes. El panel de informes es muy parecido a la ventana de estadísticas. Entonces, me limitaré al tablero del servidor y lo mantendré aquí. Y, ahora que tengo esto en ejecución, necesito ejecutar los clientes.

NCache viene con una herramienta de prueba de esfuerzo basada en Powershell. Entonces, solo déjame escribir la palabra NCache. Hay una gestión de Powershell, así que voy a ejecutar 'Test-stress' y le daré un nombre de mi caché, que es 'democache', como pueden ver aquí 'Democaché de prueba de estrés'. El nombre del caché no distingue entre mayúsculas y minúsculas, por lo que puede ingresarlo de la forma que desee.

Herramienta de prueba de estrés
Herramienta de prueba de estrés

Cuando inicio la aplicación, esta es mi herramienta de prueba de esfuerzo. La razón por la que esto está ahí es que no tiene que hacer ninguna programación para comenzar a probar NCache. También puede simular el estrés a través de esta herramienta de prueba de estrés. Es por eso que se llama herramienta de prueba de esfuerzo. Pero, ya sabes, imagina que esta sería tu aplicación.

Ahora, si entro a mi ventana de estadísticas, verán que tengo un recuento de unos 400 elementos que sigue aumentando. Tengo alrededor de 981 o alrededor de 1000 solicitudes por segundo de ese cliente.

Ventana de estadísticas
Ventana de estadísticas

Ahora voy a seguir adelante y ejecutar una segunda aplicación cliente. Por lo tanto, puedo seguir agregando varios clientes iniciando varias instancias de herramientas de prueba de esfuerzo o, lo siento, instancias de Powershell. Entonces, si vengo aquí, vuelvo a decir Democaché de prueba de estrés. Una vez que haga esto, verá que el conteo o la solicitud casi se duplica ahora. Porque cada cliente, como vio en esta imagen, cada cliente está poniendo su propia carga de transacciones en el servidor, por lo que la capacidad de transacciones del servidor casi se ha duplicado. También puedo ver aquí que en el tablero de mi servidor, tengo dos clientes conectados a un clúster de caché de un nodo.

Se agregó un segundo cliente
Se agregó un segundo cliente

Entonces, solo hay un servidor en el clúster que estoy usando actualmente. Bien, voy a hacerlo ahora, supongamos que lo que sucede en la vida real es que, ya sabes, tu capacidad crece y, por cierto, recomendamos un mínimo de dos servidores de caché. Por lo tanto, nunca debe tener un solo servidor de caché ejecutándose en esto. Pero, solo quería comenzar con uno, así que podría agregar dos servidores en tiempo de ejecución para mostrarles.

Entonces, ahora lo siguiente que hago es agregar un segundo servidor de caché y el segundo servidor de caché que voy a agregar es el 117. Seguiré adelante y 117, diré agregar. Se ha añadido pero se ha detenido. Entonces, voy a hacer clic aquí y decir empezar. Eso simplemente iniciará el nodo del servidor.

Adición de un segundo servidor de caché
Adición de un segundo servidor de caché

Una vez que comience aquí, verá que se agregará un segundo nodo aquí, allá. Y, el recuento que ha disminuido el recuento de caché. No les mostré que el conteo de caché era en realidad el doble, ahora que son dos servidores, el conteo de caché ha disminuido y las solicitudes de transacciones por segundo se han dividido a la mitad. Porque, la mitad de las solicitudes están siendo procesadas por este servidor de caché, la mitad de ellas están siendo procesadas por este servidor de caché. Entonces, así es como ha bajado la cuenta.

Estadísticas

Entonces, ahora acabo de agregar un servidor de caché sin detener la aplicación. Puede ver que la herramienta de prueba de esfuerzo se está ejecutando aquí y también se está ejecutando aquí. No hay problemas en absoluto. Y lo que sucedió ahora es que mis particiones, entonces, yo era un servidor, ahora soy un clúster de dos servidores. Entonces, hay una partición uno, una partición dos y cada partición está respaldada en el otro servidor. Entonces, déjame mostrarte qué es eso. Entonces, aquí está la partición uno. Obtuvo tantos artículos y su réplica está aquí. Entonces, verás que esta es casi la misma cantidad que esta. Y, entonces esta es mi partición dos. Alrededor de 1500 algo y está respaldado aquí.

asíncrono Replicación

Ahora bien, esta replicación es asíncrona. Por lo tanto, este recuento no siempre será exacto. Pero eventualmente será exacto incluso si detiene la transacción.

Está bien. Ahora, digamos que mi carga de transacciones sigue creciendo. Mi negocio va bien y necesito agregar más servidores porque necesito aumentar la capacidad de transacciones. También puedo agregar más clientes porque eso es lo que va a pasar.

Lo primero es que agregaré más clientes porque lo primero que haré es agregar más clientes, quiero decir, más servidores de aplicaciones. Y eso dará como resultado una mayor carga de transacciones. Solo mire, esta carga de transacciones aumentará, allí, vea. Pasó a 1182 por servidor en lugar de 800 algo y, de hecho, se fue aún más, se fue a 1200 algo.

Mayor carga de transacciones
Mayor carga de transacciones

Entonces, la carga de transacciones sigue aumentando. También puedo verlo aquí. Puedo ver la solicitud por segundo en cada servidor, que se está distribuyendo a medida que agregué más servidores, se está incrementando.

Entonces, ahora que agregué más clientes, en algún momento tendré que, ya sabes, notaré que mis servidores de caché están comenzando a ralentizarse porque la capacidad de transacción se está agotando o tal vez la capacidad de almacenamiento de cuánta memoria Tengo en cada servidor está al máximo. Entonces, necesito agregar uno más servidores.

En cualquier caso, como decía, recomendamos un mínimo de dos servidores. Por lo tanto, nunca debe tener un solo clúster de servidor en producción al menos. Porque eso no le da alta disponibilidad. Entonces, cuando tenga un mínimo de dos y alcance el límite de capacidad de estos dos, entonces es hora de agregar un tercer servidor.

¿Cómo añadimos un tercer servidor? Tengo un tercer servidor aquí 157. Vendré aquí de inmediato y diré agregar un servidor y es 157. Entonces, vendré aquí y agregaré 157. Nuevamente, se agregó pero se detuvo. Vendré aquí, seleccionaré esto y diré inicio.

Adición de un tercer servidor de caché
Adición de un tercer servidor de caché

Una vez que empiece a notar que este 1800 va a bajar. Mire, tan pronto como el tercer servidor se active, compartirá la carga, allí. Mira, se redujo a alrededor de 1100 algo cada uno.

Compartiendo carga
Compartiendo carga

Porque ahora tengo tres servidores en lugar de dos y como mostré aquí, cuando tienes tres servidores, tienes tres particiones. Entonces, los datos de ambas particiones se dividen aún más en tres particiones.

Entonces, ahora cada partición tiene una réplica en un servidor diferente y así es como se distribuyen los datos. Entonces, acabo de demostrar que puede agregar más servidores sin detener ni la aplicación ni el caché. Entonces, todo es... quiero decir que la aplicación no se ve afectada en absoluto por este cambio, por agregar más servidores, lo cual es una gran cosa acerca de NCache que te permite hacer eso.

Bueno. Entonces, ahora llega un momento en el que tal vez también necesite desactivar un servidor. Hay dos formas en las que puede desactivar un servidor. Uno lo está derribando permanentemente porque está reduciendo su capacidad. Tal vez esté bajando de tres servidores a dos porque es un negocio estacional. Tuviste un tiempo de uso máximo durante la temporada navideña y ahora volverás a tu configuración predeterminada, ya sabes, más pequeña. Por lo tanto, algunos de estos servidores se eliminarán. Entonces, sigamos adelante y hagamos eso.

Voy a eliminar el servidor 157 en esto. Entonces, elegiré el servidor 157 y diré que se detenga. Primero haré una parada. Ahora, como puede ver, mientras me detengo, este conteo disminuirá y aumentará aún más. Mira, se ha ido a alrededor de 2000 cada uno de nuevo. Eso significa que los datos se han desplazado de esto a esto.

Eliminación/detención del servidor en tiempo de ejecución
Eliminación/detención del servidor en tiempo de ejecución

Básicamente he pasado de una configuración de tres particiones a una configuración de dos particiones. Cada partición se replica, como puede ver aquí cada partición. Entonces, esta partición se replica aquí y esta partición se replica aquí, está bien. Y, sin efecto en las aplicaciones, como puede ver.

Entonces, eso maneja bastante la situación en la que necesita agregar un servidor, porque necesita aumentar la capacidad o necesita desconectar un servidor, porque su necesidad de capacidad ha cambiado. En realidad, debido al uso estacional, la necesidad de capacidad ha cambiado.

Modo de mantenimiento

Hay otra situación que es lo que llamamos modo de mantenimiento, donde necesita apagar un servidor pero no porque su capacidad haya disminuido, sino porque necesita hacer algo de mantenimiento. Digamos que necesita aplicar algunos parches del sistema operativo o algo así. Por lo tanto, debe desconectar un servidor durante unos cinco minutos, diez minutos, media hora o algo así. Pero, su caché tiene una gran cantidad de datos. Me refiero a nuestros clientes, tienen decenas de gigabytes de datos en cada servidor. Entonces, si tiene un clúster de tres, cuatro, cinco, seis servidores y una combinación de datos de decenas de gigabytes en cada servidor, la caída de un servidor realmente afecta el rendimiento. Porque, ahora, si tuvieras que volver a particionar, todo para pasar de tres particiones a dos particiones, vas a hacer mucha transferencia de estado y luego, para qué, volver a agregarlo. Entonces, se nos ocurrió una característica llamada modo de mantenimiento, donde puedes saber NCache Está bien, estoy desconectando este servidor, pero no quiero que vuelva a particionar el caché, mantenga esto como tres nodos de partición, la partición uno, la partición dos y la réplica tres, que está aquí, se convertirá en la partición tres. Y, esto se mantiene activo. Es un arreglo temporal. Al final, una vez que haya terminado, traerá este nodo nuevamente y volverá a esta imagen nuevamente.

Modo de mantenimiento en un servidor de caché
Modo de mantenimiento en un servidor de caché

Déjame mostrarte cómo puedes hacer eso, ¿de acuerdo? Entonces, en primer lugar, volveré a lograr la configuración de tres servidores, voy a agregar esto, supongamos que lo eliminé, ahora lo agregaré nuevamente. Debería haberlo quitado, solo lo detuve. Pero, voy a agregarlo de nuevo. Estoy de nuevo en un clúster de tres nodos. Mis datos se distribuyen uniformemente.

Modo de mantenimiento en un servidor de caché
Modo de mantenimiento en un servidor de caché

Mi carga de transacciones se distribuye uniformemente y también puedo verla aquí. En realidad, esto no lo muestra todavía, lo hará. Pero de todos modos. Entonces, una vez que tenga esto, ahora necesito hacer mantenimiento. Entonces, vendré aquí y diré, está bien de nuevo, recuerda que cada nodo tiene alrededor de 1200 elementos cada uno, está bien.

Entonces, si tuviera que reducirlo, a un clúster de dos nodos, esto debería aumentar a más de 2000 elementos en cada nodo, lo cual no es lo que sucederá porque vendré aquí y diré, aquí diré detener esto para el mantenimiento.

Nodo de parada para mantenimiento
Nodo de parada para mantenimiento

Cuando le doy click me pregunta ¿cuanto tiempo lo quieres tener en mantenimiento? Obviamente, este tiempo de espera es muy importante porque al final de ese tiempo de espera NCache asume que ya no es mantenimiento. Porque, si no vuelve a agregar el nodo en este momento, NCache asume que en realidad lo ha eliminado de forma permanente, como el otro eliminado, que le acabo de mostrar y en realidad eliminará y volverá a particionar el caché.

Nodo de parada para mantenimiento
Nodo de parada para mantenimiento

Pero, si lo vuelve a agregar dentro de este período de tiempo y es un período de tiempo configurable, si lo vuelve a agregar dentro de este período de tiempo, entonces NCache hará lo que le acabo de mostrar, que no volverá a particionar, solo mantendrá esa partición, esa réplica en un modo de partición temporal. Entonces, déjame decir, está bien, estoy diciendo que detengas esto ahora. Entonces, vengamos aquí 1300, 1300, 1470 y ahora esto se ha ido por completo. Pero, observe que este conteo no ha aumentado. ¿Por qué? Porque una de las réplicas se ha convertido en partición activa. No sabes cuál a través de esta foto pero el hecho de que el conteo no ha subido, la réplica sigue ahí. Esta réplica se ha convertido en una partición activa. Entonces, ahora el servidor uno tiene la partición uno y la partición tres, el servidor dos tiene la partición dos y una réplica pasiva uno y el servidor tres está caído, lo cual necesito hacer, ya sabes, necesito desconectarlo para mantenimiento.

Modo de mantenimiento en un servidor de caché
Modo de mantenimiento en un servidor de caché

Entonces, ahora vas y haces tu mantenimiento. Aplica sus parches y, ahora que ha terminado, ahora quiere volver a activarlo, así que, de nuevo, simplemente venga aquí, ni siquiera necesita volver a agregar, solo diga comenzar de nuevo porque se detuvo. Y, por cierto, en todo eso, la aplicación seguía funcionando sin interrupción. Entonces, todo eso, todos esos cambios no requieren ninguna interrupción de la aplicación. Por lo tanto, voy a decir empezar de nuevo. Y, una vez que digo comenzar, ahora mire, esto recuperará su posición y nuevamente se pondrá al día con los datos y verá que nuevamente está nuevamente en el mismo nivel que estaba anteriormente.

Iniciar un nodo en tiempo de ejecución

Conclusión

Entonces, como puede ver, he demostrado agregar y eliminar nodos en tiempo de ejecución de forma permanente y también eliminar temporalmente un nodo para el mantenimiento programado. Entonces, ese es el final de mi demostración. Tenía la esperanza de demostrarte que NCache le da alta disponibilidad. Es un tiempo de actividad del 100% en el que no tiene que desactivar ninguna aplicación. No hay interrupción en la aplicación.

¿Qué hacer a continuación?

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