Quais são as vantagens e desvantagens de montar seus binários de aplicativo a partir de uma montagem compartilhada?

3

Em um cluster de nós de aplicativos, quais são as vantagens / desvantagens de colocar os binários de seu aplicativo em uma montagem compartilhada e ter cada um dos nós montados, em vez de ter cópias separadas dos binários em cada nó?

Existe alguma coisa que torne uma abordagem ou outra particularmente ruim?

Obrigado

    
por Brendan Maguire 04.11.2014 / 15:42

1 resposta

6

Quando comecei no setor financeiro, eu estava executando sistemas que eram compostos de sistemas de gateway que consumiam / massageavam dados, computavam nós para tomar decisões comerciais, servidores NFS para atender aplicativos / centralizar o registro e muitas redes para vinculá-lo. todos juntos. Também centralizamos o agendamento do crontab e as configurações do monitoramento de aplicativos e os colocamos em montagens do NFS.

Este era baseado em NFSv3, e os benefícios eram, hum ...

  • Fácil distribuição de aplicativos: uma montagem. Um lugar para fazer mudanças.
  • Gerenciamento simples dos dados relacionados a esses aplicativos.

Desvantagens:

  • Suscetível a erros: uma montagem. Um lugar para estragar as alterações.
  • Escalabilidade: a menos que você também esteja armazenando em cluster seu armazenamento, a montagem central terá um limite superior no número de clientes que ela pode servir com eficiência.
  • Ponto único de falha (SPOF): novamente, o armazenamento em cluster pode atenuar isso, mas é uma consideração. Assumindo o NFS, o que acontece se você precisar reinicializar o servidor? Os nós do cluster irão travar na inicialização se o servidor NFS estiver ausente ou indisponível?
  • Permissões: como você gerenciará as permissões nos nós do cluster. Contas de serviço local? UIDs / GIDs correspondentes? No meu caso, usei o NIS e, posteriormente, o LDAP. Um serviço de diretório seria útil aqui.
  • Desempenho: você depende da rede e da infraestrutura de comutação aqui. O desempenho de coisas como carregamento de aplicativos, registro, etc. será mais rápido no disco local do que over-the-wire.
  • Ajustar o NFS é difícil e a maioria das pessoas não faz isso bem:)

Hoje em dia, você pode implantar e gerenciar seu software por meio de um sistema de gerenciamento de configurações ( Puppet , Chef , Ansible , etc .). Ou, melhor ainda, use o método de empacotamento nativo do sistema operacional (RPM, .deb) e implemente-o com o gerenciamento de configurações:

  • Isso remove o SPOF.
  • A localização do aplicativo deve ter um benefício de desempenho.
  • Simplifica a rede: por exemplo E se você expandir para vários locais?
  • Pode fornecer um controle mais granular: por exemplo distribuir um binário para um subconjunto de sistemas, versus o cluster inteiro.
  • Autodocumentação.

Dado que, eu provavelmente recomendaria cópias separadas dos aplicativos em vez de usar uma montagem compartilhada.

    
por 11.11.2014 / 15:03