Implantar um Cache Distribuído Altamente Disponível Usando Redis

Redis é um armazenamento de estrutura de dados de código aberto na memória que é usado como um banco de dados, cache e broker de mensagens. Ele suporta estruturas de dados como strings, hashes, listas, conjuntos, conjuntos classificados com consultas de faixa, bitmaps, HyperLogLogs, índices geoespaciais com consultas de raio e fluxos.

Observação:

A OCI também oferece seu próprio serviço Redis totalmente gerenciado. Você pode encontrar mais informações na página de serviço OCI Cache with Redis.

Arquitetura

Esta arquitetura de referência mostra uma implantação típica de seis nós de um cluster Redis nas instâncias do Oracle Cloud Infrastructure Compute.

O diagrama a seguir ilustra essa arquitetura de referência.

Veja a seguir a descrição da ilustração redis-oci-png.png
Descrição da ilustração redis-oci-png.png

Essa arquitetura tem os seguintes componentes:

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, chamados domínios de disponibilidade. As regiões são independentes de outras regiões e grandes distâncias podem separá-las (entre países ou mesmo continentes).

  • Domínios de disponibilidade

    Os domínios de disponibilidade são data centers independentes e independentes em uma região. Os recursos físicos em cada domínio de disponibilidade são isolados dos recursos nos outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura, como energia ou resfriamento, ou a rede de domínio de disponibilidade interna. Portanto, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade na região.

  • Domínios com falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de energia dentro de um domínio de falha.

  • Rede virtual na nuvem (VCN) e sub-redes

    Um VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem controle total sobre seu ambiente de rede. Um VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar depois de criar o VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em uma faixa contígua de endereços que não se sobrepõem às outras sub-redes na VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

    Nesta arquitetura, todas as instâncias de computação que hospedam o cluster Redis são anexadas a uma única sub-rede regional.

  • Listas de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que devem ser permitidos dentro e fora da sub-rede.

    Essa arquitetura adiciona regras de entrada para as portas TCP 16379 e 6379. A porta 6379 atende aos clientes Redis e a porta 16379 é usada pelo barramento de cluster Redis.

Recomendações

Seus requisitos podem ser diferentes da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.

  • Formas de Computação

    Essa arquitetura usa uma imagem do SO Oracle Linux 7.6 com uma forma VM.Standard2.2. Se o aplicativo precisar de mais memória, núcleos ou largura de banda da rede, você poderá escolher uma forma diferente.

  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar a sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Selecione blocos CIDR que não se sobreponham a nenhuma outra rede (no Oracle Cloud Infrastructure, seu data center local ou outro provedor de nuvem) para a qual você pretenda configurar conexões privadas.

    Depois de criar um VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere o fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos em uma camada ou função específica à mesma sub-rede, que pode servir como um limite de segurança.

    Usar sub-redes regionais.

Considerações

  • Escalabilidade

    O número mínimo de nós necessários para garantir a disponibilidade de um cluster Redis é de três nós mestres. Essa arquitetura implanta três nós mestres e três nós de réplica. Talvez você precise de mais nós para atender aos requisitos de desempenho ou alta disponibilidade do aplicativo.

    Você pode dimensionar horizontalmente seu cluster Redis adicionando mais nós de Computação.

    Você pode dimensionar verticalmente seu cluster Redis alterando a forma da VM de cada nó do serviço Compute. Escolher uma forma com uma forma de contagem de núcleos mais alta também aumenta a memória alocada para a instância do serviço Compute e a largura de banda da rede.

  • Disponibilidade do Aplicativo

    Os domínios com falha fornecem a melhor resiliência dentro de um único domínio de disponibilidade. Essa arquitetura usa outra abordagem para alta disponibilidade, que está implantando instâncias do serviço Compute que executam as mesmas tarefas em regiões que têm vários domínios de disponibilidade. Esse design remove um único ponto de falha introduzindo redundância.

    Depois que a arquitetura for implantada, você poderá estabelecer conexão com o endereço IP público do nó Redis usando ferramentas SSH como PuTTY ou Git Bash. Você pode usar a interface da linha de comando Redis, redis-cli, para interagir com a implantação do Redis.

  • Custos

    Selecione a forma da máquina virtual (VM) com base nos núcleos, memória e largura de banda da rede necessários para o banco de dados. Você pode começar com uma forma de um núcleo e alterar a forma da VM posteriormente se precisar de mais desempenho, memória ou largura de banda da rede para o nó Redis.

Implantar

O código necessário para implantar esta arquitetura de referência está disponível no GitHub. Você pode inserir o código no Oracle Cloud Infrastructure Resource Manager com um único clique, criar a pilha e implantá-la. Como alternativa, faça download do código do GitHub para o seu computador, personalize-o e implante a arquitetura usando a CLI do Terraform.

  • Implantar usando o Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implantar no Oracle Cloud

      Se você ainda não tiver efetuado sign-in, informe as credenciais da tenancy e do usuário.

    2. Revise e aceite os termos e condições.
    3. Selecione a região em que deseja implantar a pilha.
    4. Siga os prompts e instruções na tela para criar a pilha.
    5. Depois de criar a pilha, clique em Ações do Terraform e selecione Plano.
    6. Aguarde a conclusão do job e revise o plano.

      Para fazer alterações, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Plano novamente.

    7. Se nenhuma outra alteração for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implante usando a CLI do Terraform:
    1. Vá para o GitHub.
    2. Baixe ou clone o código para o computador local.
    3. Siga as instruções em README.md.

Log de Alterações

Este log lista apenas as alterações significativas: