utilização NCache no Microsoft Azure Service Fabric

Olá e bem vindos a mais uma apresentação de NCache. Hoje vamos falar sobre como podemos implantar NCache em um ambiente do Service Fabric. Há muito o que cobrir, então vamos começar.

NCache desenvolvimento

Vamos começar com uma visão geral do que estamos tentando alcançar. Portanto, aqui temos uma visão geral de um aplicativo típico do Service Fabric implantado no Azure.

ncache-implantação-azure

Temos um cluster do Service Fabric que tem um balanceador de carga do Azure. Dentro do aplicativo Service Fabric, temos vários serviços que podem ser escritos em diferentes idiomas. Esses serviços geralmente são implantados como serviços em contêiner. Agora, em um aplicativo corporativo, o cache distribuído é importante para permitir alto desempenho de leitura e é aí que NCache .

NCache pode ser implantado no aplicativo Service Fabric como um serviço em contêiner. NCache servidor está sendo executado dentro dos contêineres nos vários nós do conjunto de dimensionamento de Máquinas Virtuais, podem se comunicar uns com os outros e formar um cache clusterizado. Fazendo a ponte entre o NCache clientes e os servidores, temos o Cache Discovery Service, que é usado para obter as informações do endereço IP em tempo real do NCache servidores e fornecer essas informações ao NCache clientes. Com essas informações, o NCache os clientes podem então criar identificadores de cache, com os quais podem começar a executar o gerenciamento de cache e as operações CRUD no NCache Cache Agrupado.

Então, a seguir estão os principais parâmetros da demonstração que vamos para a metade hoje.

detalhes do ambiente de demonstração

A NCache servidores que estão sendo executados nos contêineres do Windows usarão a imagem do Docker com o nome de 'alachisoft/ncache:Mais recentes'. Este contém o NCache Enterprise, Com um .NET framework instalação. Vamos começar com 2 NCache servidores, que são reunidos para formar um cache clusterizado com uma partição de topologia de réplica. Os dois NCache aplicativos cliente que temos são escritos em .NET Core e Java e eles realizarão operações CRUD no NCache Servidores.

Criar cluster do Service Fabric

Portanto, para começar, a primeira coisa que faremos é criar uma infraestrutura do Service Fabric no Azure. Posso ir até a janela do meu navegador, onde já abri meu Portal do Azure.

portal azul

Eu criei um grupo de recursos com o nome de 'NCacheServiceFabric' e isso, no momento, contém apenas um único recurso 'Key vault'. Esse recurso de cofre de chaves contém o certificado que será usado com o cluster do Service Fabric. Chegando ao Visual Studio 2019, tenho um modelo ARM aberto e introduzi configurações para permitir o modo de configuração aberto do Service Fabric.

estúdio visual

Falaremos mais sobre o modo de configuração aberta do Service Fabric e por que o estamos usando depois de implantar a infraestrutura. Portanto, para começar a implantação, posso acessar o 'Solution Explorer' e, no meu projeto de grupo de recursos do Azure, posso clicar com o botão direito, vir para implantar e listei o grupo de recursos.

visual-studio2

Isso abrirá uma janela de implantação. Posso clicar no botão 'Implantar' e a implantação será iniciada.

botão de implantação

Isso levará algum tempo, então, vou pausar o vídeo aqui. Nosso modelo foi implantado com sucesso e, para confirmar isso, podemos voltar ao nosso portal do Azure. Se eu atualizar a página, você verá as alterações e aqui fazemos. Portanto, agora nosso Cluster do Service Fabric e todos os recursos dependentes associados foram criados com êxito. Para começar, a primeira coisa que vou falar é sobre o modo de configuração aberta, que mencionei antes.

Este artigo basicamente aborda o modo de configuração aberto e por que ele é usado. Para nossos propósitos, o modo de configuração aberta permite a NCache servidores que estão sendo executados nos contêineres para realmente poder se comunicar entre vários hosts e se reunir para formar um cache clusterizado e ver como isso é feito, podemos chegar ao portal do Azure e a primeira coisa que examinarei é o Virtual Rede.

rede virtual

Ok, agora temos vários nós do conjunto de dimensionamento de máquina virtual, mas se você observar atentamente, cada um dos nós tem vários endereços IP atribuídos a eles. O primeiro endereço IP é o endereço principal do host. No entanto, os outros endereços IP que estão anexados ao nó, formam o pool de endereços IP secundário e com o modo de configuração aberta do Service Fabric, esses endereços IP serão atribuídos aos contêineres, nos quais o NCache servidores estarão em execução. Com os endereços IP atribuídos a partir desse pool secundário, os contêineres nos vários hosts podem se comunicar perfeitamente para criar um cluster de cache no Service Fabric.

A outra coisa que eu quero ver nos recursos é o balanceador de carga e se eu chegar à 'configuração de IP de frontend', a regra que realmente me interessa é 'Regra 10' e isso tem a ver com a porta 8251, que será utilizado pelo NCache Web Manager, sobre o qual falaremos mais adiante nesta apresentação. Mas o importante a notar é que com o NCache Web Manager, vamos usar uma persistência fixa como pode ser visto pelos campos 'session persistence' mostrados aqui, com um valor de 'Client IP'.

nc-web-manager

Com isso, se houver várias instâncias de NCache Web Manager em execução, poderemos ter uma experiência de usuário consistente entre o navegador e o serviço final. Agora que analisamos a infraestrutura e a implantamos com sucesso, vamos para a implantação do aplicativo Service Fabric e para isso voltamos ao Visual Studio e temos vários arquivos ServiceManifest, correspondentes ao serviços do aplicativo. Nós temos o NCache serviço, o NCache Serviço Web Manager, o Serviço de Descoberta, bem como o serviço de contêiner do cliente, que abrigará nossos aplicativos clientes. Entraremos nos detalhes de cada um desses serviços, depois de implantarmos o aplicativo. Para fazer isso, voltaremos a um gerenciador de soluções e, aqui, clicaremos com o botão direito do mouse no projeto e no nome do aplicativo Service Fabric e desceremos para 'Publicar'.

explorador de soluções

Isso abrirá nossa janela de implantação e, como você pode ver, ela já detectou o endpoint de conexão do cluster do Service Fabric. Tudo o que precisamos fazer neste momento é clicar em ‘Publicar’ e o processo será iniciado.

janela de implantação

Isso levará algum tempo, então vou pausar meu vídeo aqui. O aplicativo foi implantado com sucesso e estamos prontos na janela 'Service Fabric Explorer'. Como você pode ver, o DNS do cluster é fornecido aqui.

explorador de tecido de serviço

E se eu for ver no 'DASHBOARD', tenho cinco nós em funcionamento com 1 aplicativo e 4 serviços. Os 4 serviços podem ser vistos no painel esquerdo. O primeiro serviço que quero ver é o NCache serviço. Isso representa o NCache servidores que estarão rodando dentro dos containers e que formarão o cache clusterizado. Então eu tenho o NCache Serviço Web Manager, isso representa uma GUI fácil de usar para uma Criação e Monitoramento de cluster de cache. Então eu tenho o NCache Discovery Service, que será responsável por adquirir os endereços IP dos NCache servidores e fornecê-los aos aplicativos clientes. Falando das aplicações cliente, temos o serviço de container cliente que representa um container que abriga duas aplicações diferentes, uma escrita em .NET Core e outro em Java. Agora vou entrar em detalhes de cada um desses serviços, por sua vez.

NCache Serviço de cluster

O primeiro que quero ver é o NCache Cluster Service e para isso vou voltar ao Visual Studio. Este é o ServiceManifest para o NCache Cluster Service, como você pode ver é um serviço de contêiner, que usa a imagem 'alachisoft/ncache'.

visual-studio3

Existem alguns Endpoints que registrei com o serviço de nomenclatura e são os seguintes: Temos o endpoint 'gerenciamento de cache', que expõe a porta 8250, na qual os servidores de cache estarão ouvindo solicitações de conexão. Nós temos o endpoint 'cache-client' que é, expondo a porta 9800. Todos os Operações CRUD são realizados através desta porta. Além destes, temos também os Endpoints 'bridge-management' e 'bridge-client'. Para esta demonstração, vamos nos concentrar apenas nos dois primeiros Endpoints mostrados aqui.

visual-studio4

NCache Serviço de Gestão

O segundo serviço que analisamos é o NCache Serviço de Gestão, que representa a GUI do Web Manager. Voltando ao Visual Studio, se eu for ao ServiceManifest para o NCache Web Manager Service, vemos que também é um serviço de contêiner que usa a mesma imagem que o NCache service e o Endpoint que registramos com o serviço de nomenclatura é 'web-management' e que expõe a porta 8251.

visual-studio5

NCache Serviço de descoberta

O terceiro Serviço é, obviamente, o NCache Serviço de descoberta e o ServiceManifest para isso é fornecido aqui.

tipo de descoberta nc

A NCache O serviço de descoberta é um ASP confiável e sem estado.NET Core API Web. Que consulta o serviço de naming e adquire os Endpoints que foram cadastrados pelo NCache serviço prestado aqui. Com os Endpoints recebidos do serviço de nomeação, o Discovery Service pode fornecer essas informações ao NCache clientes.

Serviços de aplicativos do cliente

O quarto serviço que temos em nosso aplicativo, é o Serviços de aplicativo cliente e para isso também temos estes ServiceManifest abertos e os Aplicativos Clientes, os .NET Core e o Java estão alojados dentro do mesmo container. cuja imagem é 'ncache/apps:sfclient'.

sfclient

O importante a notar aqui é que, com a NCache serviço e serviço ao cliente, estamos usando 'open config'. o NCache service tem o modo de configuração aberta, para permitir que os containers rodando em diferentes hosts se comuniquem entre si e assim formem o cluster de cache enquanto no container do cliente temos um NCache cliente e instalação que serão usados ​​pela GUI do Web Manager para adquirir os contadores do lado do cliente e poder monitorar o comportamento do cliente a partir da GUI.

Criar cluster de cache

A próxima parte a fazer é a criação real do cluster de cache e para isso vamos voltar à nossa janela do Service Fabric Explorer. A primeira coisa que vou fazer é confirmar que meu Service Discovery está funcionando. Para isso, darei o URI, que é composto pelo DNS clusterizado e a porta na qual o Discovery Service está escutando, que é 55100.

link do google

Se eu clicar em enter, vejo que os endereços IP e as portas associadas para cada Endpoint que foram registrados pelo NCache serviço, foram apresentados com sucesso. Se você observar atentamente, os endereços IP são os mesmos, conforme fornecidos pela Rede Virtual para esses nós do Service Fabric, como parte do pool de IP secundário.

endereço de IP

Agora que temos a descoberta de serviço em execução, vamos para o NCache Gerenciador Web. Novamente, forneceremos o DNS Clusterizado, seguido pela porta na qual ele está escutando, que é 8251 e isso nos leva à janela principal da GUI do Web Manager.

web-manager-gui

Agora vou demonstrar como é fácil criar um cache clusterizado e para isso tudo o que preciso fazer é clicar no botão 'Novo' mostrado aqui.

botão novo

Vou começar dando o nome do cache.

nome-cache

Mantenha todo o resto padrão. Usarei a partição de topologia de réplica com modo assíncrono.

assíncrono

Agora, neste ponto, vou fornecer os endereços IP desses servidores que comporão meu cache clusterizado. Então, primeiro eu vou dar o primeiro IP e o segundo 11. Com esses dois somados, podemos passar para a próxima fase.

endereço IP2

Mantenha todo o resto padrão e no final basta clicar em 'Concluir'.

acabamento

A Cache será criada, como pode ser visto na janela principal.

criado em cache

Agora que está criado, é hora de iniciá-lo e para isso podemos clicar na caixa de seleção ao lado do nome do cache e depois pressionar o botão 'Iniciar'.

começo

Agora que o cache foi iniciado, há algumas coisas que podemos ver agora. A primeira coisa que podemos fazer é olhar para a ferramenta 'Monitor' clicando no botão 'Monitor', enquanto a caixa de seleção está pressionada.

monitor

Isso abrirá outra janela e poderemos ver os painéis que compõem nossa Ferramenta de Monitoramento. A primeira coisa que você pode ver aqui é a 'Saúde do Cluster'. Vemos que temos 2 servidores, com as Partições Ativa e de Réplica, totalmente conectadas, como pode ser visto pela cor verde.

cache de cluster

Temos as quatro partições diferentes mostradas em um formato gráfico aqui também.

painel do servidor

Existem alguns contadores que podemos ver agora, incluindo 'Solicitações/segundo', 'Adições', 'Busca', 'Atualizações', 'Exclusões' etc. A 'Contagem' é 0, junto com todas as outras Contadores de operação CRUD porque ainda não há processos clientes conectados e os processos clientes, uma vez conectados, podem ser vistos no painel 'Processo do cliente', que mostrará o 'IP do cliente', o 'ID do processo' e o servidor ao qual está conectado . Este é o 'Painel do Servidor'. O outro dashboard que está disponível por defeito é o 'Client Dashboard' e aqui podemos ver os diferentes contadores, provenientes dos clientes e poder diagnosticar e monitorizar o comportamento do cliente.

painel do cliente

O terceiro painel que vem por padrão é o 'Report Dashboard', que mostra uma visão geral dos contadores de desempenho do lado do servidor e do cliente.

painel de relatório

Executar aplicativos cliente

Para ver as informações em ação, agora iniciaremos os aplicativos cliente. Então, agora começamos a executar nossos aplicativos clientes. Voltando à janela do monitor, tenho aqui o PowerShell aberto dentro do container do cliente e já estou dentro da pasta 'nettester', que contém os binários do .NET Core Aplicativo. Vou executar um comando batch que leva como parâmetros, o nome do cache, que é 'democache', bem como o URI do Cache Discovery Service, conforme mostrado aqui.

cmd

É composto pelo DNS clusterizado, bem como pela porta do Cache Discovery Service. Agora, se eu pressionar 'Enter', o cache será inicializado do lado do cliente e veremos alguma atividade na janela de monitoramento. Então, sem mais delongas e aqui vemos que o cliente conseguiu obter os endereços IP e o identificador de cache foi inicializado e isso pode ser confirmado no monitor de integridade do cluster, que mostra que o número de clientes aumentou em um.

janela de monitoramento

Também começamos a ver alguma atividade nos diferentes painéis associados às operações CRUD. Como as 'Adições', 'Busca', Atualizações' e 'Exclusões'. Assim como a atividade geral sendo mostrada com os 'Requests/sec'. Vemos que a 'Contagem' começou a aumentar à medida que o Cliente começou a colocar itens no cache e vemos no 'Processo do Cliente', novas entradas relacionadas ao processo do cliente. Vemos o 'IP do cliente' e o 'ID do processo' e vemos que o cliente está conectado aos dois servidores. Esse é um recurso específico para a partição e a partição da topologia de réplica conhecida como reconhecimento de cluster. Indo para o 'Client Dashboard', vemos alguma atividade aqui também e podemos ver que o Web Manager conseguiu obter os contadores do lado do cliente.

cliente-dashboard2

O 'Report Dashboard' oferece uma visão geral. Vemos que a instância por nó dos contadores de desempenho está sendo mostrada aqui nos servidores e também vemos a atividade no lado do 'Relatório do cliente' também vindo do lado do cliente.

relatório-painel2

Agora que conseguimos nos conectar com sucesso a partir do .NET Core Client, agora tentaremos nos conectar a partir do Java Client também. Então, assim como com o .NET Core Application, temos um arquivo em lote que executa o aplicativo Java aqui. Novamente, ele usa os mesmos parâmetros, ou seja, o nome do cache, bem como o URI do Serviço de Descoberta de Cache.

cmd2

Agora vou executar o programa e ver o que muda na janela de monitoramento. Então, eu pressiono 'Enter' e o aplicativo foi iniciado e inicializado com sucesso e vemos agora que agora existem 2 clientes conectados a cada um desses servidores.

janela de monitoramento2

Chegando aqui, vamos ver o que a atividade está mostrando. Primeiro de tudo, vamos olhar para o 'Contagem'. A 'Contagem' começou a aumentar, porque o número de clientes aumentou e ambos estão despejando dados no cache. As solicitações começaram a aumentar também, a taxa delas e aqui no 'Processo do Cliente', vemos que há 2 clientes mostrados aqui. Como eles estão sendo executados no mesmo contêiner, os IPs do cliente são os mesmos, mas os IDs do processo são diferentes e um vem de .NET Core e outro de Java. Se eu for para a janela principal outra janela, quero mostrar a janela 'Estatísticas'. O que dá outra visão do que está acontecendo? Para fazer isso, clicarei no botão de reticências e acessarei a guia 'Mostrar estatísticas'.

estatística

Também vemos aqui os contadores de desempenho por nó nesta janela. Os endereços IP são mostrados aqui. Portanto, conseguimos conectar nossos clientes a nossos servidores, todos no mesmo cluster do Service Fabric.

estatísticas2

Escala NCache Agrupar

Nesta última parte da demonstração, vamos demonstrar a adição em tempo de execução de Nós ao Cache Clusterizado e veremos que as adições não têm impacto no desempenho dos Aplicativos Clientes. Para isso, voltemos à nossa janela principal no 'Web Manager'. Para adicionar um terceiro Node, tudo o que precisamos fazer é clicar no link 'Exibir detalhes', conforme mostrado aqui.

cluster-cache2

Isso nos levará a outra janela e se chegarmos à seção Server Nodes, para adicionar um terceiro Node, tudo o que precisamos fazer é clicar no botão 'Add' mostrado aqui.

botão adicionar

Dê o endereço do terceiro servidor. Eu vou fazer isso aqui e vou dar aquele com 17 e o Node foi adicionado com sucesso.

nó_adicionado

Agora que está adicionado, temos que iniciá-lo e para isso basta clicar na caixa de seleção ao lado do endereço IP e clicar em 'Iniciar' e ele foi adicionado com sucesso.

start2

Voltando à janela principal, se atualizarmos este botão, vemos agora que existem 3 servidores e agora vamos ver o que acontece na janela de monitoramento. Da mesma forma que antes, clicamos na caixa de seleção aqui e clicamos na guia 'Monitor' e agora vemos que existem 3 servidores mostrados no painel 'Cluster Health' e estão totalmente conectados.

servidor-dashboard2

E no 'Processo do Cliente', temos 3 servidores diferentes fornecendo o pedido dos 2 clientes.

cliente-processo

E se você olhar na seção 'Contagem', a 'Contagem' foi balanceada entre os 3 nós.

seção de contagem

Isso mostra que a estratégia de balanceamento de carga empregada pela partição do cluster de réplica está em vigor.

Isso nos leva ao final de nossa apresentação. Vimos como podemos implantar NCache como um serviço em contêiner em um aplicativo do Service Fabric. Se você tiver alguma dúvida sobre NCache ou a apresentação que você acabou de assistir, não hesite em nos contatar em support@alachisoft.com. Obrigado.

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