1
resposta

[DÚVIDA] Atualizar imagem de container sem derrubar o serviço no EC2

Olá!

Para atualizar a imagem de um container eu necessito dar um stop no container, remove-lo e cria-lo novamente. O problema de fazer esta ação é que minha aplicação já está em produção em uma instância no EC2 e fazer isto irá deixar a aplicação fora do ar por alguns segundos. Como eu faço para atualizar a imagem do container sem deixar meu sistema fora do ar no EC2?

1 resposta

Olá Deise! Tudo bem?

Manter a disponibilidade do serviço é fundamental, especialmente em um ambiente de produção.

Uma estratégia que você pode usar é o "Blue/Green Deployment". Neste método, você teria duas instâncias EC2, a "blue" e a "green". Em um momento, apenas uma dessas instâncias (digamos, a "blue") está servindo o tráfego de produção.

Quando você precisa atualizar a imagem do container, você faz isso na instância "green" (que não está servindo o tráfego de produção). Depois de atualizar e testar a imagem do container na instância "green", você altera o roteamento do tráfego de produção para a instância "green". Agora, a instância "green" está ativa e a "blue" está inativa.

A vantagem deste método é que a atualização da imagem do container não afeta a disponibilidade do serviço, pois a instância que está sendo atualizada não está servindo o tráfego de produção naquele momento.

Aqui está um exemplo prático de como você pode fazer isso:

  1. Inicie uma nova instância EC2 (a instância "green").
  2. Atualize a imagem do container na instância "green".
  3. Teste a instância "green" para garantir que tudo está funcionando corretamente.
  4. Altere o roteamento do tráfego de produção para a instância "green". Você pode fazer isso alterando as configurações no seu balanceador de carga, por exemplo.
  5. Agora, a instância "green" está servindo o tráfego de produção e você pode atualizar a imagem do container na instância "blue" sem afetar a disponibilidade do serviço.

Espero ter ajudado e bons estudos!