Colocando um aplicativo OpsWorks no modo de manutenção

2

Durante a execução das minhas receitas de implantação do OpsWorks, há um período em que o aplicativo precisa ficar inacessível pelo público. Existe uma maneira recomendada de conseguir isso?

É um site do Magento, e eu criei duas receitas. Um para criar maintenance.flag e um para excluí-lo novamente. Isso diz ao Magento para servir uma página de espera com um código de resposta HTTP 503.

Dois problemas com isso:

  • Como estou executando as receitas no início e no final das receitas personalizadas , o modo de manutenção só ocorre por alguns segundos - não o suficiente.
  • A veiculação do 503 dos servidores de aplicativos provavelmente é o caminho errado a seguir. Seria melhor mudar para o modo de manutenção no balanceador de carga, provavelmente? Caso contrário, o balanceador de carga (e o OpsWorks?) Verá as instâncias do aplicativo como off-line.

Existe uma maneira de executar minha receita de modo de manutenção antes que o código seja retirado do git ou imediatamente depois? Ou alguma maneira de usar uma receita undeploy ? Ou algo melhor?

    
por Aaron Pollock 21.05.2014 / 11:30

1 resposta

1

Opsworks tem a opção de executar manualmente uma receita por meio de implantações: link

Eu recomendaria a execução manual da sua receita aqui para colocar o site no modo de manutenção e, em seguida, executando sua implantação, o que deve desativar o modo de manutenção como etapa final.

Embora seja uma operação manual, se você tiver um ambiente de integração / implementação contínua, vale a pena observar que você pode fazer a mesma coisa por meio da AWS CLI: link

A ideia geral é que você faça o script de uma implantação na conclusão da compilação, execute sua receita, que a coloca no modo de manutenção e execute uma implantação real.

Espero que isso ajude!

EDITAR

Você também pode utilizar os ganchos de implantação do chef para executar uma configuração e desmontagem do modo de manutenção. Consulte: link

Escolha os respectivos ganchos que você deseja vincular e crie uma pasta deploy na raiz do seu aplicativo.

    
por 01.08.2014 / 16:34