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

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

Finalmente terminei de configurar um ambiente totalmente funcional no AWS Opsworks para um de nossos projetos, mas ainda não o coloquei totalmente em operação.

Depois de fazer alguns ajustes em um dos meus modelos, acidentalmente enviei um erro de sintaxe do chef, atualizei meu repositório de livro 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 a implantação. Tentando carregar o site através do balanceador de carga posso ver 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, assim que entrarmos no ar, teremos uma pilha de teste também e espero que nada parecido com isso aconteça ao vivo (ou seja, erros de sintaxe do chef), mas ainda assim eu estava curioso para saber se o Opsworks fornece algo onde você pode dizer: "você falhou em uma instância; agora pare de implantar nas demais instâncias".

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

Fiquei curioso para saber como outras pessoas lidam com situações como estas: onde uma implantação falha, pare de implantar em todas as instâncias, notificações, reversão, etc. Ou talvez eu tenha perdido algumas configurações no painel.

Responder1

Infelizmente, o OpsWorks ainda não oferece suporte a implantações contínuas (como CodeDeploy e Elastic Beanstalk). Portanto, é difícil interromper as outras instâncias que podem estar no meio da execução da tarefa no momento em que uma instância falha.

Minha sugestão é clonar sua pilha de produção para formar uma pilha de desenvolvimento. Tenha um branch git master e um de produção em seu repositório de receitas, sua pilha de desenvolvimento usa o branch 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ê implanta acidentalmente com um erro de sintaxe do Chef. Depois de testar suas alterações e estar satisfeito com o fato de que elas estão prontas para entrar em operação, mescle o master na produção e execute a tarefa em sua pilha de produção.

informação relacionada