Implantando código em servidores em um ambiente com balanceamento de carga

1

Estamos chegando ao ponto de começarmos a considerar hospedar nosso site em muitos servidores virtuais (CloudServers @ Rackspace). Ao pensar nas considerações, uma que me veio à mente foi como implantar o código do repositório do Subversion nesses servidores?

Possibilidades: A) SSH em cada um e execute 'svn update' B) Script que faz (A) para mim c) Algo mais?

Quais outros métodos existem para implantar código em n servidores. Com dois servidores, acho que tanto (A) quanto (B) são bastante fáceis, mas e os sites que têm 1.000 servidores? Como eles gerenciam implantações de código?

Atualização: aqui está um bom link que encontrei neste tópico. HighScalability.com: ferramentas de implantação de código

    
por Derek Gathright 22.09.2009 / 00:47

4 respostas

2

Os três mais comuns que eu conheço:

  • Pacotes personalizados (rpm, .deb, etc) e repositório customizado (yum, apt, etc). Configure o material para que você possa criar pacotes e enviá-los diretamente para o repositório a partir do svn.
  • Puppet , Chef, cfengine, etc ...
  • Capistrano

Não é irracional usar todos os 3 deles. Pacotes para armazenar o código, fantoche para configurá-lo e capistrano para gerenciar as atualizações.

    
por 22.09.2009 / 01:27
1

Em um trabalho anterior, não tínhamos 1000 servidores, mas tínhamos 20 ou 30. Nós tínhamos um servidor de jumpoff para o qual o código foi enviado e ele executou o rsync a cada três minutos para enviar o código para todos os outros.

Outra maneira de fazer isso, que é o que fazemos no meu trabalho atual, é ter uma montagem NFS da qual todo o código é executado.

    
por 22.09.2009 / 01:52
1

Se o código for "seguro para cluster" - como se você estivesse literalmente implantando exatamente o mesmo código em todos os sistemas -, consolide o código em um servidor NFS (ou dois para HA).

Simplesmente finalize o seu repositório uma vez no servidor NFS e monte um compartilhamento contendo o mesmo código em cada um dos seus servidores de aplicativos.

Agora, você só tem um local para manter atualizado.

    
por 24.09.2009 / 11:49
0

O que acontece com um back-end de armazenamento compartilhado? Carregue o código em um único local e todos os servidores estarão usando a cópia atualizada.

    
por 24.09.2009 / 12:05