Atualizando para as imagens mais recentes do Docker no Elastic Beanstalk Multicontainer

2

Estou executando um site no Elastic Beanstalk usando uma configuração de vários contêineres. Eu estou querendo saber qual é a estratégia preferida para puxar as últimas imagens.

No servidor de IC, após as confirmações bem-sucedidas para o mestre, estou construindo as imagens do Docker, enviando-as para os repositórios no AWS Elastic Container Service e executando algo como:

CURRENT_VERSION='aws elasticbeanstalk describe-environments --environment-names $ENVIRONMENT_NAME | jq -r '.Environments[0].VersionLabel''
aws elasticbeanstalk update-environment --environment-name $ENVIRONMENT_NAME --version-label $CURRENT_VERSION'

Isso funciona mais ou menos, mas estou me perguntando se essa é a maneira mais eficiente de atualizar o site. Os documentos do ambiente de atualização dizem muito pouco.

Além disso, o ambiente é composto de 4 imagens diferentes, cada uma com seu próprio repositório e atualizada independentemente por equipes diferentes. O problema é que, às vezes, as atualizações "colidem" se o ambiente já estiver executando uma atualização. Eu poderia esperar que Status fosse "Pronto" e AbortableOperationInProgress fosse falso, mas não quero segurar o servidor de IC por vários minutos.

Eu estava pensando em usar o Amazon SQS + Lambda para colocá-los em fila, mas é muito exagerado. Seria extremamente útil se o EBS já tivesse essa fila de atualizações embutidas. Eu não posso ser a primeira pessoa a se deparar com esse problema.

Todas as ideias e ponteiros são apreciados.

Obrigado,

Juan

    
por Juan Delgado 07.05.2018 / 16:04

0 respostas