Tecnologias de contêineres, como Docker simplificaram muito o processo de desenvolvimento, teste e implantação de software, permitindo que você empacote aplicativos juntamente com seu ambiente de tempo de execução completo que abstrai as diferenças de infraestrutura e sistemas operacionais. Esta postagem é uma cartilha sobre como você pode usar o Docker para configurar seu Couchbase Mobile ambiente de desenvolvimento e oferece algumas dicas de solução de problemas.

Tudo o que foi discutido nesta postagem se aplica a um simples desenvolvimento com o objetivo de agilizar o processo de desenvolvimento para que você possa começar a criar aplicativos móveis com rapidez e facilidade usando o Couchbase Mobile.

Em um artigo relacionado postagemNa seção de perguntas e respostas, discutimos como você pode aproveitar Kubernetes para dimensionar e gerenciar a implantação do cluster do Couchbase Mobile em ambientes de produção. O Operador autônomo do Couchbase simplifica muito a tarefa de implementar e gerenciar seu cluster.

Histórico

Em um nível elevado, o Couchbase Mobile A pilha é composta pelos seguintes componentes
- O Couchbase Lite, que é o banco de dados NoSQL incorporado e integrado aos seus aplicativos móveis
- O Sync Gateway, que é o gateway responsável pela sincronização de dados entre os clientes e o Couchbase Server
- O Couchbase Server, responsável pela persistência de dados

Para começar a desenvolver usando o Couchbase Mobile, você precisa de uma instância do Couchbase Server e do Sync Gateway. Você integrará a estrutura do Couchbase Lite aos seus aplicativos.

Nesta postagem, aprenderemos a usar o Docker para implantar uma instância de um Gateway de sincronização e um único nó Servidor Couchbase em um cluster desktop ambiente adequado para fins de desenvolvimento.

Instalação do Docker

Se você ainda não tiver feito isso, instale o Docker de acordo com o guia guia de instalação para seu ambiente de trabalho.

Você pode verificar a instalação do docker digitando o seguinte comando em uma janela de terminal.

 

Você deverá ver uma resposta semelhante à abaixo

Instalação do servidor Couchbase

O Couchbase Server está disponível em Docker Hub no couchbase repo. No momento da redação deste post, essa versão é a 6.0.1.

  • Primeiro, você obterá a imagem do Docker no Docker Hub. Abra uma janela de terminal e execute o seguinte comando

  • Crie uma rede docker local chamada "cbnetwork" (ou qualquer outro nome) se ainda não existir uma. Abra uma janela de terminal e execute o seguinte comando. Se você usar um nome de rede diferente de "cbnetwork", lembre-se de atualizar o uso correspondente do nome nas instruções restantes.

Configuração do servidor Couchbase

Depois que o Couchbase Server estiver instalado e em execução, você terá que configurá-lo antes de começar a usá-lo com o Sync Gateway

Aqui está o conjunto mínimo de coisas que você terá que fazer :-

  • Crie um cluster com os serviços adequados. Um cluster de nó único é suficiente para as necessidades de desenvolvimento
  • Configurar a conta do administrador para acesso ao servidor
  • Configurar o cluster
  • Criar um bucket padrão
  • Crie um usuário RBAC com acesso apropriado ao nível de bucket. As credenciais do usuário RBAC são usadas pelo Sync Gateway para autenticar com o Couchbase Server

Você tem duas opções de como configurar o Couchbase Server - Manual e Automatizado. Vá para a seção apropriada, dependendo da sua escolha.

Opção 1: Configuração usando a interface do usuário do administrador

Você pode configurar o Couchbase Server manualmente por meio da interface do usuário do console de administração do Couchbase
Para acessar a interface do administrador, precisamos executar a imagem do docker que extraímos anteriormente.

  • Execute o Couchbase Server com o seguinte comando. Isso executa o Couchbase Server como um processo daemon.

  • Você pode visualizar os registros a qualquer momento executando o seguinte comando

  • Se o servidor tiver sido iniciado com sucesso, você deverá ver algo como isto em seu resultado

  • Pode levar alguns segundos para que o servidor seja inicializado. Verifique se a imagem do docker está sendo executada com o seguinte comando

  • Quando o servidor estiver em funcionamento, acesse-o abrindo a URL http://localhost:8091 em seu navegador
  • Siga as instruções na seção guia de configuração para configurar a conta de administrador e criar um cluster de nó único.
  • Siga as instruções aqui para criar um balde
  • Em seguida, crie um usuário RBAC para que o Sync Gateway se conecte. Esse usuário será criado com a função "with "Application Access"", conforme especificado nas instruções aqui
  • Depois que seu Couchbase Server estiver configurado, certifique-se de anotar
    • O nome do bucket que você criou
    • As credenciais de usuário RBAC que você usou para a configuração

As credenciais RBAC e o nome do bucket serão necessários quando você estiver pronto para configurar o Sync Gateway

O processo manual é bom, mas pode se tornar entediante se você tiver que repetir esse processo várias vezes em cada uma de suas configurações de desenvolvimento. Não seria ótimo se as etapas de configuração pudessem ser automatizadas? Se estiver interessado em aprender sobre isso, prossiga para a próxima seção; caso contrário, pule para a seção sobre configuração do Sync Gateway.

Opção 2: Configuração usando a CLI

Gerei uma imagem docker personalizada a partir da imagem do Couchbase Server 6.0.1 que permitirá iniciar o contêiner com os valores de configuração apropriados por meio da linha de comando. Isso será particularmente útil se você quiser automatizar/roteirizar o processo de instalação/automação.

Embora a versão 6.0.1 seja a mais recente no momento em que escrevemos a publicação, provavelmente não é a mais recente no momento em que você a está lendo. Portanto, siga as etapas em "Building Custom Configurable Docker Image" para criar uma imagem personalizada com uma versão de servidor diferente.

  • Faça o download dessa versão de desenvolvimento personalizada da imagem do Couchbase Server com base no Couchbase Server 6.0.1.

  • Depois de fazer o download da imagem personalizada com sucesso, você pode iniciá-la fornecendo os valores de configuração apropriados como parte do comando de inicialização. Certifique-se de registrar as credenciais de usuário RBAC e o nome do bucket. Eles serão relevantes durante a configuração do Sync Gateway
    • COUCHBASE_ADMINISTRATOR_USERNAME é o nome do administrador do Couchbase
    • COUCHBASE_ADMINISTRATOR_PASSWORD é a senha do administrador do Couchbase
    • COUCHBASE_BUCKET é o nome do bucket do banco de dados que você gostaria de criar
    • COUCHBASE_RBAC_USERNAME é o nome do usuário RBAC do Sycn Gateway com acesso ao bucket de nível de aplicativo
    • COUCHBASE_RBAC_PASSWORD é a senha do usuário RBAC
    • COUCHBASE_RBAC_NAME é um nome de fácil utilização para o usuário RBAC
    • CLUSTER_NAME o nome do cluster do Couchbase Server

    Abra uma janela de terminal e digite o seguinte comando. Você pode fornecer valores adequados para cada um dos parâmetros configuráveis.

  • Você pode visualizar os registros a qualquer momento executando o seguinte comando

  • Você precisa ser paciente. O servidor leva alguns minutos para entrar em funcionamento. Se for bem-sucedido, sua saída deverá ser semelhante a esta

  • É isso aí! Agora você pode testar sua instalação.
    Acesse-o abrindo a URL http://localhost:8091 em seu navegador e verifique se sua configuração está conforme especificado

Criação de imagem do Docker personalizada e configurável

Se estiver se perguntando como gerei a imagem personalizada com opções configuráveis, há algumas maneiras de fazer isso. Mas adotei uma abordagem inspirada no tutorial. Basicamente, criei uma imagem do docker personalizada a partir da imagem base do servidor Coucbase e a configurei de acordo com nossas necessidades de desenvolvimento!

Há uma tonelada de valores configuráveis personalizados, conforme descrito no CLI do couchbase e Interface REST especificações. Em minha imagem personalizada do docker, permiti a configuração de alguns parâmetros críticos e deixei os outros como padrão.

Se quiser gerar sua própria imagem com base em uma versão diferente do Couchbase Server e/ou se quiser personalizar os parâmetros configuráveis, você poderá fazer isso seguindo as etapas especificadas neste guia

Instalação do Sync Gateway

Agora que você tem o Couchbase Server configurado e em funcionamento, instalaremos o Sync Gateway. É importante que o Couchbase Server esteja em funcionamento antes de você começar a usar o Sync Gateway.

O Sync Gateway está disponível em Docker Hub no couchbase repo.

  • Primeiro, você obterá a imagem do Docker no Docker Hub. Abra uma nova janela de terminal e execute o seguinte.

  • O Sync Gateway deve ser iniciado com um arquivo de configuração onde você especifica, entre outras coisas, o URL do Couchbase Server ao qual se conectar, o bucket a ser acessado e as credenciais RBAC a serem usadas para o acesso ao bucket. O arquivo de configuração determina o comportamento do gateway de sincronização em tempo de execução.

A imagem do docker que você extraiu foi criada com um arquivo de configuração padrão. Se você não especificar nenhum, esse será o arquivo usado (e provavelmente não funcionará para você).

  • Se você tiver uma configuração que gostaria de usar, abra-a em um editor de sua escolha. Caso contrário, crie um novo arquivo de configuração chamado sync-gateway-config.json e copie a seguinte configuração.

  • Você pode adicionar um sincronização ou qualquer uma das outras propriedades de configuração. Vamos nos concentrar nas principais que são essenciais para o nosso ambiente de desenvolvimento. Você deve fazer as edições apropriadas no arquivo de configuração conforme especificado abaixo.
  • O servidor URL especifica o nome do contêiner do Couchbase Server. Na seção execução do docker usado para iniciar o Couchbase Server, especificamos o nome usando o parâmetro --name opção.
  • O banco de dados e balde deve corresponder ao $COUCHBASE_BUCKET que você usou quando configurou o Couchbase Server. Em nosso exemplo, esse valor foi especificado como demobucket.
  • O nome de usuário corresponde ao nome de usuário da conta RBAC que você criou para o acesso ao bucket, conforme especificado pelo $COUCHBASE_RBAC_USERNAME que você usou quando configurou o Couchbase Server. Em nosso exemplo, esse valor foi especificado como administrador.
  • O senha corresponde à senha da conta RBAC que você criou para o acesso ao balde, conforme especificado pelo $COUCHBASE_RBAC_PASSWORD que você usou quando configurou o Couchbase Server. Em nosso exemplo, esse valor foi especificado como senha.
  • Depois que o arquivo de configuração estiver configurado, você iniciará o Sync Gateway com o arquivo. Para isso, abra um terminal e execute os seguintes comandos

  • Você pode visualizar os registros a qualquer momento executando o seguinte comando

  • Pode levar alguns segundos para que o gateway de sincronização seja inicializado. Verifique se a imagem do docker está sendo executada com o seguinte comando

  • Verifique se o gateway de sincronização está em execução abrindo a URL http://localhost:4984 em seu navegador.
    Você deverá ver o seguinte resultado

  • Verifique se o gateway de sincronização está se comunicando com o bucket do Couchbase Server abrindo a URL http://localhost:4985/demobucket/ em seu navegador. Aqui demobucket é o nome do bucket do banco de dados que criamos.
    Você deverá ver um resultado semelhante ao abaixo, indicando a versão do gateway de sincronização

 

É isso aí! Você tem sua instância do docker do gateway de sincronização conversando com o servidor Couchbase

Gerenciando seu ambiente

Nesta seção, veremos alguns comandos básicos do docker que ajudarão a gerenciar seu ambiente.

Parar/iniciar contêineres

  • Você pode parar e reiniciar os contêineres do docker a qualquer momento usando o comando parar e iniciar comandos do docker como segue.
    • Interrupção de contêineres

    • Iniciando contêineres

 

Observação que se você parar o Couchbase Server, o Sync Gateway tentará se reconectar ao servidor por alguns minutos antes de desistir. Portanto, se o servidor for interrompido por um longo período de tempo, será necessário interromper e reiniciar o contêiner do Sync Gateway também ou usar o comando _online API para colocá-lo novamente on-line.

Atualização da configuração do Sync Gatway

  • Se você quiser atualizar a configuração do gateway de sincronização, precisará executar novamente o Sync Gateway com um arquivo de configuração do gateway de sincronização atualizado. Para isso, será necessário interromper e remover o contêiner do gateway de sincronização.

Se você não remover a imagem do sync-gateway, verá um "erro de conflito de nome" semelhante ao abaixo se tentar iniciar o sync-gateway novamente com a configuração atualizada.

Atualização da configuração do servidor Couchbase

  • Da mesma forma, se quiser executar novamente o servidor Couchbase com uma configuração atualizada, você precisará parar e remover o servidor couchbase.

No entanto, dependendo da configuração do servidor que foi alterada, talvez seja necessário parar e remover o contêiner do gateway de sincronização e reiniciá-lo com o arquivo de configuração do gateway de sincronização atualizado. Por exemplo, se você alterou as credenciais RBAC para o bucket ou se alterou o nome do bucket que.

Executar comandos no contêiner

Às vezes, você pode querer executar comandos diretamente no contêiner em execução. Para isso, você pode usar o docker executar para abrir um shell no contêiner. Isso é extremamente útil para depuração e coisas do gênero. Você precisará de privilégios de root para poder executar o comando.

  • servidor couchbase

  • gateway de sincronização

Próximas etapas

Como você já deve ter percebido nesta publicação, os contêineres do docker tornam extremamente conveniente a instalação e o funcionamento de um cluster do Couchbase Server e do Sync Gateway em seu ambiente de desenvolvimento. Com a configuração do back-end fora do caminho, você pode se concentrar na criação de aplicativos móveis incríveis com o Couchbase Lite.

Como próxima etapa, você pode usar docker-compose para instalar os contêineres do Couchbase Server e do Sync Gateway. Lembre-se de que o Sync Gateway depende do Couchbase Server para estar em funcionamento.

Esta postagem abordou a configuração do contêiner docker em um ambiente de desenvolvimento. Em um ambiente de produção real, você provavelmente nunca implantaria um cluster de nó único. É provável que você queira ter vários nós para ter alta disponibilidade. Você pode usar uma tecnologia de orquestração como Kubernetes para simplificar a implantação e o gerenciamento do cluster do Couchbase Mobile.

Se você tiver dúvidas ou comentários, deixe um comentário abaixo. Os Fóruns do Couchbase são outro bom lugar para entrar em contato com perguntas.

 

Autor

Postado por Priya Rajagopal, Diretora Sênior, Gerenciamento de Produtos

Priya Rajagopal é diretora sênior de gerenciamento de produtos da Couchbase, responsável pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente há mais de 20 anos em vários cargos técnicos e de liderança de produtos, com mais de 10 anos de foco em tecnologias móveis. Como delegada de padrões de IPTV da TISPAN, ela foi uma das principais colaboradoras das especificações de padrões de IPTV. Ela tem 22 patentes nas áreas de rede e segurança de plataforma.

6 Comentários

  1. erro no arquivo de configuração. parâmetros duplicados de - "enable_shared_bucket_access":true,

    1. Está procurando uma maneira de carregar um novo arquivo de configuração?

  2. A entrada de configuração duplicada não causará nenhum problema. É benigno, mas vou corrigi-lo. Você terá que reiniciar o contêiner do docker com o arquivo atualizado.

    1. Ele não parecia benigno porque não iniciava o gateway de sincronização e o erro indicava entradas duplicadas. Reiniciei o servidor e o gateway de sincronização e recebo esse erro.

      2021-01-11T18:01:08.890Z [ERR] Erro ao ler o arquivo de configuração /etc/sync_gateway/: read /etc/sync_gateway/: is a directory - rest.ServerMain() at config.go:1091

  3. Use os fóruns de desenvolvimento do Couchbase para discutir e depurar problemas. Esse é o canal mais apropriado para esses tópicos.

    Além disso, você indicou que o gateway de sincronização não seria iniciado quando forneceu entradas de configuração de backup, portanto, compartilhe os logs que indicam o problema. O erro que você apresenta não está relacionado.

  4. Denis Rosa, defensor dos desenvolvedores, Couchbase janeiro 19, 2021 em 10:46 am

Deixar uma resposta