Implantar um Cluster do CockroachDB Altamente Disponível
O CockroachDB é um banco de dados SQL distribuído criado em um armazenamento de valor-chave transacional e consistente.
Arquitetura
Esta arquitetura de referência mostra uma implantação típica de três nós do CockroachDB nas instâncias do Oracle Cloud Infrastructure Compute. Um balanceador de carga público é usado para distribuir as cargas de trabalho entre esses três nós.
O diagrama a seguir ilustra essa arquitetura de referência.

Descrição da ilustração cockroachdb-oci.png
- Regiões
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.
Essa arquitetura usa uma sub-rede pública para hospedar o balanceador de carga público e as três instâncias do serviço Compute que executam o CockroachDB.
- Balanceador de carga
O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição de tráfego automatizada de um ponto de entrada para vários servidores acessíveis a partir do VCN. Essa arquitetura tem dois listeners, um para a porta TCP 8080 e outro para a porta TCP 26257. O balanceador de carga também tem dois conjuntos de backend que correspondem a esses dois listeners.
- 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 usa regras de entrada para portas TCP 8080 e 26257 para que os clientes possam acessar o tráfego do listener HTTP e CockroachDB.
Recomendações
Seus requisitos podem diferir da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.
- Calcular formas
Essa arquitetura usa a imagem do SO Oracle Linux 7.9 com a forma VM.Standard. E3. Flex Compute. Para o seu aplicativo, você pode escolher uma forma diferente se precisar de mais memória, núcleos ou largura de banda da rede.
- 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.
- Use uma sub-rede regional.
-
- Largura de banda do balanceador de carga
Ao criar o balanceador de carga, você pode selecionar uma forma predefinida que forneça uma largura de banda fixa ou especificar uma forma personalizada (flexível) em que defina um intervalo de largura de banda e permita que o serviço dimensione a largura de banda automaticamente com base nos padrões de tráfego. Com qualquer uma das abordagens, você pode alterar a forma a qualquer momento após criar o balanceador de carga.
Considerações
- Escalabilidade
O menor número de nós necessários para atingir o quórum é três, portanto, essa arquitetura implanta três nós. Talvez você precise de mais nós para atender aos requisitos de desempenho ou alta disponibilidade do aplicativo.
Você pode dimensionar horizontalmente seu cluster de banco de dados adicionando mais nós de Computação e incluindo-os nos conjuntos de backend do balanceador de carga.
Você pode dimensionar verticalmente seu cluster de banco de dados alterando a forma da VM de cada nó do serviço Compute. O uso de 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
Os domínios com falha fornecem a melhor resiliência dentro de um único domínio de disponibilidade. Nesta arquitetura, em vez de implantar a aplicação em um domínio de disponibilidade, você pode implantar 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. Após a implantação da arquitetura, use o endereço IP público do balanceador de carga para estabelecer conexão com o CockroachDB usando o cliente SQL incorporado.
- Custo
Selecione a forma da máquina virtual (VM) com base nos núcleos, memória e largura de banda de rede necessários para o banco de dados. Você pode começar com uma forma de núcleo único e, se precisar de mais desempenho, memória ou largura de banda de rede para o nó do banco de dados, poderá alterar a forma da VM posteriormente.
Implantar
O código Terraform desta arquitetura de referência está disponível como uma pilha de amostra no Oracle Cloud Infrastructure Resource Manager. Você também pode fazer download do código do GitHub e personalizá-lo para atender às suas necessidades específicas.
- Implante usando a pilha de amostra no Oracle Cloud Infrastructure Resource Manager:
- Clique em
Se você ainda não tiver efetuado sign-in, informe as credenciais da tenancy e do usuário.
- Selecione a região em que deseja implantar a pilha.
- Siga os prompts e instruções na tela para criar a pilha.
- Depois de criar a pilha, clique em Ações do Terraform e selecione Plano.
- 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 do Plano novamente.
- Se nenhuma outra alteração for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
- Clique em
- Implante usando o código Terraform no GitHub:
- Vá para o GitHub.
- Clonar ou fazer download do repositório para o computador local.
- Siga as instruções no documento
README
.