DEV Community

Luis Justin
Luis Justin

Posted on • Originally published at luisjustin.com.br on

Transforme suas Implantações com Docker Rollout: Zero Downtime é Realidade

Introdução

No mundo da tecnologia, onde cada segundo de inatividade pode custar caro, implementar atualizações sem interromper os serviços tornou-se um objetivo crucial. O Docker Rollout surge como uma luz no fim do túnel para desenvolvedores e operadores de sistemas que usam o Docker Compose. Neste post, vamos mergulhar nos detalhes desse plugin revolucionário, explicando como ele pode mudar a forma como você faz implantações, tornando-as mais eficientes e sem interrupções.

Uso do Docker Rollout

O princípio de funcionamento do Docker Rollout é simples mas eficaz. Tradicionalmente, ao usar o comando docker compose up -d <service> para atualizar um serviço, enfrentamos o desafio do tempo de inatividade. O Docker Rollout substitui esse comando por docker rollout <service>, escalando o serviço para o dobro de instâncias, esperando que os novos containers estejam prontos e, em seguida, removendo os antigos. Essa abordagem assegura que seu serviço permaneça online e acessível durante todo o processo de atualização.

Instalação

A instalação do Docker Rollout é direta.

Siga os passos abaixo:

1. Criar diretório para plugins do CLI do Docker

mkdir -p ~/.docker/cli-plugins
Enter fullscreen mode Exit fullscreen mode

2. Baixar o script do Docker Rollout

curl https://raw.githubusercontent.com/wowu/docker-rollout/master/docker-rollout -o ~/.docker/cli-plugins/docker-rollout

Enter fullscreen mode Exit fullscreen mode

3. Tornar o script executável

chmod +x ~/.docker/cli-plugins/docker-rollout
Enter fullscreen mode Exit fullscreen mode

Exemplos de Uso

Para ilustrar o poder do Docker Rollout, vamos ver como utilizá-lo em um cenário prático. Suponha que você queira atualizar um serviço chamado “web” sem causar interrupções:

# Atualizar o serviço "web" sem tempo de inatividade
docker rollout web -f docker-compose.yml
Enter fullscreen mode Exit fullscreen mode

Neste comando, -f docker-compose.yml especifica o arquivo Compose a ser usado, embora não seja obrigatório se você estiver trabalhando no diretório onde o docker-compose.yml está localizado.

Vantagens

  • Zero Downtime : O principal benefício do Docker Rollout é a capacidade de atualizar serviços sem interrupção.
  • Compatibilidade : Funciona com Docker Compose e docker-compose.
  • Suporte a Healthchecks : Garante que o tráfego seja direcionado para os novos containers apenas quando estiverem prontos.

Desvantagens

  • Limitações de Configuração : Não suporta container_name e ports definidos simultaneamente no docker-compose.yml.
  • Necessidade de Proxy : Requer um proxy para rotear o tráfego, como Traefik ou nginx-proxy.

Conclusão

O Docker Rollout é uma ferramenta indispensável para quem busca eficiência e disponibilidade em implantações de serviços. Experimente hoje mesmo e veja como ele pode simplificar seus processos de implantação, garantindo que seus serviços permaneçam online durante atualizações.

Links Externos de Interesse

O post Transforme suas Implantações com Docker Rollout: Zero Downtime é Realidade apareceu primeiro em Let's Code And Drink Coffe.

Top comments (0)