Forem

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.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay