Quando fazes deploy de uma nova versão da tua aplicação no wolke, os teus utilizadores não sentem nada.
O site continua online enquanto a nova versão é lançada.
Isto não é magia.
É Kubernetes configurado da forma certa.
O que significa zero-downtime
Zero-downtime significa algo muito simples:
Durante um deploy, pelo menos uma versão funcional da tua aplicação está sempre disponível.
Mesmo que a nova versão demore alguns segundos (ou minutos) a arrancar, a versão anterior continua a servir tráfego.
Como a Wolke faz isso
Todas as aplicações na Wolke correm em Kubernetes Deployments configurados com Rolling Updates.
Na prática usamos:
maxUnavailable = 0maxSurge = 1
Isto diz ao Kubernetes:
“Nunca desligues uma versão antes de a nova estar pronta.”
Ou seja, Kubernetes cria sempre um novo container primeiro e só depois remove o antigo.
Nunca há um momento em que a tua aplicação fica sem instâncias ativas.
Como sabemos que a nova versão está pronta
Na Wolke, não basta o container arrancar.
A nova versão só entra em produção quando a aplicação está realmente pronta para receber tráfego.
Para isso usamos um Readiness Probe baseado em TCP, que verifica se a tua aplicação já abriu a sua porta de rede.
Em termos simples:
Se a tua app ainda não estiver a aceitar conexões, Kubernetes não envia tráfego para ela.
Só quando a porta está aberta é que a nova versão começa a receber pedidos dos utilizadores.
O que acontece durante um deploy
Quando fazes um novo deploy na Wolke:
- Kubernetes inicia um novo container com a nova versão
- A plataforma espera que a app arranque e abra a sua porta
- A versão antiga continua a servir utilizadores
- Quando a nova versão está pronta, começa a receber tráfego
- Só depois a versão antiga é desligada
Para os teus utilizadores, nada muda.
O site nunca fica offline.
Porque isto é importante
Sem este tipo de configuração, um deploy pode causar: - pedidos falhados - páginas em branco - interrupções de serviço
Na Wolke, os deploys são progressivos e seguros.
Mesmo que a nova versão demore mais tempo a arrancar, a anterior continua online.
Zero-downtime é o padrão na Wolke
Deploys sem downtime não são um extra.
São parte do núcleo da plataforma.
Na Wolke podes lançar novas versões com confiança, sabendo que a tua aplicação continua sempre disponível para os teus utilizadores.