Desenvolvendo Microsserviços e Serviços de Aplicativos do Azure com NCache

Webinar gravado
Por Ron Hussain e Adam J. Keller

Otimize o desempenho e a escalabilidade de seus aplicativos de nuvem do Azure para serem executados sob carga máxima. Use um repositório de dados rápido, escalonável e comum para melhorar a experiência do aplicativo de serviço do Azure sem perda de dados ou sessão.

Este webinar demonstra como integrar os Microsserviços do Azure e os Serviços de Aplicativos com um cache distribuído .NET na nuvem.

Cobriremos:

  • Introdução aos microsserviços e serviços de aplicativos do Azure
  • Usando pacotes NuGet para NCache recursos do aplicativo cliente
  • Fazendo NCache Chamadas de API dos Serviços do Azure
  • Criando e implantando um cache distribuído no Azure
  • Usando o cache para os Serviços do Azure
  • Monitorando o cache que está executando os Microsserviços e Serviços de Aplicativos do Azure

O tópico que selecionamos hoje está usando NCache que é o principal sistema de cache distribuído dentro dos serviços do Azure. Meu foco principal hoje serão os microsserviços do Azure. Vou falar sobre alguns detalhes de arquitetura de microsserviços. Vou falar sobre alguns detalhes sobre porque você precisa de cache distribuído em micro serviços, quais são as limitações e depois falarei também sobre serviços de aplicativos projetos de serviços de aplicativos web do Microsoft Azure, onde seus aplicativos web também podem precisar de um sistema de cache distribuído para manipulação de dados, para sessões, cache de saída. Então, esses tipos de recursos eu vou destacar. A agenda principal que abordarei hoje, a parte prática deste webinar, se concentrará na arquitetura de implantação. Como exatamente um cache distribuído é implantado e como exatamente seus aplicativos precisariam se conectar a ele.

Microsserviços e serviços de aplicativos do Azure

Então, primeiro vou falar sobre alguns detalhes introdutórios sobre os microsserviços e serviços de aplicativos do Azure

O que é um microsserviço?

O que é um microsserviço? Então, esse é um termo muito comum que ouvimos muito nos dias de hoje. É uma plataforma e está sendo oferecida pelo Microsoft Azure. Existem alguns AWS e alguns provedores de terceiros também. Normalmente, eu nomearia apenas Akka.NET, que também é uma plataforma muito popular no Java e, em seguida, eles a colocaram no .NET também. Um microsserviço é uma plataforma que encapsula os cenários de negócios do cliente e cuida de certos problemas que o cliente está tendo dentro do aplicativo. Assim, poderia ser desenvolvido por uma pequena equipe de engenharia. Pode ser escrito em qualquer linguagem de programação.

Pode ser stateful, pode ser stateless, mas é algo independente dentro do aplicativo. Portanto, ele pode ser versionado de forma independente, implementado, implantado e, em seguida, o bom da arquitetura de microsserviço é que pode ser dimensionado, independentemente. Você não precisa dimensionar um aplicativo inteiro. Se uma parte dentro do aplicativo atende a essas características, você pode implementá-la apenas como um microsserviço. Seu aplicativo pode usá-lo como um recurso de microsserviço e, em seguida, você pode dimensionar essa parte específica sem precisar se preocupar com toda a escalabilidade do aplicativo. Assim, oferece uma abordagem mais granular para diferentes segmentos dentro do aplicativo.

Destaquei dois pontos comuns aqui: seus microsserviços são protocolos de interface bem definidos e também interagem com outros microsserviços. E, então, eles têm nomes exclusivos, algo que você obtém no Microsoft Azure e precisam permanecer consistentes e disponíveis em caso de falhas. Então, essa é outra característica importante de um microsserviço. Isso é algo que eu copiei do site Microsoft MSDN. Então, e tenho certeza que todo mundo sabe o que é microsserviço. Então, isso deve abranger alguns detalhes básicos sobre microsserviço, certo?

Malha de Serviço do Microsoft Azure

Aqui está o diagrama em que seu tipo de aplicativo tem um tipo de serviço que pode ser com estado ou sem estado. Eu já cobri isso.

tecido de serviço microsoft-azure

Há outro tipo de aplicativo que também pode ter seus próprios microsserviços e, em seguida, pode estar conversando com algumas fontes de dados de back-end para código, para configurações. Pode estar chamando um serviço da web. Ele também pode ter alguns dados que ele precisa acessar e então eles são, você sabe... Esta é apenas uma idéia de como os microsserviços são arquitetados. Pode haver vários aplicativos e cada aplicativo pode ter vários microsserviços, que, por sua vez, são um cluster de servidores, clusters de instância. Você pode ter partições dentro do microsserviço. Isso é principalmente um microsserviço com estado. Se você tiver vários microsserviços, poderá optar por microsserviços com ou sem estado.

microsoft-azure-service-fabric-2

Se forem microsserviços com estado, você terá partição de dados e, em seguida, haverá réplicas de outra partição. Portanto, se alguma partição cair, você terá o backup disponibilizado automaticamente. Então, isso faz parte do Microsoft Azure, isso também faz parte da arquitetura de microsserviços e é isso que a Amazon também oferece, Akka.NET que também tem o mesmo tipo de formato de pergunta. Então, microsserviço é algo que fornece estado dentro de si mesmo dentro de sua arquitetura por padrão. Então, vou destacar onde exatamente você precisa de um cache distribuído como NCache. Por que exatamente você precisa de um cache distribuído e existem alguns gargalos, existem alguns problemas que o cache distribuído ajudará a resolver como parte deste webinar, que abordarei.

Introdução aos Serviços de Aplicativo Web do Azure

Em seguida, falarei também sobre os serviços de aplicativos Web do Azure. É mais fácil implantar aplicativos Web no Microsoft Azure.

introdução-ao-azure-webapp-services

Você não precisa ter uma VM inteira. Na verdade, reduz o tempo de DevOps, a quantidade de experiência necessária, o tempo que leva, é algo que é gerenciado. Assim, você pode simplesmente obter um aplicativo baseado em instância implantado no Microsoft Azure. É um ambiente dedicado totalmente isolado para seus aplicativos. Você pode escalá-lo. Você pode hospedar vários aplicativos. Pode ser seus aplicativos móveis, web ou pode ser seus aplicativos de funções, o que for necessário neste momento, você pode usá-lo usando nosso modelo de serviço de aplicativo web do Microsoft Azure.

E, então, é altamente escalável, já mencionei que o isolamento é garantido. Você obtém um acesso seguro à rede e também pode usar alta utilização de memória e outros recursos necessários. E essa é uma transição que a maioria das implantações está fazendo onde você realmente, em vez de ter toda a VM hospedando seu aplicativo em um formulário da Web ou um cenário de jardim da Web em que você precisa gerenciar toda a VM, pode ter uma abordagem baseada em instância onde o aplicativo baseado em serviço pode ser implantado e pode ser um aplicativo MVC típico que pode usar sessões, que pode usar chamadas de banco de dados. Portanto, todos os tipos de conceitos comuns relacionados a aplicativos da Web MVC, mas é apenas que a implantação é um pouco diferente.

Cache distribuído

Agora que definimos os microsserviços do Azure e os serviços de aplicativos Web do Azure, certo? Portanto, o microsserviço no Microsoft Azure é um projeto de malha de serviço, enquanto os serviços de aplicativo Web são um projeto de serviço de aplicativo. Então, vou destacar detalhes sobre isso e falarei sobre a peça de rede que você precisa para usar no cache distribuído.

O que é um cache distribuído na memória?

Primeiro, falarei sobre os conceitos de cache distribuído em geral.

o que é cache distribuído de memória

O que é um cache distribuído? Um cache distribuído é um cluster de serviço de cache barato que são agrupados para memória e seus recursos para o poder de computação e, em seguida, seu poder de armazenamento e, no caso do cache distribuído, é a memória que apresenta o armazenamento principal. Assim, você agrupa todos os recursos de memória em uma capacidade lógica.

Em seguida, você pode sincronizar suas atualizações de cache em todos os servidores de cache. Por exemplo, qualquer atualização aplicada em qualquer servidor é aplicada em todos os servidores de cache. Portanto, o cache distribuído é um cluster de vários servidores de cache baratos que são unidos em uma capacidade lógica. Você tem vários servidores no Microsoft Azure, eles serão VMs. Então, NCache é implantado em uma máquina virtual. Esta é a opção de implantação atual. NCache também pode ser implantado no docker, certo? Então, essa é outra opção de implantação. Portanto, o servidor de cache em execução em uma VM, mas será tratado como um recurso separado no Microsoft Azure e essa é a implantação típica, tanto quanto NCache configuração do lado do servidor está em causa.

A próxima característica de um cache distribuído é que você deve ter todas as atualizações de cache sincronizadas em todos os servidores de cache. Você pode ter 2 3 4 servidores de cache e eles devem ter uma visão consistente dos dados. Os dados devem ser visíveis como um mesmo estado para todos os aplicativos que estão conectados a eles.

E, então, poderia escalar linearmente para memória e transações à medida que você aumenta sua capacidade, precisa de mais armazenamento, mais recursos, pode simplesmente introduzir mais e mais servidores de cache e deve crescer linearmente. E .. então a replicação é outra parte dela que deve replicar dados, para qualquer dado que seja adicionado se o servidor cair, ele deve ser replicado automaticamente. A replicação deve ser feita com base na operação e os dados devem ser disponibilizados se um servidor ficar inativo.

Então, essas são algumas características comuns do cache distribuído.

O armazenamento de dados é um gargalo de escalabilidade

Normalmente, seus aplicativos, sejam serviços de aplicativos, microsserviços, podem estar conversando com algumas fontes de dados de back-end. No Microsoft Azure, você pode ter uma instância de servidor de sequência que pode estar na mesma rede V ou em uma rede V cruzada, mas ainda fala com o servidor de banco de dados.

armazenamento de dados é gargalo

Portanto, pode ser lento, pode não ser muito escalável. Portanto, faz mais sentido introduzir também uma camada de cache distribuído no Microsoft Azure. E também falarei sobre casos de uso em relação a serviços de microsserviços no aplicativo.

NCache desenvolvimento

Esta é uma implantação típica de NCache.

ncache implantação no Azure

Portanto, no Microsoft Azure, você teria VMs que seriam dimensionadas horizontalmente, bastaria criar uma rede virtual, criar VMs e instalar NCache nessas VMs ou use nossas imagens do Azure ou AWS. Então, para falar e, em seguida, seus aplicativos podem conectar microsserviços, aplicativos de API, aplicativos típicos hospedados IIS em outras VMs ou podem ser serviços de aplicativos que todos podem se conectar a isso e isso economiza viagens às fontes de dados de back-end. Essa é a ideia geral de uma implantação típica de NCache e revisitarei isso assim que passarmos para nossa implantação de microsserviços e serviços de aplicativo do Azure. Na nuvem isso mudaria um pouco. Então, vamos falar sobre isso.

Três usos comuns de NCache

OK! este é o slide mais importante deste webinar. Quero destacar onde exatamente você estaria usando um cache distribuído nos serviços do Microsoft Azure, certo? Então, normalmente falamos sobre aplicativos da web, serviços da web, aplicativos de back-end, serviços de janela, que precisam acessar dados de uma fonte centralizada e precisam de um repositório muito rápido. Então, esse é um caso de uso típico. No Microsoft Azure, você já tem uma plataforma muito escalável. Seus aplicativos podem escalar linearmente e esse é o caso típico com formulários da web e jardim da web também.

Portanto, listei alguns casos de uso importantes que você pode usar no Microsoft Azure para serviços.

Cache de dados do aplicativo

Em primeiro lugar, você pode usá-lo para cache de dados e isso se aplica aos microsserviços do Microsoft Azure e também aos serviços de aplicativo. Se houver serviços apátridas, certo? Porque os serviços com estado exigiriam seu próprio conjunto de particionamento e, então, você também teria réplicas, mas os sem estado não teriam réplicas. Então, um aspecto importante é que você tem um aplicativo sem estado, mas ainda quer ter confiabilidade de dados, certo? Então, nesse caso, você pode colocar os dados em um cache distribuído. O cache distribuído por design pode cobrir o aspecto de replicação e o aspecto de alta disponibilidade. Assim, seus dados seriam disponibilizados mesmo para os microsserviços sem estado.

E o próximo benefício pode estar no microsserviço ou no serviço de aplicativo, se houver um aplicativo da Web, ele pode se comunicar com uma fonte de dados de back-end, como o servidor SQL. Portanto, o SQL Server é lento. Não é algo que possa lidar com uma enorme carga de transação. Em resposta a isso, um cache distribuído pode ter vários servidores, que são dimensionados linearmente e são unidos em uma capacidade lógica, certo? Assim, você pode adicionar mais e mais servidores rapidamente. E, no Microsoft Azure, é muito simples gerenciar isso. Você pode apenas gerar uma nova VM e dobrar sua capacidade à medida que adiciona mais e mais servidores de cache. Então, o caso de uso de cache de dados, primeiro de tudo na memória. Portanto, é super rápido em capacidade de banco de dados e, portanto, é uma plataforma muito escalável, mesmo no Microsoft Azure, em comparação com seu servidor Microsoft SQL. Portanto, esses são dois benefícios que você obtém nos serviços de aplicativo do Microsoft Azure e no caso de uso da Microsoft. Você só precisa apresentar NCache chamada de API e você continua adicionando dados em um par chave-valor.

Cache específico do ASP.NET

O segundo caso de uso é específico dos serviços de aplicativos Web da Microsoft. É em relação ao cache específico do ASP.NET. Então, se você tem um serviço de aplicativo, você pode usar NCache, onde seu serviço de aplicativo fala NCache para sessões, bem como para dados de cache de saída. A propósito, ele também pode usar a API de cache de objeto porque esse caso de uso também se aplica aos serviços de aplicativo ASP.NET. Portanto, seu estado de sessão normalmente fará parte da mesma instância de serviço de aplicativo que exige que você precise de um balanceamento de carga de sessão fixo ou pode fazer parte do banco de dados. De qualquer forma, se for uma sessão fixa, é limitada onde você precisa ter balanceamento de carga fixo, que é a opção padrão. E, então, no lado do banco de dados, novamente será lento e também será o único ponto de falha.

Com serviços de aplicativo, usando NCache como provedor de sessão, antes de tudo, é muito escalável. É extremamente rápido e não haveria nenhum ponto único de falha. As sessões são replicadas em servidores, então é aí que você obtém uma vantagem em que deve considerar o uso de um cache distribuído para seus aplicativos ASP.NET. E, então, isso também pode ser implantação em vários sites e isso é algo que eu planejo cobrir hoje também, onde teríamos um aplicativo implantado em um site conversando com servidores de cache no mesmo site e, em seguida, ele tem a capacidade de conversar para servidores de cache no site também. E vou destacar quais configurações são necessárias dentro do Azure, mas isso é impossível dentro NCache ofertas de cache distribuído no Microsoft Azure.

O segundo caso de uso é em torno do cache de saída, certo? Portanto, você pode usar suas páginas estáticas em um serviço de aplicativo em um aplicativo da Web implantado como um serviço de aplicativo. Se houver páginas estáticas, você armazena em cache o conteúdo dessas páginas. A saída da página inteira pode ser armazenada em cache e você pode usar essa saída da página na próxima vez que precisar acessar a mesma página. Então, esse é outro benefício. Isso é algo que abordo em nosso webinar típico de desempenho e escalabilidade do ASP.NET, onde falo sobre quatro maneiras diferentes de otimizar o desempenho do ASP.NET. Portanto, o mesmo conceito seria aplicado aos serviços de aplicativo do Microsoft Azure, onde um aplicativo Web é implantado como um serviço de aplicativo.

Compartilhamento de dados do Pub/Sub e do ambiente de execução

Agora, terceiro caso de uso importante e essa é a parte mais importante quando se trata de microsserviços. Embora também se aplique a serviços de aplicativos. Seus serviços de aplicativo podem precisar de compartilhamento de dados diretamente de um serviço de aplicativo conversando com outro serviço de aplicativo ou podem ser dados compartilhados entre dois aplicativos diferentes. Portanto, existem aplicativos da Web que são de natureza diferente, mas dependem dos mesmos dados. Pode haver um aplicativo de relatórios e pode haver um consumidor disso, ou pode haver um produtor em termos de catálogos de produtos e então há outro aplicativo que precisa depender disso, precisa gerar alguns relatórios com base no primeiro aplicativo . Portanto, esse caso de uso exige que seus aplicativos compartilhem dados entre si. Portanto, não há como usar o banco de dados para compartilhar dados, mas isso é lento e também é um ponto único de falha em alguns casos. O cache distribuído faz mais sentido porque seus aplicativos podem se conectar a ele em um modelo cliente-servidor. Vários aplicativos podem se conectar à mesma camada de armazenamento em cache e, em seguida, podem usar os mesmos recursos de cache e obter acesso aos mesmos dados e isso é algo que você pode ativar.

Nos microsserviços do Azure, precisamos levá-lo a outro nível. Nos microsserviços do Azure, embora sejam clusterizados e eu já mencionei que lá eles podem ser com estado e sem estado, certo? Pode haver um requisito e isso é algo que eu mencionei que seus microsserviços podem precisar interagir com os microsserviços também, certo? Portanto, por design, a arquitetura de microsserviços exige que suas instâncias de serviço precisem interagir umas com as outras e, em seguida, talvez precisem compartilhar dados entre si. E esse é um requisito essencial no que diz respeito à plataforma de microsserviços. Simplesmente precisamos que várias instâncias de aplicativos compartilhem dados entre si. Um microsserviço enviando alguns dados e está disponível para outras instâncias de microsserviços, se for um estado ou você pode ter vários aplicativos interagindo nas mesmas linhas, mas dentro de dois microsserviços isso é algo obrigatório e, portanto, muitos provedores de terceiros são fornecendo compartilhamento de dados e modelo pub/sub como parte de suas ofertas, certo?

Portanto, no Microsoft Azure, se houver um requisito em que você precise ter o compartilhamento de dados manipulado onde um aplicativo fala com uma loja e possui dados necessários para outro aplicativo, outra instância de microsserviço, então você precisa de uma plataforma para lidar com isso e NCache oferece aquela plataforma onde os dados são disponibilizados de forma centralizada. É um repositório extremamente rápido. É extremamente escalável em cima dele, várias instâncias de microsserviço, serviços diferentes ou instâncias dos mesmos serviços podem se conectar a esse cache e, em seguida, podem usar recursos de compartilhamento de dados dele. Assim, os dados estão disponíveis centralmente de maneira mais rápida.

Em seguida, temos o modelo pub/sub baseado em tópicos. Temos plataforma de mensagens fora dele. Portanto, uma mensagem pode ser enviada, pode ser mensagens orientadas a dados ou mensagens orientadas por aplicativos ou mensagens baseadas em tópicos, onde o aplicativo produtor e essa é uma instância do microsserviço que envia dados para o cache e, em seguida, essa mensagem é transmitida para todos os destinatários neste lado do assinante. E, da mesma forma, os assinantes também podem ser produtores em alguns casos. Portanto, você pode usar mensagens pub/sub entre várias instâncias de microsserviço do Azure. Também pode ser o compartilhamento de dados orientado a eventos entre várias instâncias. E, além disso, temos a notificação de eventos e o sistema de consulta contínua. Pode ser um comando SQL e com base nisso você pode definir um conjunto de dados novamente em relação ao qual você pode obter mensagens orientadas a dados disso. Portanto, esse é o caso de uso que você consideraria usar o cache distribuído do Microsoft Azure dentro dos Microsserviços do Microsoft Azure.

NCache Cenários de implantação no MS Azure

Em seguida, falarei também sobre os serviços de aplicativos Web do Azure. É mais fácil implantar aplicativos Web no Microsoft Azure.

cenários de implantação

Tudo bem. Então, agora temos dois tipos de cenários certos. Então, teríamos tudo implantado em uma única região em um único site dentro do mesmo grupo de recursos ou dentro da mesma rede virtual de preferência, certo? Então, eu já discuti isso NCache será implantado em VMs no Microsoft Azure, enquanto seus aplicativos podem ser VMs acessando essas VMs de NCache ou podem ser serviços do Azure e nos concentraremos nos serviços do Azure hoje. O caso de VM é muito típico em que você gera uma VM, vai para o iAS, hospeda seu aplicativo lá e, em seguida, faz com que seu aplicativo se conecte a NCache utilização NCache APIs ou provedor de armazenamento de sessão. Mas, quando se trata de serviços, você precisa fazer alguma configuração de rede. Então, que seu serviço fale com NCache.

Portanto, temos implantação de site único onde seus serviços do Azure e NCache são implantados na mesma região no mesmo site. Portanto, ao implantá-lo, seu serviço do Azure precisa anexá-lo ao mesmo grupo de recursos e também à mesma rede virtual. Então, essa é a abordagem recomendada. Você não precisaria de nenhum intermediário. Não haveria saltos múltiplos não retardaria as coisas. Então, esse é o cenário recomendado para o nosso site.

Segundo cenário, esse também é um cenário muito válido que você pode ter vários sites, certo? Ainda recomendamos que seu cache e seus aplicativos, seus serviços de aplicativos de microsserviços estejam sempre na mesma região em que devem poder se conectar uns aos outros. Desde a NCache é um protocolo TCP-IP. Então, ele usa endereços IP e portas para toda a comunicação e essas são portas TCP-IP. Portanto, ele precisa ser implantado de forma que seus aplicativos estejam próximos. Eles são implantados em combinação um com o outro. Eles estão próximos, não são lúpulos diferentes disponíveis. Portanto, recomendamos que seu cache seja implantado no mesmo site em que seus aplicativos estão, mas pode haver um cenário em que você esteja usando recursos de vários sites. Onde seu aplicativo pode precisar conversar com o cache em outro site ou seus caches precisam conversar entre si. Então, precisamos de comunicação site a site acontecendo entre NCache tão bem.

Então, essa é a agenda que estarei cobrindo nesses dois cenários. Cenário 1 é recomendado que tudo esteja nos singles mais próximos da sua aplicação. O cenário dois é que você pode ter vários sites e seu aplicativo do site um fala com os servidores de cache no site dois ou pode ser servidores de cache. Por exemplo, para o recurso de replicação de WAN, você pode fazer uma ponte entre os caches do site um e do site dois.

Cenário 1: Implantação de Site Único para Serviços do Azure e NCache (Recomendado)

Portanto, na implantação de site único para os Serviços do Azure, abordarei algumas etapas detalhadas sobre isso. Vou falar sobre desenvolvimento de aplicativos, como você introduz NCache chamadas dentro de sua aplicação e usaremos um projeto de serviço para isso como exemplo de referência. Tudo bem. Então, este é o diagrama que deve cobrir todos os detalhes que pretendo cobrir neste webinar.

implantação de site único-ncache-azul

Eu já mencionei isso NCache servidores serão VMs no Microsoft Azure. Certo? Então, você precisa cuidar da rede virtual que suporta essas VMs e depois NCache precisa ser instalado neles e, em seguida, seus aplicativos da Web, que são implantados como serviços de aplicativos, podem ser aplicativos de API ou aplicativos de microsserviço, certo? Todos eles são instâncias de serviço. Eles não são VMs subjacentes. Então, isso também significa que você não pode instalar NCache nesses recursos, você precisa incluir isso como parte dos recursos do aplicativo. Portanto, há pacotes NuGet que destacaremos. Tudo bem! Então, temos aplicativos da web e aplicativos de API e pode haver microsserviços e outros aplicativos também.

Portanto, esta é uma implantação típica de site único em que temos a mesma rede virtual do Azure hospedando seus aplicativos, bem como o VMS de NCache. E, o que realmente estamos fazendo é uma VPN ponto a site entre seus aplicativos da web e seus aplicativos de serviço e NCache serviço. Então, é assim que a rede geral se parece. Faz parte da mesma rede virtual onde usaremos um projeto de serviço. Nós vamos apresentar NCache recursos nele, criaremos recursos do lado do servidor para NCache. Então, se nossas VMs estiverem funcionando e, em seguida, simplesmente voltaremos ao aplicativo e anexaremos nosso aplicativo à mesma rede virtual em que nosso NCache VMs existem. Então, isso o tornaria um único site e usando a mesma rede virtual do nosso serviço de cache.

etapas-para-implantação de site único
Etapa 1 para implantação em um único site: criar máquinas virtuais para NCache

Então, vamos passar pelas etapas com estes.

singlesite-step1

Tudo bem! O primeiro passo é que você tenha NCache Do lado do servidor e configurá-lo e isso realmente significa configurar máquinas virtuais do Azure para NCache e essa etapa é comum para todos os tipos de implantação, seja uma implantação de um único site ou uma implantação de vários sites. Para implantação de site único, você só precisa que seu NCache servidores são configurados, eles são VMs e, em seguida, NCache está instalado neles. Então, vou levá-lo rapidamente ao nosso portal do Azure, certo? E, se eu for aos grupos de recursos, acabei de criar um grupo de recursos, deixe-me classificá-lo. Meu primeiro grupo de recursos é o grupo de recursos de demonstração um, certo? E, aqui temos todos os tipos de VMs, por exemplo, temos a VM demo um e depois também temos a VM demo dois e na verdade eu usei a mesma rede virtual, meu bem.. Tudo bem! Eu usei a mesma rede virtual para essas duas máquinas de demonstração.

Deixe-me mostrar-lhe rapidamente o... deixe-me trazê-lo aqui. Tudo bem! Então, temos a VM de demonstração um, se você olhar para isso, é implantado na Europa Ocidental e, em seguida, temos a VM de demonstração dois e, em seguida, há uma VM de demonstração v-net, certo? Se eu clicar nele, posso ver demo VM 1 e demo VM 2 parte disso e estes são os endereços IP 10.4.0.4 e 10.4.0.5. Então, isso representa nossos dois NCache VMs e se eu rapidamente levá-lo para este ambiente aqui.

Então, o que eu realmente fiz foi criar uma VM, uma imagem vazia de 2012 ou 2016 faria e então eu fui para o nosso Alachisoft site e tudo que você precisa, não há nenhum instalador especial para NCache. Você só precisa usar o instalador existente. Vá para a página de download e baixe o teste de 30 dias do NCache do nosso site e, uma vez feito isso, instalei NCache na demo VM 1 e demo VM 2. E, então, criei um cache de rede de demonstração V também. As etapas de criação do cache são muito simples. Você só precisa ir para o cache de demonstração, pegar a topologia de cache, assíncrona e especificar a demo VM 1 e, em seguida, acho que a demo VM 2 deve escolher o IP como está. Sim. Assim, esses servidores são capazes de conversar entre si.

Uma etapa adicional que dei, se eu voltar à apresentação, são as etapas necessárias para configurar NCache serviço para Microsoft Azure. Você cria uma rede virtual do Azure, certo? Isso é algo que você já pode ter em seu ambiente. E, em seguida, você cria VMs nessas redes virtuais do Azure. Então, você poderia ter um conjunto dedicado de VMs para NCache; servidor um servidor dois servidor três. E, então, certifique-se de manter as mesmas sub-redes. Isso é algo que recomendamos e então você instala NCache em todas essas VMs. Então uma outra coisa é que você abre NCache portas para comunicação. Existem dois tipos de portas, dois tipos de considerações de rede que você precisa ter. Uma é que você precisa ter o firewall interno desabilitado e então na rede onde essas VMs estão, você deve ter um grupo de segurança de rede, certo?

Então, por exemplo, demo VM um grupo de segurança de rede, já teríamos essas portas abertas, certo? Então, se eu mostrar rapidamente o NCache portas, tudo o que precisamos é a porta 9800 e 48250. Isso é para comunicação de entrada e de saída. 9800 e 48250 Então, isso garantiria que qualquer aplicativo que tentasse usar NCache, que usa a porta 9800, é capaz de se conectar a esses servidores de cache e, em seguida, qualquer aplicativo que esteja tentando gerenciar, por exemplo, pode haver outra VM que está tentando gerenciar isso e pode ser uma rede virtual cruzada, mas faz parte do mesmo grupo de recursos, esses grupos de segurança de rede permitem que essa comunicação ocorra nessas portas. Então é isso. Essa é a consideração que você precisa ter.

Desativei o firewall nos próprios servidores de cache. E essas portas estão abertas e acabei de criar um cache e posso ver as estatísticas. Eu posso simplesmente executar um aplicativo de ferramenta de teste de estresse nessas máquinas diretamente e posso rapidamente, há um pouco de atraso, então, por favor, tenha paciência comigo. E, eu posso apenas simular um pouco de estresse sobre isso também. Então, temos um cache V net one e apenas executamos e simulamos a atividade nesses dois servidores de cache. Então, é assim que é fácil no que diz respeito à configuração do lado do servidor. Agora, você precisa voltar ao seu aplicativo e dar uma olhada nisso. Isso! ai está. Então, temos atividade chegando. Então, estamos bem. Eu só vou fechar isso.

Etapa 2 para implantação de site único: implantar o serviço do Azure no ambiente

Em seguida, agora que temos as máquinas virtuais configuradas, criei um cluster de cache também, a próxima coisa é que preciso de um aplicativo da Web que possa conversar com esse cluster de cache, certo? Então, eu vou voltar rapidamente para a minha apresentação aqui, certo?

singlesite-step2

Então, do ponto de vista de seus aplicativos, o que você realmente precisa é de uma configuração de rede ponto a site entre seu aplicativo, em seu serviço de aplicativo em NCache. Então, em primeiro lugar, eu já fiz isso, certo? só para destacar isso. Agora, se você voltar ao grupo de recursos, temos o grupo de recursos de demonstração 1. Então, temos o gateway de rede virtual de demonstração, certo? Criamos um gateway sobre isso, certo? E, então, temos um ponto para o site. Este é um gateway de rede virtual que usa demo v-net, que é a principal rede para o nosso serviço de cache. Então, se eu voltar aqui, se você olhar para este diagrama, ele realmente usa um gateway de rede virtual aqui, que faz parte dessa rede virtual e, em seguida, meus aplicativos que implantarei em breve terão um ponto a site comunicação acontecendo entre este para que este seja anexado à mesma rede virtual. Esse é o requisito do Microsoft Azure. para que seu serviço de aplicativo converse com recursos que estão em uma rede virtual, por exemplo, VMs, você precisa ter um ponto a site configurado.

Então, voltando aqui. Então, temos um grupo de recursos de demonstração. Mesmo que eu mostre o ponto a site, deixe-me vir aqui, se eu mostrar as configurações ponto a site, temos esse IP que é um IP geral para nossos serviços de aplicativos. Assim, quando um serviço de aplicativo é implantado, você clica nele e o anexa à rede virtual correspondente.

Então, vou voltar ao meu projeto, acho que não mostrei antes, mas essa é uma aplicação de exemplo que é uma App de serviço. Eu vou te mostrar o que é necessário. Portanto, se você clicar com o botão direito nele, terá pacotes NuGet disponíveis para o Microsoft Azure.

demonstração-passo1-singlesite

Então, por exemplo, temos Alachisoft.NCache.SDK. Estes estão disponíveis em particular conosco, certo? Estes equipam as suas aplicações com todas as NCache pontos em recursos porque não há nenhuma instalação de NCache do lado do cliente. Típica NCache implantação é que você tem o cliente instalado, você tem um servidor instalado. Então, cobre, certo? Mas, com serviços é uma instância. Portanto, você não tem acesso à VM subjacente. Portanto, nesse caso, você precisa dos pacotes NuGet. Assim, que todos os recursos sejam parte dos quais você precisa dentro do aplicativo. Então, este é o pacote nougat que eu já instalei. O que realmente adicionou todos os NCache bibliotecas do site do cliente, certo? Então, é isso que adicionou algumas configurações também. Então, temos client.ncconf, que é o arquivo principal que se conecta a qualquer cache.

Por exemplo, eu já tenho configurações para conectar ao V net um cache que é o nome e depois também tenho os endereços IP internos para conectar a esses. A próxima coisa é que eu publico este aplicativo e, em seguida, esse aplicativo deve poder acessar 10.4.0.4 para VM um e 10.4.0.5 para VM dois. Então, eu preciso ter certeza de que há uma comunicação ponto a site onde esses IPs públicos estejam acessíveis ao meu aplicativo, só assim ele poderá se conectar com esse cache.

Então, voltando ao aplicativo, estou mostrando algumas chamadas de cache. Então, dentro desse projeto MVC, temos nosso controller principal onde temos essa instância de cache e então estou usando a instância de cache. InitializeCache. Deixe-me apenas ir para este método aqui. Então, este é o método inicializado, NCache.initializeCache e então também estamos chamando cache.insert para adicionar um item, Cache.delete para deletar aquele item, cache.get para pegar o item de volta e então se eu não tiver certeza se fiz algum teste de carga, sim! Então, existe outro método de teste de carga que realmente carrega o item, milhares de itens são carregados no cache e então esses são recuperados também. Então, isso deve cuidar da lógica principal, bem como da nossa aplicação.

Existem alguns pontos de vista que vou mostrar a você. Então, nós temos delete, get, index e load test também e estes estão simplesmente sendo chamados através do nosso para nosso aplicativo. Então, o que vou fazer é que esses são básicos NCache chamadas. Então, o que farei a seguir é apenas implantar isso no Microsoft Azure. Então, eu já configurei todos os grupos de recursos e parte de rede, aqui. Mas, o que você realmente precisa é, se for um aplicativo do Microsoft Azure, basta criar um novo nome do aplicativo Web com base em sua assinatura. Vamos esperar algum tempo. Então, que ele escolhe a assinatura. Ai está. Portanto, ele escolheu automaticamente o Visual Studio Enterprise e, em seguida, o grupo de recursos, pretendo usar o grupo de recursos de demonstração um. Então, que estou usando a implantação de site único. Então, faz parte do mesmo grupo de recursos e então eu escolho o plano de serviço e depois escolho apenas criar. Você poderia simplesmente colocar novo aqui também. Então, que mesmo a localização é a Europa Ocidental, certo? Escolha Ok sobre isso e, em seguida, escolha criar e ele começará automaticamente com isso.

Desde então, eu já fiz isso. Então, o que eu faço a seguir é, eu simplesmente vou para a minha configuração web, certifique-se de que está usando o V net cache one e dentro do client.ncconf temos o V net cache one. Portanto, este aplicativo será implantado no mesmo site. O mesmo grupo de recursos termina e, em seguida, vou anexá-lo à rede virtual que faz parte do meu NCache VMs de servidores.

Voltando ao Microsoft Azure, daqui a pouco, se eu for ao grupo de recursos um, devemos ter esse aplicativo em algum lugar. Ai está! Se você clicar nele e depois na parte de rede deste aplicativo, uma vez implantado, certo? Tão certo! Então, você vai para a rede, clica nele e já está conectado ao demo v-net one, certo? Eu já fiz isso, certo? Então, no seu caso, uma vez que você faz uma conexão ponto a site no seu gateway de rede virtual, você tem um grupo de recursos de demonstração, certo? Trazendo de volta isso, bem aqui. Então, depois de criar uma rede virtual, crie um ponto a site e então esse IP do serviço de aplicativo é exposto, após implantar seu serviço de aplicativo você precisa anexá-lo à rede virtual, certo? Então, isso é algo que é um passo extra que é necessário, bem aqui. Então, meu aplicativo, espero que esteja carregado. Estou esperando sim!

Agora, no lado do servidor, vou apenas limpar o conteúdo e inserir um item. Adicionado com sucesso no cache. E, você pode ver um item nele, eu vou obtê-lo rapidamente. Desculpe, eu realmente não posso mostrar os contadores, mas ele realmente recuperou e então eu posso excluí-lo, certo? Então, e como faz parte da mesma rede virtual é muito mais rápido em comparação.

Agora vou simular alguns testes de carga, vou adicionar mil itens e você deve ver alguma atividade. Lá vai você, certo? Então, solicitações por segundo e esses itens estão sendo adicionados e você pode ver cerca de 600 itens aqui, cerca de 400 itens aqui e não está recuperando esses itens. Portanto, essa é uma implantação típica de seus serviços, sejam microsserviços, serviços de aplicativos, aplicativos de API, qualquer aplicativo implantado em modelos de serviço. Você só precisa apresentar pacotes NuGet, criar uma conexão ponto a site para NCache VMs por meio de seu gateway de rede e, em seguida, sua instância de aplicativo podem ser anexadas à VM. Então, essas são todas as configurações de rede do Microsoft Azure e NCache só precisa de endereços IP privados para serem expostos no canal TCP-IP. Então, é tudo o que precisamos.

Cenário 2: implantação de vários sites para serviços do Azure e NCache

Então, em seguida, já que temos menos tempo disponível, acho que nos últimos 10 minutos também abordarei o cenário de vários sites. As configurações são quase semelhantes.

implantação em vários locaisncache-azul

Temos nossos aplicativos Web ou serviços da Microsoft ou serviços de aplicativos implantados em uma rede virtual do Azure ou em um site e, em seguida, NCache VM's ou outro site e para isso o que realmente precisamos é de um gateway de rede local aqui e um gateway de rede virtual aqui e então precisamos de uma conexão site a site entre esses dois. Novamente, essas são todas as configurações do Microsoft Azure que equipam dois lados para se conectarem usando uma conexão site a site e NCache utiliza esses e IPs internos são mapeados em cada lado. Então seu NCache IPs internos do servidor são mapeados em sua rede virtual de serviços de aplicativo e vice-versa.

E para isso mostrarei rapidamente as configurações. Se eu trouxer você de volta aos grupos de recursos, temos o grupo de recursos de demonstração dois, certo? Então, essa é outra rede virtual. E, temos demo v-net dois, bem aqui, e eu tenho duas caixas nesta rede virtual também, demo VM 3 e Demo VM 4. Então, este ambiente aqui é 10. 4.0.4 é outra rede virtual. Também pode ser do outro lado do site, estou apenas usando a analogia de outra rede virtual como outro site. Mas, pode ser um site cruzado, pode ser outro data center em outra região no Microsoft Azure.

Etapas para implantação de vários sites: implantar o serviço do Azure no ambiente

Então, o que você realmente precisa é manter as mesmas configurações para isso, como já expliquei.

etapas para implantação em vários sites

Mantenha a parte da VM na mesma rede virtual mesma sub-rede, crie um cache, inicie esse cache e agora seu aplicativo precisa se conectar ao nosso cache que é um site cruzado. Para isso, você precisa de uma comunicação site a site acontecendo. E, se eu voltar aqui neste grupo de recursos de demonstração, já que temos uma rede virtual de demonstração e um gateway de rede virtual de demonstração, sim, aqui está, gateway de rede virtual 2, certo? Então, esse é um gateway no segundo site. Então, se formos para as conexões, temos a demo 2 site-to-site connection. Portanto, temos uma conexão site a site com o gateway de rede local demo 2. Então, isso é algo que eu configurei, certo? Então, isso permite que minha rede virtual um se conecte à rede virtual dois que estão no site. Então, isso é exatamente o que fizemos.

Vou mostrar-lhe rapidamente o NCache aplicativo que nada muda aqui. Você só precisa alterar o nome do cache e, em seguida, deve ter os endereços IP para se conectar aos servidores de cache que tenho como parte da pilha. Então, V-net para armazenar em cache e estarei usando o mesmo aplicativo para conectar agora, só preciso publicá-lo mais uma vez e observar que ainda o publico no grupo de recursos de demonstração um. Considerando que nossas máquinas virtuais estão no grupo de recursos de demonstração dois. E, esta é a VM 3, bem aqui, onde temos dois servidores de cache. Então, vou publicar isso mais uma vez mantendo uma conexão site a site já configurada. Vou apenas publicar este e o mesmo aplicativo agora passaria pela rede, pelo site da rede virtual 1 para a rede virtual 2 e seria capaz de se conectar a isso. Então, vou esperar publicar e depois volto aqui e mostro mais uma vez a peça de networking.

Então, o que você realmente precisa é a mesma configuração para máquinas virtuais, manter a mesma rede virtual aqui, mesma sub-rede, gerar o VMS, instalar NCache neles, desabilite o firewall, configure o grupo de segurança de rede para que NCache portas estão abertas e você precisa de uma conexão site a site entre seus aplicativos como serviços conectando-se a NCache serviço. Então, se você já tem uma rede virtual onde seus serviços de aplicativo estão conectados, você só precisa ter certeza de que a rede virtual 1 agora é capaz de se comunicar com a rede virtual 2 e então existe um site cruzado e isso é exatamente o que eu fiz no Microsoft Azure também. Assim, a publicação foi bem sucedida. Acho que era isso. Deixe-me apenas fechá-lo e deixe-me inserir um item, certo? E vamos ver se um item foi adicionado aí vai. Então, agora o item foi adicionado. Então, agora ele está falando através do site, de um site para outro e, se eu conseguir esse item, ele será recuperado. Se eu excluí-lo, esse item sairia da minha demo VM 3, nenhum item está lá e, da mesma forma, apenas simularei um teste de carga onde começarei a usar o mesmo ambiente, mas estou apenas simulando alguma atividade no isto.

Então, agora meu site um, os serviços de aplicativos estão conversando com o serviço de cache do site 2. Eles estão atravessando o site. Não é um cenário recomendado porque há uma replicação de WAN ou latência de WAN que pode se tornar parte dela. Portanto, recomendamos manter tudo no mesmo site, mas é possível que haja um cenário em que seu recurso baseado em sessões em vários sites, por exemplo, com base no recurso de aplicativo de banner de NCache. Pode ser que aplicativos locais conversando com o Azure ou aplicativos do Azure conversando com uma premissa vice-versa. Então, esses são os requisitos e nosso teste de carga agora está completo para que seja executado com sucesso.

Então, isso abrange nossa implantação do Azure.

Opções de cache distribuído para .NET

Algumas coisas que eu gostaria de mencionar neste momento que e há uma Redis comparação também.

opções de cache distribuído

Estamos falando do Azure. Então, definitivamente vamos falar sobre Redis. Então, está disponível em nosso site. NCache é 100% .NET. É desenvolvido em c-sharp. É totalmente compatível com .NET e java. Em comparação, Redis nos bastidores está no Linux, você não tem controle sobre o VMS. Dentro NCache você tem controle total sobre o VMS. você pode executar o código do lado do servidor em NCache bem como a versão da Microsoft de uma versão do Windows do Redis não é que você sabe estável. É a versão Linux que é usada nos bastidores e depois fornecida como um modelo de serviço. E então, NCache pode ser usado em Dockers também. Se você planeja usar NCache nos contêineres Dockers do lado do servidor, você pode usar isso.

E então, também falarei sobre alguns detalhes em relação às opções de implantação. Você acabou de instalar NCache parte do servidor, você obtém uma versão do Azure do nosso lado. É uma versão apenas para servidor e você precisa dos pacotes NuGet para tornar seus aplicativos equipados com NCache e isso é algo que você também pode obter de nosso suporte ou equipe de vendas. Então, isso é algo que não está disponível publicamente. Isso é intencional, mas você só precisa solicitar para nós e, em seguida, forneceremos a versão para o Azure, bem como os pacotes NuGet e, depois disso, é apenas a peça de rede que você precisa de um único site configurado ou de vários sites. Normalmente, recomendamos um site único e, nesse caso, você precisa de uma comunicação ponto a site e, em vários sites, você precisa de uma comunicação site a site.

Então, isso completa nossa apresentação.

O que fazer a seguir?

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