Estou trabalhando com um projeto que usa o Jenkins para criar e implantar microsserviços no Elastic Beanstalk. Implementamos uma ramificação de integração em um ambiente de teste, liberamos ramificações em um ambiente de preparação e, em seguida, uma construção principal final para produção. Tenho algumas preocupações em fazê-lo desta maneira: primeiro, significa que terminamos com uma matriz de uma compilação por projeto por ambiente, duplicando esforços; e dois, significa que não estamos implementando os mesmos artefatos de construção na produção que foram validados no preparo.
Estou inclinado a abandonar o Beanstalk e mudar para ASGs simples usando algo como Chef para implantações. Isso nos deixaria com uma construção por projeto, produzindo um artefato de construção, e poderíamos implantar o mesmo artefato na produção que foi aprovado na preparação. A transição tem um custo inicial não-insignificante, no entanto. Existe alguma maneira de usar o Beanstalk melhor que permita um IC / CD mais confiável e fácil de gerenciar?
Nota : Promover o mesmo artefato de construção é exatamente o que eu quero fazer, mas pelos documentos não vejo uma maneira clara de fazer isso; explica como implantar no EB a partir da fonte do aplicativo, mas não como promover uma versão existente para outro ambiente, a menos que eu tenha conseguido rolar a página. Se estiver disponível no próprio EB, pode haver uma limitação no plug-in de implantação do Jenkins EB que impede que seja feito especificamente no Jenkins, mas não vi uma maneira de fazê-lo.