Quando se trata de dimensionar um banco de dados, essa é uma tarefa que as pessoas geralmente querem evitar. No caso de bancos de dados relacionais, que geralmente são bancos de dados de tamanho vertical, os administradores teriam que colocar o banco de dados off-line e adicionar novo hardware aos servidores. Nesse cenário, qualquer dimensionamento que ocorra é uma operação unidirecional, o que significa que você provavelmente nunca removerá o hardware e reduzirá o dimensionamento. Para bancos de dados NoSQL, que geralmente são bancos de dados distribuídos, o hardware geralmente é removido da equação, mas às vezes ao custo da simplicidade da configuração. Veja o MongoDB, por exemplo, que tem vários nós diferentes que incluem mestre, escravo, réplica e fragmento.
É aqui que Servidor Couchbase entra em cena.
O Couchbase Server é um banco de dados NoSQL distribuído que foi projetado para poder ser dimensionado facilmente. Devido à arquitetura peer-to-peer de nó único, os clusters podem ser ampliados ou reduzidos para atender à demanda com apenas alguns cliques do mouse. Há opções para usar as APIs disponíveis e as ferramentas da CLI, caso a interface do usuário não atenda às suas necessidades.
Veremos exatamente como pode ser fácil dimensionar um cluster ao usar o Couchbase como o banco de dados escolhido em sua organização.
Para este exemplo, vamos explorar o dimensionamento de clusters usando o Docker. Na produção, você pode estar usando qualquer número de soluções para hospedar seus nós. Independentemente do cenário, as etapas de dimensionamento para atender a uma demanda crescente ou decrescente serão as mesmas.
Criação de nós do Couchbase Server com o Docker
Supondo que você já tenha o Docker instalado, será necessário executar os seguintes comandos na CLI do Docker:
|
1 2 3 4 |
doca executar -d -p 7091:8091 --nome couchbase1 couchbase/servidor doca executar -d -p 8091:8091 --nome couchbase2 couchbase/servidor doca executar -d -p 9091:8091 --nome couchbase3 couchbase/servidor doca executar -d -p 10091:8091 --nome couchbase4 couchbase/servidor |
Os comandos acima criarão quatro contêineres do Couchbase usando a imagem oficial do Docker encontrada em Docker Hub. Cada contêiner terá um nome diferente e uma porta de host diferente. O Couchbase Server usa muitas portas, mas só precisamos mapear a porta do administrador porque é a única que acessaremos a partir da máquina host. As outras portas podem ser acessadas pelos contêineres dentro da rede de contêineres.
Com os nós disponíveis, podemos criar um cluster e expandi-lo.
Dimensionamento do Couchbase Server para uma demanda crescente
Neste momento, não temos um cluster do Couchbase configurado. Em um navegador da Web, navegue até http://localhost:7091.

Como este é um novo nó, estaremos configurando um novo cluster. Siga as poucas etapas do assistente de configuração até ser levado ao painel administrativo do Couchbase. Parabéns, você tem um cluster do Couchbase de nó único!
Crie um Bucket, adicione alguns documentos a ele e prossiga.
Avançando para o futuro, vamos supor que sua empresa esteja crescendo. O cluster de nó único não está mais dando conta do recado e você precisa de mais potência. No navegador da Web, navegue até http://localhost:8091, que é um de seus nós não utilizados no momento. Em vez de configurar um novo cluster, vamos nos juntar a um cluster existente.

Será solicitado que você forneça um host de um nó existente no cluster. Como estamos usando o Docker, certifique-se de obter o IP correto do contêiner e não o IP do host. Depois de optar por participar do cluster, você poderá fazer o checkout dos servidores dentro do cluster.

Nesse momento, deve haver dois servidores em seu cluster. A união do cluster existente e o aumento de escala não estão concluídos até que você reequilibre o cluster. Ao rebalancear o cluster, os dados são embaralhados de modo que nenhum nó carregue uma carga excessiva. O cluster permanece disponível durante um rebalanceamento, sem tempo de inatividade.
Digamos que a demanda do seu aplicativo esteja fora de controle e você precise adicionar outro nó ao cluster. Desta vez, faremos algo um pouco diferente. No navegador da Web, navegue até http://localhost:9091, que atualmente é um nó não utilizado. Em vez de entrar no cluster, vamos criar um novo cluster. Quando o cluster estiver configurado, anote o IP do contêiner.

Volte para a lista de servidores do cluster original e escolha adicionar um novo servidor. O novo cluster que você acabou de criar será apagado e adicionado ao cluster original. Lembre-se de que o dimensionamento do cluster não estará concluído até que você faça um rebalanceamento.

À medida que o cluster e as necessidades de dados aumentam, o rebalanceamento pode demorar um pouco. Lembre-se de que o cluster permanece on-line durante esse período, o que é conveniente para as operações.
Dimensionamento do Couchbase Server para uma demanda cada vez menor
Então, você teve um bom ano, mas digamos que a demanda em seus servidores tenha diminuído. Isso acontece, mas quando isso acontece, você provavelmente não quer ficar preso a pagar por esses recursos que não está usando. Para nossa sorte, reduzir a escala do Couchbase é tão fácil quanto aumentá-la.
Volte para a lista de servidores do seu cluster.

Escolha um servidor da lista do qual você deseja se livrar. No entanto, há alguns aspectos que você deve conhecer antes de começar a eliminar nós do cluster:
- Certifique-se de que seu cluster possa realmente lidar com a carga sem os recursos que tinha antes.
- Entenda a diferença entre uma situação de remoção e uma situação de failover.
Quando se trata de failover ou remoção, observe que o failover geralmente é para manutenção do nó. Em outras palavras, você está planejando trazer o nó de volta, não se livrar dele para sempre. A remoção de um nó não significa apenas retirá-lo do cluster. Você terá que fazer um rebalanceamento para finalizar a remoção, de modo que os dados não sejam destruídos. Quando o rebalanceamento for concluído, você terá um cluster menor.
Conclusão
Você acabou de ver como é fácil escalar o Couchbase para cima ou para baixo para atender à demanda de seus aplicativos. Embora isso seja possível na maioria das outras soluções de banco de dados, sejam elas relacionais ou NoSQL, elas não se comparam quando se trata do fator de conveniência que Couchbase oferece. Com apenas alguns cliques do mouse, os nós podem ser adicionados ou removidos de qualquer cluster.
Para obter mais informações sobre como usar o Couchbase, consulte o Portal do desenvolvedor do Couchbase.