Kubernetes

Testando aplicativos do Couchbase, por que esperar?

Em meu blog anterior, discutimos a configuração de um cluster do Couchbase localmente em seu próprio hardware. A vantagem disso é que reduz significativamente o TCO da sua infraestrutura de teste e o tempo necessário para adquirir uma nova infraestrutura de teste, o que é especialmente importante se você estiver apenas começando sua jornada no Couchbase.

Para levar todos ao mesmo ponto de partida, Aqui está um link para meu blog anterioronde explicamos como criar rapidamente um cluster de desenvolvimento localmente usando o Operador Autônomo do Couchbase para Kubernetes.

Então, para onde poderíamos ir a partir daqui? Estabelecer um ambiente de fácil implementação que imite a implementação de seu aplicativo é o único caminho natural. Esse será outro passo importante na direção certa para permitir que você desenvolva e teste suas implementações localmente, com o mínimo de esforço.

Implementação ainda mais simples

Simplificamos o método de implantação discutido em meu blog anteriorÉ claro que ainda é importante entender os componentes do operador do Couchbase que implantaremos, portanto, se ainda não o fez, consulte meu blog anterior.

O novo método de implantação está contido no repositório do operador-gitops mantido pelo Couchbase (e, mais especificamente, pelo fantástico Patrick Stephens). A única coisa que você precisa fazer agora para ter um cluster do Couchbase implantado localmente é executar o comando create-cluster.sh script. Quando isso for concluído, você poderá executar o script create-dev.sh script. Dessa forma, você terá tudo o que precisa (em termos de infraestrutura) para testar os recursos do aplicativo Couchbase.

Detalhamento da implantação do desenvolvimento

Para que este seja um guia técnico prático para você, as seções a seguir abordam todos os detalhes do que estamos fazendo no create-dev.sh roteiro.

Dockerfile
Quando eu era desenvolvedor, tinha que manter meus próprios ambientes de desenvolvimento e teste. A manutenção desses ambientes era um pesadelo, pois não havia muita automação. As novas versões naturalmente introduziam mudanças significativas no código. Felizmente, tudo isso mudou e, neste artigo, mostramos um exemplo típico de automação do SDK do Node.js Dockerfile do repositório do operador-gitops. Esta postagem do blog apresenta isso para que você possa replicar um em seu ambiente.

Vamos examinar isso linha por linha:

  1. DO nó:16.9.1 - essa é a imagem base fornecida pelo Node.js para que não precisemos nos preocupar em instalá-la (entre outras coisas).
  2. Execute o apt-get ... - esta é uma série de comandos para instalar ferramentas para testar a conectividade entre seu ambiente de desenvolvimento e as implantações do Couchbase.
  3. WORKDIR /usr/app - aqui, estamos definindo um diretório que sempre será usado pelos comandos que seguem no dockerfile. Ele também define um caminho de entrada para que você chegue lá quando entrar no contêiner.
  4. EXECUTAR o npm init -y && npm install couchbase -save - isso instalará o Couchbase SDK de acordo com as instruções em nossos documentos.
  5. CMD ["sleep", "3600″] - é um hack para manter o contêiner ativo para que possamos anexá-lo.

Esses conceitos compartilhados também se aplicam a outros SDKs do Couchbase. Encontre uma imagem padrão relevante, instale as ferramentas, defina um diretório de trabalho, instale o SDK do Couchbase, defina algo no lugar para que possamos anexar e testar o código.

A primeira coisa que acontecerá em nossa implantação automática do ambiente de desenvolvimento será criar a imagem do Docker especificada no dockerfile e pré-carregar a imagem no KIND (Kubernetes no Docker).

Desenvolvimento Implantação de Kubernetes

Nossa imagem de contêiner recém-criada agora pode ser utilizada em uma implantação do Kubernetes em que o contêiner é implantado e dimensionado pelo sistema. Se o pod implantado do nosso contêiner falhar, o controlador de implantação do Kubernetes perceberá isso e iniciará uma nova instância.

Fornecemos uma definição de implantação simples e agradável no script create-dev.sh que usará nossa imagem do Docker e anexará alguns rótulos simples para gerenciar a implantação com o kubectl.

Implantação Rollout

Sem a implementação da definição de implantação, ela continuará sendo apenas uma definição. A próxima etapa é fazer uma implementação e apresentar o nome do nosso pod para que possamos enviar nosso código para ele.

Execução de código no contêiner

Nesta etapa, executamos com êxito o script create-dev.sh. Agora temos a tarefa de colocar nosso código no contêiner para testá-lo. Alguns comandos aqui nos ajudarão a colocar o código no contêiner e, em seguida, abrir um shell.

Este é apenas um exemplo, mas os conceitos devem permanecer os mesmos. Aqui, pegamos nosso diretório de código do SDK do Couchbase e o copiamos para o pod de desenvolvimento recém-criado (lembre-se de obter a saída de eco de "Dev Pod Name: X").

Esse comando nos levará ao shell dentro do contêiner. Você deverá ver a alteração do caminho no prompt. A partir daqui, você pode executar o código que copiou no comando "kubectl cp".

Código de amostra saboroso

Fornecemos um pequeno script de amostra que segue os mesmos padrões da nossa documentação do SDK. Os documentos do SDK fazem um trabalho fantástico ao explicar as características do Couchbase dos blocos de construção de um aplicativo Couchbase.

Observe esta documentação que ajuda a determinar o endpoint correto ao qual você deve se conectar. A chave aqui é o nome do cluster definido na implantação do cluster e anexado a -srv. Para citar a documentação: "O nome do serviço está no formato -srv."

As poucas configurações disponíveis na parte superior do script devem permanecer as mesmas para uma implementação padrão no Helm. Verifique se as credenciais de conexão usadas no script correspondem às da saída do comando: helm get all couchbase

De qualquer forma, você deve verificar se as opções de configuração atendem às suas expectativas. Lembre-se de que o código não mente - se ele não conseguir se conectar, provavelmente não foi informado sobre como se conectar corretamente. No entanto, se você fizer alterações que se desviem dos padrões, lembre-se de alterar o nome do cluster, o bucket e as credenciais de autenticação.

Conclusão

Você deve sair deste blog com um ambiente de desenvolvimento totalmente configurado, que lhe permitirá testar o código do Couchbase SDK em um cluster real do Couchbase, sem simulações! Espero que a automação ajude você a ter mais tempo para escrever código em vez de gerenciar ambientes de desenvolvimento, como eu tive que fazer durante meu tempo como desenvolvedor.

Aqui estão os links diretos para os recursos usados nesta postagem:

Documentos: Localizando o ponto de extremidade do cluster para o DNS do Kubernetes

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Sam Redman, engenheiro de soluções

Sam Redman é engenheiro de soluções na Couchbase. Sam trabalhou anteriormente em ambientes de desenvolvimento e SRE antes de ingressar na Couchbase.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.