Existe uma maneira de acelerar o AWS CodeDeploy?

11

Estou usando o AWS CodeDeploy para implantar meus sites, e notei que não é muito consistente em velocidade; às vezes é bem rápido, mas outras vezes, cada etapa de uma implantação pode levar alguns minutos. Isso é muito irritante quando uma implantação deve ser executada rapidamente, no caso de erros ou interrupções.

Não consigo encontrar nenhuma documentação sobre a velocidade do CodeDeploy, e também não consigo encontrar nenhuma lógica quando está lenta ou quando está rápida. Existe alguma maneira de acelerar e há alguma maneira de saber o que está demorando tanto?

    
por Jasper Kennis 15.02.2016 / 12:00

2 respostas

8

O CodeDeploy faz muito pouco por padrão - ele pega o código do S3 ou Github, então executa os seus scripts de acordo com as instruções do arquivo appspec.yml .

Se suas implantações estiverem capturando gigabytes de dados do S3, você descobrirá que leva algum tempo para a transferência de dados (principalmente em instâncias EC2 menores com largura de banda limitada), mas além disso, os atrasos de implantação são muito mais prováveis para o que você estiver fazendo em seus scripts de implantação.

As etapas em uma implantação do CodeDeploy são:

  • ApplicationStop - você controla esse gancho
  • DownloadBundle - CodeDeploy agarra código do S3 / Github
  • BeforeInstall - você controla esse gancho
  • Instalar - CodeDeploy copia o código de um local temporário para o destino final
  • AfterInstall - você controla esse gancho
  • ApplicationStart - você controla esse gancho
  • ValidateService - você controla esse gancho

Os em negrito estão no CodeDeploy, os outros são com você. Se você está vendo vários atrasos nos em negrito, entre em contato com o suporte da AWS, mas caso contrário, é provável que você precise investigar seus ganchos.

    
por 15.02.2016 / 15:43
14

BlockTraffic e AllowTraffic

O simples ajuste das configurações da verificação de saúde do seu grupo-alvo pode reduzir alguns minutos.

Antes

Depoisde

Explicação

Isso funciona porque BlockTraffic e AllowTraffic aguardam verificações de integridade bem-sucedidas. O intervalo de verificação de integridade padrão é de 1 verificação a cada 30 segundos, e uma verificação de integridade bem-sucedida precisa de 5 respostas consecutivas de 200. Assim, leva mais de 2 min 30 segundos por padrão. E isso é para cada instância do EC2. Diminuir o intervalo de verificação de integridade e limitar o número de verificações de êxito necessárias aumentará o tempo de implantação.

    
por 09.01.2018 / 00:37