O dimensionamento é um dos pontos fortes do Couchbase Server. É fácil dimensionar, e a arquitetura do Couchbase faz uso eficiente dos seus recursos de dimensionamento. De fato, quando o Viber, cliente do Couchbase, mudou do Mongo para o Couchbase, eles reduziram o número de servidores necessários pela metade.
Esta postagem do blog é a terceira de uma série (solta) de postagens sobre o Azure.
A primeira postagem mostrou a você o benefícios de computação sem servidor no Azure com o Couchbase.
A segunda postagem mostrou um exemplo concreto de criação de um chatbot usando as funções do Azure e o Couchbase Server.
A postagem anterior usou apenas um cluster com um único nó para fins de demonstração. Agora, suponha que você já esteja em produção há algum tempo e que seu chatbot esteja começando a ficar muito popular. Você precisa aumentar a escala do seu cluster do Couchbase. Se você implementou o Couchbase a partir do Mercado do AzureÉ muito fácil. Resumindo: você praticamente só move um controle deslizante. Mas esta postagem o guiará por todos os detalhes:
-
Criação de um cluster totalmente novo com 3 nós.
-
Dimensionamento do cluster para até 5 nós.
-
Dimensionamento do cluster para 4 nós.
Criar um cluster do Couchbase no Azure
Supondo que você tenha uma conta do Azure, faça login no portal. Se você ainda não tiver,
Começar a usar o Azure é fácil e gratuito.
Depois de fazer login, clique em "+ New" e procure o Couchbase Server no marketplace. Estou usando BYOL (traga sua própria licença) para demonstração, mas há também uma opção de "Preço por hora" que vem com suporte de prata.

Depois de selecionar o Couchbase, você será conduzido a um assistente de instalação do Azure. Clique no botão "Create" (Criar) para começar.

A etapa 1 é o "Básico". Preencha o nome de usuário e a senha que deseja para o Couchbase, o nome de um grupo de recursos e um local (escolhi o centro-norte dos EUA porque fica perto de mim geograficamente). Não se esqueça de anotar essas informações, pois você precisará delas mais tarde.

A próxima etapa é a configuração do Couchbase. Há alguns tipos de VM recomendados para uso. Optei pelo DS1_V2 para manter esta postagem de blog barata, mas você provavelmente vai querer pelo menos 4 núcleos e 4 GB de RAM para seu ambiente de produção. Também optei por não instalar nenhum Sync Gateway Nodes, mas se você planeja usar o Couchbase Mobile, também precisará deles. Estou pedindo um total de 3 nós para o Couchbase Server.

Depois disso, a etapa 3 é apenas um resumo das informações que você inseriu.

A última etapa é "comprar". Isso mostra os termos. Um botão "Create" é tudo o que resta.

Agora, o Azure trabalhará no provisionamento de 3 VMs, na instalação do Couchbase Server nelas e na criação de um cluster. Isso levará um pouco de tempo. Você receberá uma notificação do Azure quando isso for concluído.

Você deve ter tempo suficiente para comprar uma boa bebida.
Usando seu cluster do Couchbase
Quando o Azure terminar a implantação, vá até "Grupos de recursos" no portal do Azure. Encontre seu grupo de recursos. O meu se chama my_cb_resource_group.

Clique no grupo de recursos. Dentro desse grupo de recursos, você verá 4 coisas:
-
grupos de segurança de rede (essas são regras de firewall, basicamente)
-
vnet (a rede em que todos os recursos do grupo estão)
-
servidor (instâncias do Couchbase Server)
-
porta de sincronização (Instâncias do Couchbase Sync Gateway. Não solicitei nenhuma, portanto, este é um agrupamento vazio)

Primeiro, clique em "server" (servidor) e depois em "instances" (instâncias). Você deverá ver 3 servidores (ou o número que você provisionou).

Em seguida, clique em "implantações". Você verá um para o Couchbase listado. Clique nele para obter mais informações sobre a implantação.

A próxima tela informará o URL necessário para acessar a interface do usuário do Couchbase Server (e a interface do usuário do Sync Gateway, se você a tiver instalado). Ele deve se parecer com algo como: http://vm0.server-foobarbazqux.northcentralus.cloudapp.azure.com:8091.

Cole esse URL em um navegador. Você será levado à tela de login do Couchbase Server. Use as credenciais que você especificou anteriormente para fazer login.

Depois de fazer login, clique em "servers" (servidores). Você verá os três servidores listados aqui. As URLs corresponderão às implantações que você vê no portal do Azure.
Vamos colocar alguns dados nesse banco de dados! Vá para Settings → Sample Buckets (Configurações → Compartimentos de amostras) e carregue o compartimento "travel-sample" (amostra de viagem).

Esse exemplo de dados contém 31591 documentos. Quando o carregamento estiver concluído, volte para "servers". Você pode ver como os "itens" (e itens de réplica) estão distribuídos igualmente entre os três servidores. Cada nó no Couchbase pode fazer leituras e gravações, portanto, essa não é uma situação de conjuntos de réplicas mestre/escravo ou somente leitura.

Aumento de escala
Agora, vamos supor que o seu aplicativo esteja realmente decolando e que você precise aumentar a escala para fornecer capacidade, armazenamento e desempenho adicionais. Como estamos usando o Couchbase implantado a partir do marketplace do Azure, isso é ainda mais fácil do que o normal. Vá para o portal do Azure, volte para o grupo de recursos e clique em "servidor" novamente. Agora, clique em "dimensionamento"

Em seguida, você verá um controle deslizante que pode ser ajustado para adicionar mais instâncias. Vamos aumentar para 5 servidores no total. Certifique-se de clicar em "salvar".

Agora, volte para "instâncias" novamente. Observação: talvez seja necessário atualizar a página. O Azure não parece querer atualizar a página obsoleta servida ao navegador por conta própria. Agora você verá servidor_3 e servidor_4 em status de "criação".

Você precisará esperar que eles sejam implantados pelo Azure. Enquanto isso, você pode voltar para a interface do usuário do Couchbase Server e esperar que eles apareçam lá também.

Ao adicionar novos servidores, o cluster deve ser reequilibrado. A implantação do Azure deve tentar fazer isso automaticamente (mas, caso falhe, você também pode acionar o reequilíbrio manualmente).

Durante esse período de rebalanceamento, o cluster ainda estará acessível a partir de seus aplicativos. Não haverá tempo de inatividade. Após o término do rebalanceamento, você poderá ver que o # de itens em cada servidor foi alterado. Ele foi redistribuído (junto com as réplicas).

É isso aí. Basicamente, é só mover um controle deslizante e esperar alguns minutos.
Diminuição de escala
Em algum momento, você pode querer reduzir a escala do seu cluster. Talvez você precise de 5 servidores durante uma determinada parte do ano, mas só precise de 3 em outras partes, e gostaria de economizar algum dinheiro na sua conta do Azure.
Mais uma vez, trata-se apenas de ajustar o controle deslizante. No entanto, é uma boa ideia reduzir um servidor de cada vez para evitar qualquer risco de perda de dados.

Quando você reduzir a escala, o Azure escolherá uma VM para desativar. O Couchbase Server pode responder de duas maneiras:
-
O comportamento padrão é simplesmente indicar que um nó está inativo. Isso poderia acionar um alerta por e-mail. Ele será exibido como "down" na interface do usuário.
-
Autofailover pode ser ativado. Isso significa que, quando um nó estiver inativo, o cluster do Couchbase o considerará automaticamente como "falho", promoverá as réplicas em outros nós e reequilibrará o cluster.
Vou deixar o auto-failover desativado e mostrar o comportamento padrão.
Primeiro, o servidor mostrará um status de "excluindo" no portal do Azure.

Logo depois, o Couchbase reconhecerá que um nó não está respondendo. Ele sugerirá failover para "ativar réplicas disponíveis".

Vou prosseguir e fazer exatamente isso.

Depois que ele for removido do cluster, você precisará acionar um "rebalanceamento".

Resumo e recursos
O dimensionamento de um cluster do Couchbase no Azure é simplesmente uma questão de usar o controle deslizante.
Se estiver reduzindo a escala, considere fazer isso em um nó de cada vez.
Para obter mais informações, confira estes recursos:
-
A vídeo de Ben Lackey que abrange o processo de dimensionamento do Couchbase no Azure.
-
Certifique-se de ler sobre Autofailover na documentação.
-
Consulte também a documentação sobre reequilíbrio.
Se tiver dúvidas, entre em contato comigo em Twitter @mgroves ou deixe um comentário.