Pare a implantação do opsworks após a primeira falha

1

Finalmente, terminei de configurar um ambiente totalmente funcional no AWS Opsworks para um de nossos projetos, mas não o integrei totalmente ao vivo.

Depois de fazer alguns ajustes em um dos meus modelos, acidentalmente enviei um erro de sintaxe do chef, atualizei meu repositório de receitas personalizado nas instâncias em execução e reimplantei meu aplicativo.

No meio da implantação, a primeira instância obviamente falhou e a segunda ainda continuou executando a implantação. Tentando carregar o site por meio do balanceador de carga, vejo que o site já caiu e a implantação na segunda instância foi concluída logo em seguida.

Como eu disse, isso não estava em produção e, uma vez que vamos ao ar, teremos um staging stack também, e espero que nada assim aconteça ao vivo (ou seja, erros de sintaxe do chef), mas eu ainda estava curioso para saber se o Opsworks fornece algo em que você pode dizer: "você falhou em uma instância; agora pare de implantar no restante das instâncias".

Também seria bom se houvesse uma maneira de ser notificado quando uma implantação falha, como enviar uma notificação do SNS ou algo semelhante.

Eu estava curioso sobre como outras pessoas lidam com situações como essas: onde uma implantação falha, pare de ser implantada em todas as instâncias, notificações, reversão etc. Ou talvez eu tenha perdido algumas configurações no painel.

    
por Titi 19.05.2015 / 13:20

1 resposta

0

Infelizmente, o OpsWorks ainda não suporta implementações contínuas (como CodeDeploy e Elastic Beanstalk). Portanto, é difícil parar as outras instâncias que podem estar na metade da execução da tarefa no momento em que uma instância falha.

Minha sugestão é clonar sua pilha de produção para criar uma pilha de desenvolvimento. Tenha um branch master e de git de produção em seu repositório de receitas, sua pilha de desenvolvimento usa o master e a produção usa o branch de produção.

Faça todo o seu trabalho e teste na pilha de desenvolvimento, onde não importa se você implantar acidentalmente com um erro de sintaxe do Chef. Uma vez que você tenha testado suas alterações e esteja satisfeito de que elas estão prontas para entrar em operação, junte o mestre à produção e execute a tarefa em sua pilha de produção.

    
por 23.05.2015 / 09:12