Quando estou em eventos e conferências, sempre me perguntam quanto o Couchbase cobra pela hospedagem. A resposta simples é que o Couchbase é
uma empresa de software e não uma empresa de hospedagem, mas isso não significa que você não possa hospedar o Couchbase por meio de algum outro serviço. Há Couchbase
imagens disponíveis em serviços como Amazon Web Services (AWS), Azure, Joyent e muitos outros.
Em particular, vamos analisar a hospedagem do Couchbase Server em Triton da Joyent com o Docker.
Um histórico sobre a Joyent e a Triton
Se você não conhece a Joyent, ela é uma empresa de software e serviços especializada em nuvem pública e privada orientada para o desempenho
computação. Usando o serviço Triton da Joyent, você pode "...implantar e operar contêineres com segurança e velocidade bare metal em
infraestrutura nativa de contêineres". Algumas das vantagens de executar contêineres do Docker no Triton incluem:
- Seus contêineres são executados em bare metal, eliminando a sobrecarga de virtualização no nível do hardware. Em outras palavras, você terá a experiência de
melhorou significativamente o desempenho. - Cada contêiner tem seu próprio endereço IP, o que facilita a conexão em rede entre os contêineres.
- Você pode redimensionar seus contêineres do Docker sem tempo de inatividade.
Os requisitos
Como vamos instalar e executar um cluster do Couchbase Server no Triton da Joyent, haverá alguns requisitos no processo:
- Docker 1.8
- Uma conta Joyent
- Uma chave privada SSH
Você provavelmente pode usar uma versão diferente do Docker, mas eu estou usando a 1.8. Cabe a você decidir o quão aventureiro quer ser.
Uso do Couchbase com contêineres do Docker
Neste ponto, se você ainda não tiver instalado o Caixa de ferramentas do Docker, agora é um
bom tempo. Ele conterá todas as ferramentas necessárias para usar o Docker em nosso computador local.
Agora, a Docker Toolbox contém uma ferramenta chamada Kitematic, que oferece suporte de GUI para o Docker. Não usaremos essa ferramenta. Em vez disso, vamos usar
para fazer tudo no Terminal (Mac e Linux) ou no Prompt de Comando (Windows).
Observe que, por enquanto, usaremos o Docker apenas localmente, apenas para nos familiarizarmos com o Couchbase e o Docker. Mais adiante neste guia, usaremos
conectando-se ao serviço Triton da Joyent.
Faça download e inicie um contêiner do Couchbase Server
No aplicativo Docker Terminal, execute o seguinte comando:
1 2 3 |
doca executar --nome couchbase-servidor-1 -d -p 8091:8091 couchbase |
O comando acima fará o download da imagem oficial mais recente do Docker do Couchbase Server, dará um nome ao contêiner em nosso sistema e o iniciará.
Você pode testar se foi bem-sucedido visitando http://192.168.99.100:8091/ em seu navegador. Observação
que 192.168.99.100 é o que o Terminal do Docker informou quando você o iniciou.
Iniciar um segundo contêiner do Couchbase Server
Vá em frente e inicie uma segunda instância local do Couchbase Server com o Docker. Desta vez, você deseja fazer o seguinte:
1 2 3 |
doca executar --nome couchbase-servidor-2 -d -p 8092:8091 couchbase |
Observe que, desta vez, alteramos o nome do contêiner e aumentamos a porta do host para 8092 em vez de 8091. Este
é para evitar conflitos de portas.
Parar e remover os dois contêineres do servidor Couchbase
Não precisamos mais desses contêineres do Docker do Couchbase Server em execução local. Para removê-los, precisamos primeiro descobrir seus contêineres
valor do contêiner da seguinte forma:
1 2 3 |
doca ps |
O resultado será parecido com o seguinte:
1 2 3 4 5 |
CONTAINER ID IMAGEM COMANDO CRIADO STATUS PORTOS NOMES 9f3b05af8393 couchbase "/entrypoint.sh couch" 9 minutos atrás Para cima 9 minutos 8092-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp, 0.0.0.0:8092->8091/tcp couchbase-servidor-2 b20045600bd0 couchbase "/entrypoint.sh couch" 9 minutos atrás Para cima 9 minutos 8092-8093/tcp, 11207/tcp, 11210-11211/tcp, 0.0.0.0:8091->8091/tcp, 18091-18092/tcp couchbase-servidor-1 |
Com os valores exclusivos do contêiner, você pode executar:
1 2 3 4 5 6 |
doca parar 9f3b05af8393 doca parar b20045600bd0 doca rm 9f3b05af8393 doca rm b20045600bd0 |
Agora, os dois contêineres locais devem ser removidos.
Como conectar o Docker à API do Triton Cloud
Até agora, tudo o que o Docker e o Couchbase faziam era local em seu computador. Agora, vamos conectar nosso cliente Docker ao Joyent
Cloud API para que possamos usar o Triton. As etapas que vamos seguir podem ser encontradas em
o Documentação oficial da Joyentmas também pode ser visto neste guia.
Comece obtendo o script auxiliar Joyent da seguinte forma:
1 2 3 |
enrolar -O https://raw.githubusercontent.com/joyent/sdc-docker/master/tools/sdc-docker-setup.sh |
Se você não tiver ou não puder usar enrolar baixar o arquivo manualmente. Com o script baixado, agora você deseja executá-lo,
passando um conjunto específico de parâmetros:
1 2 3 |
bash sdc-doca-configuração.sh ~/.ssh/ |
O CLOUDAPI_URL pode ser uma das seguintes opções, de acordo com a documentação:
- https://us-east-1.api.joyent.com
- https://us-sw-1.api.joyent.com
- https://eu-ams-1.api.joyent.com
O ACCOUNT_NAME é o nome de usuário que você usa para entrar no painel da Joyent. Como mencionado anteriormente, você precisará de um SSH
chave privada para conectar PRIVATE_KEY_FILE.
Quando você executar o script, ele poderá solicitar que você digite a senha da chave privada algumas vezes. Basta seguir as instruções e fazer o que ele diz. Em
no final, ele lhe fornecerá algo parecido com o seguinte:
1 2 3 4 5 6 |
exportação CAMINHO_DOCUMENTO_CERTIFICADO=/Usuários/garoto/.sdc/doca/garoto exportação DOCKER_HOST=tcp://us-east-1.docker.joyent.com:2376 exportação TEMPO LIMITE DO CLIENTE=300 exportação DOCKER_TLS_VERIFY=1 |
Você vai querer executar esses exportação mas não se esqueça de alterar minhas declarações garoto ao de qualquer
que ele gerou para você. Essas instruções de exportação são importantes porque, depois de executá-las, o Docker usará o Joyent para gerenciar
em vez de sua máquina local.
Executar contêineres do Couchbase Server na Joyent
Lembra-se dos comandos locais do Docker que executamos anteriormente? Vamos executá-los novamente com uma pequena modificação:
1 2 3 |
doca executar --nome couchbase-servidor-1 -d -P couchbase |
Não deveríamos precisar definir o mapeamento de portas por conta própria quando se trata do Joyent. Isso ocorre porque a Joyent nos fornece um IP para cada contêiner que
criar. Em nossa máquina local, temos apenas um IP e as portas se tornam um problema. Basta usar o -P bandeira e você
deve ser bom.
Se você entrar no seu painel Joyent, deverá ver o nó e seu endereço IP. Se você não quiser obter as informações via
o painel Joyent, você sempre pode fazer isso por meio do Docker Terminal, pois tudo o que ele faz está no lado remoto agora:
1 2 3 4 |
doca ps doca inspecionar --formato '{{ .NetworkSettings.IPAddress }}' 9f3b05af8393 |
Lembre-se, é claro, de trocar o ID exclusivo do contêiner por aqueles retornados de docker ps.
Configurar seu primeiro nó do Couchbase
Usando um dos endereços IP retornados do inspeção de docas digite-o em seu navegador da Web com a porta
8091 anexado. Algo como http://165.225.158.112:8091 o fará.
Siga as etapas para configurar o cluster do Couchbase. Lembre-se do IP e das credenciais de administrador, pois eles serão necessários quando
adicionar novos nós ao seu cluster.
Adicionar mais nós ao seu cluster do Couchbase Triton
É hora de adicionar outro contêiner do Couchbase Server ao Triton para que possamos agrupar nossos nós do Couchbase. No Terminal do Docker, execute:
1 2 3 |
doca executar --nome couchbase-servidor-2 -d -P couchbase |
Como discutimos anteriormente, obtenha o IP desse contêiner e inicialize-o em seu navegador da Web na porta 8091.
Em vez de optar por criar um novo cluster do Couchbase, escolha participar de um e insira as informações do outro servidor. Quando concluído,
reequilibre o servidor e você estará pronto para começar!
Remover contêineres do cluster
Como o Couchbase é bastante escalonável, você provavelmente precisará remover nós de vez em quando. Para fazer isso, você deverá
precisa primeiro remover graciosamente o nó do Couchbase do seu cluster por meio do painel administrativo do Couchbase. A remoção incluirá
um rebalanceamento de todos os seus nós existentes.
Com o nó removido com segurança do cluster, agora você pode remover seu contêiner do serviço Triton da Joyent. Em seu terminal do Docker, prossiga
com as mesmas etapas que seguimos quando removemos um contêiner localmente:
1 2 3 4 5 6 7 |
doca ps doca parar 9f3b05af8393 doca parar b20045600bd0 doca rm 9f3b05af8393 doca rm b20045600bd0 |
Lembre-se, é claro, de trocar os IDs exclusivos do contêiner pelos retornados de docker ps.
Conclusão
Acabamos de ver como usar o serviço Triton da Joyent para hospedar contêineres do Docker com o Couchbase Server. O uso do Joyent lhe proporcionará uma incrível
desempenho com sua infraestrutura bare-metal e excelente segurança.
O tópico de segurança estava fora do escopo deste artigo específico, mas pode ser revisitado em uma postagem futura.
Para complementar este artigo, a Joyent está oferecendo aos usuários do Couchbase um desconto promocional em seu serviço Triton. Você pode se inscrever no Joyent e
aproveite esta oferta aqui.