Prática recomendada para sincronizar fontes entre servidores (Amazon EC2)

1

Estou mudando de um único servidor de aplicativos para carregar configurações balanceadas.

Na configuração do servidor único sincronizei as fontes com o S3 cmd sync s3 a cada poucos minutos e no hostup (evento Scalr) eu sincronizo as fontes de volta do S3. Isso garante que o servidor execute fontes atualizadas.

Qual é a melhor prática quando o número de servidores de aplicativos é dinâmico?

Suponha que eu tenha 2 servidores e o servidor A obtenha fontes atualizadas. Se o script de sincronização for executado primeiro em B, o servidor A obterá o arquivo antigo de B, e não o contrário.

Qual é a melhor prática neste caso?

    
por Niro 31.10.2011 / 18:15

4 respostas

2

A seguir, os principais protocolos usados para centralizar o armazenamento:

  • SSHFS - Transfere tudo por SSH, por isso é seguro e pode ser usado pela Internet sem preocupações. O SSH suporta compressão transparente se você quiser. No entanto, o SSHFS pode ser difícil de funcionar.

  • NFS - Inerentemente inseguro e usa endereços IP para distinguir direitos, mas geralmente é muito fácil de trabalhar.

Pessoalmente, eu tentaria o SSHFS e voltaria ao NFS se não funcionasse.

    
por 31.10.2011 / 22:09
0

Não tenho certeza do que você quer dizer com origens, mas suponho que você esteja se referindo ao código de aplicativo da Web que seus servidores estão veiculando.

A melhor solução para isso é usar um sistema de arquivos de rede compartilhada para manter as fontes atualizadas dinamicamente. Dois dos mais populares são NFS e GlusterFS .

    
por 31.10.2011 / 21:57
0

Você pode usar inotify ( inotifywait ) e / ou rsync . Depende de quantos arquivos você tem, com que frequência você os atualiza e o tamanho deles.

    
por 31.10.2011 / 22:07
0

Coloque sua fonte mestra no S3. Todos os servidores precisam apenas sincronizar (puxar do S3) na inicialização.

Quando você quiser atualizar seus servidores:

  1. Atualizar S3
  2. Iniciar novas instâncias (que serão extraídas do S3 no início)
  3. Pare e / ou termine suas instâncias antigas executando a versão antiga
por 10.11.2011 / 20:49