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 |
docker run --name couchbase-server-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 https://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 |
docker run --name couchbase-server-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 |
docker ps |
O resultado será parecido com o seguinte:
|
1 2 3 4 5 |
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9f3b05af8393 couchbase "/entrypoint.sh couch" 9 minutes ago Up 9 minutes 8092-8093/tcp, 11207/tcp, 11210-11211/tcp, 18091-18092/tcp, 0.0.0.0:8092->8091/tcp couchbase-server-2 b20045600bd0 couchbase "/entrypoint.sh couch" 9 minutes ago Up 9 minutes 8092-8093/tcp, 11207/tcp, 11210-11211/tcp, 0.0.0.0:8091->8091/tcp, 18091-18092/tcp couchbase-server-1 |
Com os valores exclusivos do contêiner, você pode executar:
|
1 2 3 4 5 6 |
docker stop 9f3b05af8393 docker stop b20045600bd0 docker rm 9f3b05af8393 docker 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 |
curl -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-docker-setup.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 |
export DOCKER_CERT_PATH=/Users/nraboy/.sdc/docker/nraboy export DOCKER_HOST=tcp://us-east-1.docker.joyent.com:2376 export DOCKER_CLIENT_TIMEOUT=300 export 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 |
docker run --name couchbase-server-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 |
docker ps docker inspect --format '{{ .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 https://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 |
docker run --name couchbase-server-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 |
docker ps docker stop 9f3b05af8393 docker stop b20045600bd0 docker rm 9f3b05af8393 docker 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.