utilização NCache no Red Hat OpenShift

Cluster Kubernetes, Docker e Linux

Red Hat Enterprise Linux. Você pode fazer isso para Java e .NET Core aplicações.

OpenShift é uma plataforma de aplicativos de contêiner de código aberto da Red Hat com base no orquestrador de contêineres Kubernetes para desenvolvimento e implantação de aplicativos corporativos.

Se sua aplicação for Java e/ou .NET Core rodando no Red Hat Enterprise Linux e OpenShift e você deseja usar NCache para melhorar seu desempenho e escalabilidade para cargas de transação de pico, tenha certeza de que NCache suporta totalmente este ambiente.

Assista a este vídeo para ver como é fácil implantar NCache como parte de seu cluster Red Hat OpenShift Kubernetes como uma implantação do Docker.

Hoje, vou demonstrar como você pode usar NCache na plataforma de contêineres Red Hat OpenShift. Como você sabe, o OpenShift é uma plataforma de contêiner oferecida pela Red Hat e é construída em torno de contêineres de aplicativos que são desenvolvidos pelo Docker, enquanto os serviços de orquestração e gerenciamento são fornecidos pelo Kubernetes.

Ele é baseado no Red Hat Enterprise Linux e hoje, mostrarei detalhes passo a passo para implantação e uso de NCache nesta plataforma. Então, vamos começar rapidamente com isso.

NCache desenvolvimento

Antes de mais nada, vamos revisar NCache implantação na plataforma de contêineres Red Hat OpenShift. Aqui está uma implantação típica de NCache na plataforma de contêineres Red Hat OpenShift. Estou mostrando um único cluster Kubernetes com diferentes implantações de aplicativos, bem como NCache implantação de cluster.

ncache-implantação-redhat-openshift
NCache Implantação no Red Hat OpenShift

Temos um Java Web App, que é novamente uma imagem do Docker implantada em diferentes Pods. Eu tenho um Java Web Service novamente mostrado por diferentes Pods. Esses aplicativos Java estão usando o cliente Java de NCache, enquanto eu tenho uma implantação separada para ASP.NET Core aplicativos, novamente usando uma imagem do Docker no Linux, mas isso está usando o .NET Core cliente para NCache comunicação. No que diz respeito à implantação do lado do servidor, ela está usando Imagem Docker baseada em Linux para NCache, que está disponível em nosso site e você sabe, você pode usá-lo no Red Hat Enterprise Linux como mostrado aqui e você sabe, você cria um cluster de cache usando diferentes Docker NCache Imagens disponibilizadas nesta plataforma e depois tenho esta Serviço de descoberta de cache e NCache Gateway de monitoramento remoto.

Então, este serviço de descoberta é um serviço headless dentro do Kubernetes, que você pode criar dentro do OpenShift e isso permite que todos os aplicativos clientes que você conhece simplesmente se conectem a si mesmos e então isso gerenciaria o roteamento e a descoberta de todos os recursos que fazem parte do cluster de cache. Por exemplo, eu não preciso saber sobre os endereços IP ou qualquer um dos detalhes sobre o Pod 10, 11 ou 12, eu simplesmente me conecto a este Serviço de Descoberta, que é um Serviço Nomeado e que por sua vez me encaminharia para todos os recursos dentro NCache cluster de cache. Da mesma forma, um Remote Monitoring Gateway também se conecta a este Serviço de Descoberta para permitir que as Operações de Monitoramento e Gerenciamento sejam executadas fora desse cluster Kubernetes por qualquer administrador do sistema e eu lhe darei uma demonstração prática sobre esses dois como realmente, ir e criar esses . Portanto, esta é uma implantação típica em que teríamos diferentes tipos de aplicativos se conectando a NCache em um único cluster Kubernetes.

Aqui estão os detalhes sobre a configuração do nosso ambiente de demonstração.

detalhes do ambiente de demonstração
Detalhes do ambiente de demonstração

Estou usando 2 NCache servidores para formular um cluster e usarei 2 aplicativos clientes para conectar a esse cache. O lado do servidor NCache A imagem do Docker é representada com esta tag 'enterprise-server-linux-5.0.1'.

detalhes do ambiente de demonstração2

Está disponível em nosso site, bem como em Hub do Docker. É a nossa mais recente versão 5.0 SP1 .NET Core versão, para que você possa usá-lo no Windows e no Linux, mas para esta demonstração usaremos o Linux. O aplicativo Java está usando o cliente Java de NCache e .NET Core aplicativo vai usar .NET Core cliente de NCache e estou usando Operações CRUD para representar o caso de uso do App Data Caching nesses aplicativos.

Implantação NCache Servidores

O primeiro passo é implantar NCache Servidores no OpenShift. Então, vamos começar rapidamente com isso. Estou logado no console web do Red Hat OpenShift e a primeira coisa que precisamos fazer é criar um projeto.

criar_projeto

Então, vamos criar um projeto vazio. Vamos nomeá-lo 'ncachedemo' e escolha 'Create' e depois disso vamos apenas criar um projeto vazio.

criar_projeto2

Não há implantações neste momento. Então, precisamos iniciar a implantação de NCache servidores e para isso posso navegar no catálogo ou posso usar um arquivo YAML pré-configurado que você deve ter para produção já casos de uso e você pode importar esse arquivo YAML. Então, vamos fazer isso e eu já tenho um arquivo YAML que eu usaria para NCache Implantação do lado do servidor. Aqui está. Então, é o tipo de implantação certo, o 'tipo' é 'Implantação', 'nome' é escolhido para ser 'ncache'. Vou usar duas réplicas e então tenho alguns detalhes da imagem do contêiner aqui. Então, a principal coisa que eu quero destacar é a Docker Image, que estou usando aqui.

yaml

Isto é NCache Enterprise Imagem do servidor Linux Docker, que está disponível no Docker Hub e você também pode obter uma referência disso em nosso página de download também. Então, se você for para NCache na página de download, você poderá ver esta imagem aqui. A imagem Linux do servidor de cache que está disponível no Docker Hub. Se eu clicar nele, isso me levaria diretamente para Hub do Docker e é daí que você pode extrair essa imagem. Portanto, há um comando geral de pull 'docker pull alachisoft/ncache' e a tag que estamos procurando especificamente é Enterprise Server Linux 5.0.1, e essa é nossa principal .NET Core Versão Linux que usaremos para esta demonstração.

docker_hub

A próxima coisa é o número de réplicas, que define o número de portas, serão 2 e esses são detalhes de todas as portas que estou usando para o meu NCache recipientes, que eu preciso estar aberto no mínimo.

yaml2

Estas são portas de gerenciamento e de conexão do cliente para NCache comunicação. Então, eu tenho este YAML, que eu iria em frente e importaria e depois clicaria em 'Criar' e isso automaticamente você saberia iniciar minha implantação de NCache Servidores.

redhat2

Como você já pode ver, dentro de Deployments eu tenho 'ncache' implantação e tenho '2 pods' que estão sendo criados e posso ver ainda mais o status desses Pods, estejam em execução ou não clicando nos 'Pods' e depois disso ele deve me mostrar o status atual que mostra-os funcionando e eles estão prontos também.

redhat3

Portanto, existem duas implantações de NCache que são disponibilizados. A propósito, tudo isso pode ser feito através do console da web, como mostrado agora, ou você também pode executar as ferramentas de linha de comando para ver melhor o status dos seus Pods em execução e, para isso, é necessário executar o comando 'oc obter cápsulas' e isso listará todos os Pods implantados aqui e você também poderá combinar os nomes 'r4f' e 'wx7' são os mesmos Pods que acabamos de criar.

ferramenta de linha de comando

Se eu quiser ver os endereços IP, também posso usar 'obter vagens -o largo' switch e isso me daria mais detalhes dos IPs desses Pods também. Então, temos .206 e .236 como dois Pods rodando com NCache server Image implantado neles.

ferramenta de linha de comando2

Serviço de descoberta de cache

Criaremos um serviço de descoberta de cache que nos ajudará a rotear todos NCache comunicação para Pods subjacentes e isso também foi discutido como parte de nossa implantação, onde tínhamos um serviço sem periféricos para gerenciar todas as comunicações de cliente para servidor para NCache e também usaremos isso para opções de gerenciamento e monitoramento para esse cluster de cache e também fora do cluster Kubernetes que temos.

Então, vamos ver como criar esse serviço de descoberta de cache. Agora, para criar o serviço de descoberta de cache, precisamos novamente de um arquivo YAML, que tenho aqui e se tivermos que percorrer o conteúdo deste serviço, é do tipo 'Serviço', chamei-o de 'cacheserver'. Você pode inventar qualquer nome. SessionAffinity deve ser definido como 'ClientIP'. Isso é para garantir que as operações de gerenciamento e monitoramento fora do cluster Kubernetes sejam aderentes a um dos pods a qualquer momento. Então, essa é uma etapa obrigatória, que você precisa configurar e, em seguida, simplesmente tem um mapeamento desse serviço nomeado para os pods subjacentes. Por exemplo, temos 8250 portas mapeadas a partir do serviço 2 Pods e a implantação que escolhi é NCache então isso cobriria tudo NCache Pods que já implantamos e então temos 8251 e depois a porta 9800. Então, as duas primeiras portas são para opções de gerenciamento e monitoramento e a porta 9800 é para comunicação cliente-servidor entre os aplicativos clientes que se conectam a NCache.

yaml3

Ok agora, vamos importar este YAML, através do nosso assistente e depois disso eu clicaria em 'Adicionar', 'Criar' e isso criaria automaticamente meu serviço de descoberta de cache. Como você pode ver, o 'POD SELECTOR' é 'ncache'. Então, isso é para NCache Pods e Service to Port Mapping sugerem que temos 8250, 8251 e 9800 mapeados com sucesso entre nosso serviço de descoberta de cache e todos NCache Pods. Então, isso conclui a configuração do serviço de descoberta de cache aqui.

criar-descoberta de cache
Criar serviço de descoberta de cache

Criar gateway de gerenciamento

O próximo passo é criar um Management and Monitoring Gateway para NCache implantações e isso nos permitiria gerenciar e monitorar NCache implantações fora desse cluster Kubernetes também e a maneira como isso funcionaria é que qualquer operação de gerenciamento executada seria roteada por meio desse gateway para esse serviço de descoberta de cache e, por sua vez, ajudaria você a gerenciar e monitorar todos os pods subjacentes também.

Então, vamos ver como configurar rapidamente esse gateway. Agora para criar o Management Gateway, preciso ir em 'Networking' e dentro dele temos 'Routes'.

criar-gerenciamento-gateway
Criar gateway de gerenciamento

Então, vou seguir em frente e criar nossa rota para esse serviço sem cabeça. Então, se eu clicar nele, você pode nomeá-lo qualquer coisa e com base nisso você só precisa selecionar o serviço e, neste caso, o serviço 'cacheserver' criado na etapa anterior deve ser selecionado. Ele apenas listaria todos os serviços aqui e você só precisa fornecer a porta de destino para Gerenciamento e Monitoramento.

redhat4

Neste ponto, vou usar apenas 8251 e clicar em 'Criar' porque é o que me permitiria criar, você sabe, gerenciar e monitorar NCache fora deste cluster Kubernetes também e este é o local de onde eu posso clicar e isso abriria automaticamente o NCache Acesso de gerenciamento da Web a um dos pods dentro NCache implantação e como você pode ver, eu tenho .3.236 IP aparecendo.

cache de cluster

Esses são alguns caches pré-configurados e se você notar esse é um dos Pods de dentro da minha implantação, onde me conectei. Assim, posso acessar totalmente o Pod subjacente e gerenciá-los. Uma coisa que quero mostrar aqui é o aspecto de afinidade da sessão, que é uma etapa obrigatória. Isso é novamente para garantir que, se você abrir um Pod para fins de gerenciamento, precisará ser fixo. Os comandos de gerenciamento devem ser aderentes a esse Pod certo. Então, para isso você precisa definir esse valor para 'ClientIP' e essa é uma das etapas obrigatórias que você precisa configurar.

Tendo passado por isso, se eu voltar ao portal de gerenciamento, posso ver claramente que estou conectado ao .236 e daqui posso realizar todos os tipos de operações de gerenciamento e monitoramento para NCache.

Criar cluster de cache

Neste ponto, nossa configuração de ambiente OpenShift para NCache está concluído e agora podemos prosseguir e criar um cluster de cache em seguida. Ok, dentro desta ferramenta de gerenciamento, vou clicar em 'Novo' e isso abrirá um assistente de criação de cache para mim.

criar-cache-cluster
Criar cluster de cache

Vou nomear meu cache, vamos chamar de 'democache'. Vou manter tudo padrão aqui, 'Partition of Replica' e fornecer o primeiro IP que é dado automaticamente e preciso do IP do segundo Pod que posso copiar daqui e colar aqui e depois escolher sobre isso clique sobre isso sinal de mais (+) e isso especificaria o segundo Pod. Novamente, mantenha tudo padrão nisso. Os parâmetros são os mesmos e então eu 'Inicio este cache ao terminar' e escolho 'Concluir' e isso iria em frente e criaria meu cluster de cache. Então, com esses dois Pods, usando o NCache Ferramenta de gerenciamento da Web, agora posso criar um cluster de cache e usar o Web Manager da minha própria caixa aqui. Se eu clicar em detalhes aqui, também posso ver mais alguns detalhes no que diz respeito aos aspectos de monitoramento e também posso ver as estatísticas desse cluster de cache. Assim, assim que carrega, você pode ver que existem parâmetros diferentes. Podemos ver 'Cluster Health', que está totalmente conectado e podemos ver alguns outros gráficos aqui também.

saúde do cluster

Não há nenhum cliente conectado neste momento, então não estou vendo nenhum processo cliente ou nenhum dos clientes mostrados na integridade do cluster, mas assim que eu implantasse e executasse meus aplicativos cliente, eu realmente veria os processos cliente, uma vez que eles conectar a NCache aqui embaixo, bem como do outro lado também. Nosso NCache O cluster de cache está criado e pronto para ser utilizado.

Implantar e executar aplicativos cliente

A próxima etapa é implantar e executar aplicativos cliente no OpenShift, que usarão esse cluster de cache. Novamente, vou carregar o arquivo YAML para implantação do cliente e aqui temos, onde temos um rótulo como 'multicliente' e novamente é uma implantação separada.

yaml4

Eu tenho uma imagem do Docker que teria um .NET Core bem como o aplicativo Java em execução dentro deste contêiner. Então, eu usei um contêiner para hospedar dois aplicativos diferentes, mas você também pode ter contêineres separados aqui. Então, dentro do meu mesmo projeto, se eu clicar aqui, eu tenho NCache com dois pods e se eu clicar em 'Adicionar' e importar meu YAML de implantação de cliente, posso ir em frente e criar isso e isso criaria automaticamente um contêiner separado, implantação separada para meus aplicativos cliente. Se eu voltar aos projetos e agora, temos duas implantações diferentes, temos 'multiclient' com 1 Pod e temos 'ncache' com 2 Pods, que fizemos como parte NCache configuração do lado do servidor.

redhat5

Então, se eu for aos Pods, novamente terei o contêiner de status criando e, se eu executar esse comando novamente, isso me daria a lista de todos os Pods junto com seus endereços IP. Anteriormente tínhamos 236 e 206 e agora temos 47 adicionados também, certo. Então, esse é o pod de implantação do cliente e aqui está o ID disso. Agora, se eu ver rapidamente se há algum aplicativo atualmente em execução nesta implantação neste pod, se eu executar esse comando bem rápido, tudo o que verei é o NCache Service Daemon, 'startup.sh' para este contêiner. Alachisoft.NCache.Daemon.dll começa com NCache Service Process e que temos um Web Manager Process.

cmd

Portanto, nenhum aplicativo cliente está sendo executado neste ponto a partir deste contêiner e isso é o mesmo que você pode ver aqui também, onde não temos nenhum cliente conectado. Então, vamos executar um aplicativo Java a partir desse cliente. Eu vou executar isso. Estou executando o nome do cache que é 'democache', esse é o nome para conectar.

cmd2

Não preciso de nenhum endereço IP aqui, em vez disso, preciso do serviço headless para descoberta. Lembre-se que criamos um serviço de descoberta, então eu preciso voltar para 'services', pegar o nome e o nome era 'cacheserver' e tinha o mapeamento de porta deste serviço para todos os Pods subjacentes. Com NCache client, temos essa lógica integrada onde ele se comunica com esse serviço nomeado e, a partir desse serviço, descobre automaticamente todos os Pods subjacentes na plataforma OpenShift Kubernetes. Então, se eu especificar o nome deste serviço, nosso NCache cliente é inteligente o suficiente e se conectaria automaticamente e formularia a configuração de cliente para servidor totalmente conectada com NCache cacho. Então, este aplicativo está sendo executado agora e se eu trouxer de volta o aspecto de monitoramento disso, agora posso ver um cluster totalmente conectado com um cliente adicionado e você já pode ver a atividade do cliente mostrada em adições/s e temos atividade dentro do console também e podemos ver que as operações CRUD estão sendo executadas no meu cluster de cache no OpenShift.

Agora, se eu olhar para os processos do cliente, tenho 47 IPs mostrados, que estão conectados a 236 e a 206. Então, com o serviço headless, a descoberta foi bem-sucedida e foi capaz de se conectar a todos os Pods subjacentes sem nenhum questões.

painel do servidor

Certo, então você também pode ver que os aspectos de monitoramento e gerenciamento também estão funcionando perfeitamente. Agora, se eu executar o mesmo comando mais uma vez, mostrarei os processos em execução nessa implantação de cliente neste Pod. Então, se eu copiar isso, agora você deve ver um aplicativo Java usando NCache Cliente Java rodando como parte disso também. Então, além de NCache Service no Web Manager, agora temos uma aplicação Java rodando que está usando este 'democache' com o 'cacheserver' como parâmetro do servidor para conexão.

Então, é tão simples executar um aplicativo Java com NCache tudo no Kubernetes usando a plataforma OpenShift.

O próximo passo é executar o .NET Core aplicação e para isso eu iria em frente e executaria o .NET Core cliente, que faz parte do mesmo contêiner no lado do cliente.

Então, as etapas são as mesmas para mim e se eu executar isso bem rápido, isso lançará nosso .NET Core cliente para conexão com NCache e, novamente, preciso de 'democache' e 'cacheserver', que é o serviço de descoberta sem periféricos para conexão com Pods subjacentes. Então, o segundo cliente seria executado e você veria os processos do cliente aumentando. Agora temos um processo cliente separado conectado a NCache e se eu voltar aqui, nós temos 2 clientes conectados e nós temos todos os parâmetros, todos os contadores mostrando atividade, que está aumentada na sua capacidade né. Então, temos mais Adições/segundo. As buscas/segundo também aumentaram.

servidor-dashboard2

Atualizações/segundo aumentaram, certo. Assim, todos os valores são aumentados com a carga recém-adicionada e você pode ver 'Client Dashboard', onde temos clientes mostrando toda a atividade.

painel do cliente

então, NCache O gerenciamento e monitoramento está funcionando perfeitamente mesmo para implantações de clientes, você só precisa abrir as portas, como fizemos para o NCache servidores e aqui está uma exibição de relatório do mesmo, onde temos contadores do lado do servidor no relatório e, em seguida, temos os contadores do lado do cliente de nossos pods de implantação do cliente.

painel de relatório

Dimensionamento NCache Agrupar

A próxima coisa que vou demonstrar é 'Scaling Out your NCache cluster de cache' na plataforma OpenShift. Isso ajudará você a aumentar a capacidade de tratamento de solicitações em NCache e isso também em tempo de execução.

Vamos rever como fazer isso. Agora, para aumentar a capacidade, adicione mais Pods a esta implantação. Eu vou para 'Implantações'.

redhat6

Existem várias maneiras de fazer isso. Como você pode ver atualmente, temos 2 Pods para NCache. Então, para adicionar outra instância a isso, eu tenho uma opção para 'Editar' a contagem aumentar para 3 e depois 'Salvar' isso e isso automaticamente o criaria. Então, esse é o mais fácil.

redhat7

Outra opção é 'Editar' sua implantação e fornecer o arquivo YAML e aumentar a contagem de 'réplicas' que inicialmente definimos como '2', aumentar para 3 e recarregá-lo e isso o implantaria automaticamente ou apenas salvá-lo, ele iria em frente e fazê-lo.

redhat8

Você também pode usar a linha de comando, então vou usar isso por enquanto e escolher 'Salvar' e isso deve ser suficiente para criar outro Pod usando a imagem do contêiner Docker que tenho e agora devo ver outra réplica desse contêiner sendo criado e está totalmente em execução. É muito rápido no OpenShift e se eu executar o 'oc obter cápsulas' comando eu deveria ser capaz de ver outro endereço IP adicionado a ele, é 13.242. Então, eu tenho a implantação do cliente para existente NCache implantações de servidor Pod e, em seguida, nessa implantação, adicionei 242 também. Então, meu OpenShift Pod está disponível, só preciso voltar ao 'Gerenciamento' e adicioná-lo no meu cluster de cache também porque o Web Manager está disponível. Então, eu só preciso copiar esse endereço IP, escolher 'Adicionar' e isso me permitirá adicionar esse IP e escolher ser adicionado no cache, pronto. Ele é adicionado e, se eu clicar com o botão direito do mouse e escolher 'Iniciar', isso ingressará no cluster de cache em tempo de execução. Não preciso interromper nenhum aplicativo cliente, não preciso interromper o cache em execução. Então, meu cluster de cache em execução se juntou a este nó e lá está ele já começou a ver atividade também porque os aplicativos ainda estavam em execução, então eu tenho ativos e backups criados dentro NCache cluster e 242 está totalmente associado ao cluster de cache e participa do tratamento de solicitações.

relatório-painel2
Painel de relatórios

Assim, minha capacidade de tratamento de requisições foi aumentada porque agora temos 3 servidores hospedando o cache no OpenShift ao invés de 2. Está totalmente conectado. Você pode ver Solicitações/s, 242 está unido em todas as operações e está mostrando atividade completa e, se voltarmos aos 'Processos do cliente', eles também estão conectados a 242 porque novamente está usando o serviço headless para descoberta.

servidor-dashboard3

Portanto, o que quer que você adicione nessa implantação, esse serviço corresponderá, você sabe a rota para isso. Então, temos todos esses servidores totalmente integrados e funcionando perfeitamente. Então, é fácil dimensionar seu cluster de cache na OpenShift Platform e com o Red Hat ele oferece suporte para que você possa utilizar NCache como parte disso.

Isso nos leva ao final do nosso vídeo. Demonstramos com sucesso como você pode implantar NCache no Red Hat OpenShift Platform e como é fácil de usar NCache de dentro do seu Java e .NET Core formulários. Também analisamos a eficácia com que você pode gerenciar e monitorar seus NCache Implantações no OpenShift. Eu espero que isso tenha sido útil. Por favor, compartilhe seus comentários ou perguntas conosco em Alachisoft ajuda support@alachisoft.com. Obrigado!

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