Estratégias de Implantação e Gerenciamento de Versão

Estratégias de implantação Blue/Green, Canary, Rolling e distribuição de tráfego com Lambda Alias.

Apos desenvolver software, voce precisa implanta-lo para entrega-lo aos usuarios. Mas implantar uma nova versao em um servico ja usado por muitas pessoas e mais complicado do que parece. O exame AWS DVA-C02 pergunta qual estrategia de implantacao escolher nessas situacoes.

 

Comparando Estrategias de Implantacao

Uma estrategia de implantacao e um metodo sobre como aplicar uma nova versao de software aos servidores existentes. Vamos comparar as quatro estrategias principais.

All-at-once

Instala a nova versao em todos os servidores simultaneamente. Conclui mais rapido mas o servico pode ter downtime durante a implantacao. Se algo der errado, voce precisa reimplantar a versao anterior.

Rolling

Implanta em grupos pequenos de servidores em sequencia. Durante a implantacao, alguns servidores executam a versao antiga enquanto outros executam a nova.

Blue/Green

Mantem o ambiente existente (Blue) funcionando enquanto constroi um ambiente completamente novo (Green). Quando pronto, todo o trafego e direcionado ao Green de uma vez. Se surgirem problemas, voce pode voltar instantaneamente ao Blue. E a abordagem mais segura, mas operar dois ambientes completos dobra o custo.

Canary

Apenas uma pequena porcao do trafego (por exemplo, 10%) e enviada primeiro para a nova versao. Se nao aparecerem problemas, o percentual e aumentado gradualmente ate chegar a 100%.

!4 estratégias de implantação: All-at-once, Rolling, Blue/Green, Canary

Estrategias de Implantacao no Lambda

Versions e Aliases do Lambda

Version: Snapshot imutavel da funcao Lambda. $LATEST = estado mais recentemente modificado. Alias: Rotulo com nome que aponta para uma versao especifica (ex: "prod", "dev").

Distribuicao de trafego com Aliases

Voce pode conectar duas versoes a um unico alias com pesos de trafego.

Exemplo: alias prod -> versao 1 (90%) + versao 2 (10%) = implantacao canario.

Integracao com AWS CodeDeploy: Canary10Percent5Minutes: 10% por 5 minutos, depois 100% Linear10PercentEvery1Minute: +10% a cada minuto AllAtOnce: 100% imediatamente

 

Rollback

Lambda: Mude o alias para a versao anterior (quase instantaneo) ECS: Atualize para Task Definition anterior EC2: Rollback via CodeDeploy

 

Pontos-Chave do Exame

"Novo ambiente, troca de trafego, rollback instantaneo" -- Blue/Green

"Teste com pouco trafego, expansao gradual" -- Canary

"Implantacao em lotes sequenciais" -- Rolling

"Nomear versao Lambda" -- Lambda Alias

"Dividir trafego Lambda entre duas versoes" -- Alias com pesos

"10% por 5 minutos depois tudo" -- Canary10Percent5Minutes

"Aumentar 10% a cada minuto" -- Linear10PercentEvery1Minute

"100% imediatamente" -- AllAtOnce

Blue/Green e a mais segura mas dobra o custo

Voltar à lista do blog