NCache Alta disponibilidade e manutenção programada

Este vídeo demonstra como NCache mantém seus dados altamente disponíveis fornecendo 100 por cento de tempo de atividade e confiabilidade de dados. Nesta demonstração em particular, vou iniciar e parar um nó do servidor de cache de um cluster de cache em execução e mostrarei como NCache lida com isso com sucesso, sem qualquer tempo de inatividade ou perda de dados, para seus aplicativos clientes.

Hoje, falarei sobre 'como você pode obter alta disponibilidade em NCache e como NCache oferece alta disponibilidade'. Como você sabe, NCache é usado em aplicativos de missão crítica, que não podem suportar qualquer tempo de inatividade.

Aqui está uma imagem de você tem um farm de servidores de aplicativos que está usando um cluster de cache de vários servidores e, em seguida, há várias fontes de dados. E, estes geralmente são no mínimo dois ou mais servidores de cache.

NCache Usado em aplicativos de missão crítica
NCache Usado em aplicativos de missão crítica

E, NCache fornece-lhe um cluster de cache dinâmico, onde você pode adicionar ou remover servidores de cache em tempo de execução sem interromper o aplicativo, pois NCache tem uma arquitetura peer-to-peer. E, vou demonstrar isso no vídeo de hoje.

Vou usar a topologia de réplica de partição, onde começaremos e continuaremos adicionando mais servidores e você verá nesta topologia que cada servidor tem uma partição. Então, se eu começar com um servidor, é apenas uma partição e a réplica também está na mesma partição ou, talvez, não haja réplica e, à medida que você adiciona um segundo servidor, você tem duas partições. Assim, todos os dados do cache são divididos pela metade e cada partição é replicada em um servidor diferente.

Topologia de cache: cache de réplica de partição

E então, à medida que você adiciona um terceiro servidor, você tem três partições e os mesmos dados são divididos em três partições. Cada partição tem agora um terço dos dados em vez de ter metade dos dados e cada partição é copiada em um servidor diferente. Então, é isso que eu vou demonstrar.

Adicionando clientes e servidores em tempo de execução

Deixe-me pular rapidamente para o produto e mostrar isso. Eu tenho três servidores de cache que vou usar. Vou começar com um e, em seguida, vou continuar adicionando mais. E, então, eu tenho um cliente, na verdade estou agora, sentado na máquina do cliente. Então, vou clicar aqui e abrir o NCache Web Manager, que é uma ferramenta de gerenciamento baseada na web. E atualmente é assim NCache vem quando você instala NCache. Então, como você instalou NCache em todos esses três servidores, em cada servidor havia um 'democache' que foi instalado. Então, agora vou iniciar o democache e você verá que o democache foi iniciado.

Iniciar um cache
Iniciar um cache

Uma vez iniciado, também abrirei uma estatística sobre ele e também farei o cache do monitor. O monitoramento me dá um painel muito bom. Há um painel de servidor e um painel de relatório. O painel de relatórios é muito parecido com a janela de estatísticas. Então, vou me ater ao painel do servidor e vou mantê-lo aqui. E, agora que tenho isso em execução, preciso agora executar os clientes.

NCache vem com uma ferramenta de teste de estresse baseada em Powershell. Então, deixe-me digitar a palavra NCache. Existe um gerenciamento do Powershell, então, vou rodar 'Test-stress' e vou dar um nome do meu cache, que é 'democache', como você pode ver aqui 'Democache Test-Stress'. O nome do cache não diferencia maiúsculas de minúsculas, portanto, você pode inseri-lo da maneira que desejar.

Ferramenta de teste de estresse
Ferramenta de teste de estresse

Quando inicio o aplicativo, esta é minha ferramenta de teste de estresse. A razão disso é que você não precisa fazer nenhuma programação para começar a testar NCache. Você também pode simular o estresse por meio desta ferramenta de teste de estresse. É por isso que é chamado de ferramenta de teste de estresse. Mas, você sabe, apenas imagine que este seria o seu aplicativo.

Agora, se eu for para minha janela de estatísticas, você verá que eu tenho uma contagem de cerca de 400 itens que continua aumentando. Eu tenho cerca de 981 ou cerca de 1000 solicitações por segundo desse cliente.

Janela de Estatísticas
Janela de Estatísticas

Agora vou executar um segundo aplicativo cliente. Portanto, posso continuar adicionando vários clientes iniciando várias instâncias da ferramenta de teste de estresse ou, desculpe, instâncias do Powershell. Então, se eu vier aqui, eu digo novamente Democache Test-Stress. Depois de fazer isso, você verá que a contagem ou a solicitação quase dobrou agora. Porque cada cliente, como você viu nesta imagem, cada cliente está colocando sua própria carga de transação no servidor, então, a capacidade de transação do servidor quase dobrou. Também posso ver aqui que, no painel do meu servidor, tenho dois clientes conectados a um cluster de cache de um nó.

Adicionado um segundo cliente
Adicionado um segundo cliente

Portanto, há apenas um servidor no cluster que estou usando atualmente. Ok, eu vou agora, vamos supor que o que acontece na vida real é que, você sabe, sua capacidade cresce e por sinal recomendamos um mínimo de dois servidores de cache. Portanto, você nunca deve ter apenas um servidor de cache em execução. Mas, eu só queria começar com um, então, eu poderia adicionar dois servidores em tempo de execução para mostrar a você.

Então, agora a próxima coisa que faço é adicionar um segundo servidor de cache e o segundo servidor de cache que vou adicionar é o 117. Vou em frente e 117, direi adicionar. Foi adicionado mas parou. Então, eu vou clicar aqui e dizer começar. Isso apenas iniciará o nó do servidor.

Adicionando o segundo servidor de cache
Adicionando o segundo servidor de cache

Assim que eu começar aqui, você verá que um segundo nó será adicionado aqui, ali. E a contagem de cache caiu. Eu não mostrei a você que a contagem de cache era realmente o dobro, agora que são dois servidores, a contagem de cache caiu e as solicitações de transação por segundo foram divididas pela metade. Como metade das solicitações estão sendo processadas por esse servidor de cache, metade delas está sendo processada por esse servidor de cache. Então, é assim que a contagem caiu.

Estatísticas

Então, agora acabei de adicionar um servidor de cache sem parar o aplicativo. Você pode ver que a ferramenta de teste de estresse está sendo executada aqui e também está sendo executada aqui. Sem problemas. E o que aconteceu agora é que minhas partições, então, eu era um servidor, agora sou um cluster de dois servidores. Portanto, há a partição um, a partição dois e o backup de cada partição é feito no outro servidor. Então, deixe-me mostrar o que é isso. Então, aqui está a partição um. Ele tem tantos itens e sua réplica está bem aqui. Então, você vê que esta é quase a mesma quantidade que esta. E, então esta é a minha partição dois. Cerca de 1500 algo e está guardado aqui.

Assíncrono Replicação

Agora esta replicação é assíncrona. Portanto, essa contagem nem sempre será exata. Mas, eventualmente, será exato, mesmo que você interrompa a transação.

OK. Agora, digamos que minha carga de transações continue crescendo. Meu negócio está indo bem e preciso adicionar mais servidores porque preciso aumentar a capacidade de transação. Eu também posso adicionar mais clientes porque é isso que vai acontecer.

Primeiro, estarei adicionando mais clientes porque a primeira coisa que farei é adicionar mais clientes, mais servidores de aplicativos, quero dizer. E isso resultará em uma carga de transação mais alta. Apenas observe, essa carga de transação aumentará, veja. Foi para 1182 por servidor em vez de 800 algo e, na verdade, foi ainda mais, passou de 1200 algo.

Carga de transação mais alta
Carga de transação mais alta

Assim, a carga da transação continua subindo. Eu também posso ver aqui. Eu posso ver a solicitação por segundo em cada servidor, que está sendo distribuída conforme eu adicionei mais servidores, ela está sendo aumentada.

Então, agora que eu adicionei mais clientes, em algum momento eu vou precisar, você sabe, eu vou notar que meus servidores de cache estão começando a ficar lentos porque a capacidade de transação está chegando ao limite ou talvez a capacidade de armazenamento de quanta memória Eu tenho em cada servidor está no limite. Então, eu preciso adicionar mais um servidor.

De qualquer forma, como eu disse, recomendamos um mínimo de dois servidores. Portanto, você nunca deve ter pelo menos um único cluster de servidor em produção. Porque isso não lhe dá alta disponibilidade. Então, quando você tiver no mínimo dois e atingir o limite de capacidade desses dois, é hora de adicionar um terceiro servidor.

Como adicionamos um terceiro servidor? Eu tenho um terceiro servidor aqui 157. Eu venho aqui imediatamente e direi adicionar um servidor e é 157. Então, eu vou vir aqui e adicionar 157. Novamente, ele é adicionado, mas parou. Eu virei aqui, selecione isto e diga começar.

Adicionando Terceiro Servidor de Cache
Adicionando Terceiro Servidor de Cache

Assim que eu começar a notar que esse 1800 vai cair. Observe, assim que o terceiro servidor entrar em ação, ele compartilhará a carga. Veja, desceu para cerca de 1100 algo cada.

Partilha de carga
Partilha de carga

Porque agora eu tenho três servidores em vez de dois e como mostrei aqui que quando você tem três servidores, você tem três partições. Assim, os dados de ambas as partições são divididos ainda mais em três partições.

Então, agora cada partição tem uma réplica em um servidor diferente e é assim que os dados são realmente distribuídos. Então, acabei de demonstrar que você pode adicionar mais servidores sem interromper o aplicativo ou o cache. Então, tudo é... quero dizer, o aplicativo não é totalmente afetado por essa mudança, por você adicionar mais servidores, o que é ótimo NCache que ele permite que você faça isso.

OK. Então, agora chega um momento em que talvez você também precise derrubar um servidor. Existem duas maneiras de derrubar um servidor. Um que você está derrubando permanentemente porque está reduzindo sua capacidade. Talvez você esteja caindo de três servidores para dois porque é um negócio sazonal. Você teve um horário de pico de uso durante a temporada de férias e agora, novamente, você voltará ao seu padrão, você sabe, configuração menor. Então, alguns desses servidores serão realmente removidos. Então, vamos em frente e fazer isso.

Vou remover o servidor 157 neste. Então, vou escolher o servidor 157 e direi parar. Primeiro eu vou parar. Agora, como você pode ver, enquanto estou parando, essa contagem diminuirá e aumentará ainda mais. Veja, foi para cerca de 2000 cada novamente. Isso significa que os dados mudaram disso para isso.

Removendo/Parando o Servidor em Tempo de Execução
Removendo/Parando o Servidor em Tempo de Execução

Basicamente, passei de uma configuração de três partições para uma configuração de duas partições. Cada partição é replicada, como você pode ver aqui cada partição. Então, esta partição é replicada aqui e esta partição é replicada aqui, OK. E, nenhum efeito sobre os aplicativos como você pode ver.

Então, isso lida muito bem com a situação em que você precisa adicionar um servidor, porque você precisa aumentar a capacidade ou precisa derrubar um servidor, porque sua necessidade de capacidade mudou. Na verdade, devido ao uso sazonal, a necessidade de capacidade mudou.

Modo de Manutenção

Há outra situação que chamamos de modo de manutenção, onde você precisa derrubar um servidor, mas não porque sua capacidade caiu, é porque você precisa fazer alguma manutenção. Digamos que você precise aplicar alguns patches do sistema operacional ou algo assim. Então, você precisa derrubar um servidor por talvez cinco minutos, dez minutos, meia hora algo. Mas, seu cache tem grandes quantidades de dados. Quero dizer, nossos clientes, eles têm dezenas de gigabytes de dados em cada servidor. Portanto, se você tiver um cluster de três, quatro, cinco, seis servidores e um conjunto de dados de dezenas de gigabytes em cada servidor, derrubar um servidor realmente afeta o desempenho. Porque, agora, se você tiver que re-particionar, tudo para ir de três partições para duas partições, você vai fazer muita transferência de estado e então para quê, novamente para adicioná-lo de volta. Então, criamos um recurso chamado modo de manutenção, onde você pode dizer NCache tudo bem, estou derrubando este servidor, mas não quero que você reparticione o cache, mantenha isso como três nós de partição, partição um, partição dois e a réplica três, que está bem aqui, se tornará a partição três. E, isso permanece ativo. É um arranjo temporário. No final, quando terminar, você trará esse nó de volta e ele voltará a esta imagem novamente.

Modo de manutenção abaixo de um servidor de cache
Modo de manutenção abaixo de um servidor de cache

Deixe-me mostrar como você pode fazer isso, ok. Então, eu vou, antes de mais nada, atingir novamente a configuração de três servidores, vou adicionar isso, bem, suponha que eu a tenha removido, agora estou adicionando de volta. Eu deveria tê-lo removido, apenas parei. Mas, vou adicioná-lo de volta. Estou novamente em um cluster de três nós. Meus dados são distribuídos uniformemente.

Modo de manutenção abaixo de um servidor de cache
Modo de manutenção abaixo de um servidor de cache

Minha carga de transação é distribuída uniformemente e posso vê-la também aqui. Na verdade, isso não está mostrando ainda, ele vai. Mas mesmo assim. Então, uma vez que eu tenho isso, agora eu preciso fazer manutenção. Então, eu vou vir aqui e vou dizer, ok de novo, lembre-se que cada nó tem cerca de 1200 itens cada, ok.

Então, se eu reduzisse, para um cluster de dois nós, isso deveria chegar a mais de 2000 itens em cada nó, o que não é o que vai acontecer porque, eu vou vir aqui e direi: aqui vou dizer para parar isso para manutenção.

Parar Nó para Manutenção
Parar Nó para Manutenção

Quando, clico nele, ele me pergunta, por quanto tempo você deseja mantê-lo em manutenção? Obviamente, este tempo limite é muito importante porque no final desse tempo limite NCache assume que não é mais manutenção. Porque, se você não adicionar o nó de volta neste momento, NCache assume que você realmente o removeu permanentemente, como o outro removido, que acabei de mostrar a você e ele realmente removerá e re-particionará o cache.

Parar Nó para Manutenção
Parar Nó para Manutenção

Mas, se você adicioná-lo novamente dentro desse período e for um período configurável, se você adicioná-lo novamente dentro desse período, NCache vai fazer o que acabei de mostrar que não vai reparticionar, vai apenas manter essa partição, essa réplica em um modo de partição temporária. Então, deixe-me apenas dizer, ok, estou dizendo para parar com isso agora. Então, vamos chegar aqui 1300, 1300, 1470 e agora isso se foi completamente. Mas, observe que essa contagem não aumentou. Por quê? Porque uma das réplicas tornou-se partição ativa. Você não sabe qual através desta foto, mas o fato de a contagem não ter subido, a réplica ainda está lá. Esta réplica tornou-se uma partição ativa. Então, agora o servidor um tem a partição um e a partição três, o servidor dois tem a partição dois e uma réplica passiva um e o servidor três está inativo, o que eu preciso fazer, você sabe, eu preciso desligá-lo para manutenção.

Modo de manutenção abaixo de um servidor de cache
Modo de manutenção abaixo de um servidor de cache

Então, agora você vai e faz sua manutenção. Você aplica seus patches e, agora está pronto, agora você quer trazê-lo de volta, então, de novo, você só vem aqui, não precisa nem re-adicionar, apenas dizer começar de novo porque foi interrompido. E, a propósito, em tudo isso, o aplicativo ainda estava rodando sem nenhuma interrupção. Então, tudo isso, todas essas mudanças não exigem nenhuma interrupção do aplicativo. Então, eu vou dizer começar de novo. E, uma vez que eu diga comece, agora observe, isso vai recuperar sua posição e está novamente alcançando os dados e você verá que novamente está no mesmo nível que estava anteriormente.

Iniciar um nó em tempo de execução

Conclusão

Portanto, como você pode ver, demonstrei adicionar e remover nós em tempo de execução de forma permanente e também remover temporariamente um nó para manutenção programada. Então, esse é o fim da minha demonstração. Eu tinha esperança de demonstrar a você que NCache oferece alta disponibilidade. É um tempo de atividade de 100% em que você não precisa desativar nenhum aplicativo. Não há interrupção no aplicativo.

O que fazer a seguir?

 
© Copyright Alachisoft 2002 - . Todos os direitos reservados. NCache é uma marca registrada da Diyatech Corp.