Transforme suas Implantações com Docker Rollout: Zero Downtime é Realidade
Tags: devops, docker, ferramentas, infraestrutura
Published: 2024-03-14 14:33:01

---
title: Transforme suas Implantações com Docker Rollout: Zero Downtime é Realidade
published: true
date: 2024-03-14 14:03:54 UTC
tags: DevOPS,Docker,Ferramentas,Infraestrutura
canonical_url: https://luisjustin.com.br/2024/03/14/docker-rollout-zero-downtime-deployment/
---

## **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
```

### 2. Baixar o script do Docker Rollout

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

```

### 3. Tornar o script executável

```
chmod +x ~/.docker/cli-plugins/docker-rollout
```

## **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
```

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**

- Documentação Oficial do Docker: [https://docs.docker.com/](https://docs.docker.com/)
- Traefik, o Proxy Moderno: [https://traefik.io/traefik/](https://traefik.io/traefik/)

O post [Transforme suas Implantações com Docker Rollout: Zero Downtime é Realidade](https://luisjustin.com.br/2024/03/14/docker-rollout-zero-downtime-deployment/) apareceu primeiro em [Let's Code And Drink Coffe](https://luisjustin.com.br).