Qual é a melhor maneira de compartilhar código-fonte entre instâncias do EC2?

5

Atualmente, tenho 4 instâncias do EC2 na nuvem amazon atrás de um balanceador de carga e esse número crescerá para 20 a 30. Eu estou procurando a melhor maneira de gerenciar o código-fonte em todas essas instâncias. Há um servidor http + php em execução em todas as instâncias.

O que eu preciso é uma maneira de atualizar o código-fonte em todas as instâncias simultaneamente. Depois de alguma pesquisa, acho que encontrei uma solução - crie um servidor NFS e exporte o diretório com o código-fonte para todas as instâncias. Cada instância montará esse diretório exportado e o usará como raiz de documento para o servidor http do apache.

Esta abordagem é correta ou você sugere alguma outra coisa? O NFS é capaz de compartilhar o código-fonte para todos os nós do EC2 simultaneamente?

    
por Michal Jajcaj 30.05.2012 / 03:05

1 resposta

7

O NFS certamente pode ser usado para isso, mas ao fazer isso dessa maneira, você está configurando um ponto único de falha significativo. Se o servidor NFS cair, você está ferrado. Além disso, o desempenho de E / S de disco sofrerá ao usar o NFS devido ao salto extra na rede que é necessário com o NFS.

Em vez disso, recomendo pesquisar em uma ferramenta de implantação como Tecido ou Capistrano . Qualquer um deles pode obter o código enviado para seus servidores muito rapidamente. Se você está preocupado com alguns servidores que estão "fora de sintonia" temporariamente durante a implantação, você deve fazer com que o LB retire esse servidor da rotação antes que o novo código seja implantado e, em seguida, ser adicionado novamente à rotação após a implantação bem-sucedida.

Adendo: "Implantação simultânea" é um sonho. Apenas esqueça isso. É difícil o suficiente com alguns servidores, sem falar em dezenas ou centenas.

    
por 30.05.2012 / 03:08