Executando Patch / Delta Releases para o aplicativo da Web

2

Primeiro, meu problema (simplificado) em poucas palavras:

Meu ciclo de lançamento no trabalho é que, a cada release, atualmente realizamos uma cópia / implementação completa do aplicativo da web. Simplificando, nós geramos um tarball, o SCP para o servidor de produção e o instalamos. Simples assim. A pilha de tecnologia é LAMP, portanto, não há etapas de compilação de código no momento.

O problema é que este tarball está ficando grande, e precisamos implantar este tarball em muitos servidores. Embora esse seja um processo muito confiável, a sobrecarga e o tempo para realizar essa implementação são maiores.

O que eu quero fazer é executar liberações delta / patch para este aplicativo da Web LAMP que não requer a implementação completa do tarball.

Estou usando o SVN para meu VCS e não quero que meus aplicativos implantados sejam cópias de trabalho do SVN. Eu experimentei usar patch (ferramenta CLI linux) e arquivos de patch, mas isso tem falhas no processo. Por exemplo, remendando o mesmo arquivo mais de uma vez, há sobrecarga de desenvolvimento para controlar quais arquivos foram corrigidos, de quais versões para quais versões, no site de produção (o que fica complicado rapidamente quando várias correções sequenciais são executadas) .

Por fim, preciso de um método confiável para fazer uma liberação delta / patch para um aplicativo da Web LAMP, que não requer uma cópia de trabalho do SVN no servidor da Web de produção.

Como os outros resolvem esse problema? Você simplesmente usa o rsync com uma opção de exclusão e evita arquivos de patch?

    
por chadl 15.03.2012 / 03:33

2 respostas

1

Eu usaria o rsync para implantar a partir de um svn export do HEAD do repositório para atualizar seus servidores de aplicativos. O Rsync é testado em batalha, comprovado e pronto para qualquer trabalho de sua parte. Dependendo de quantos servidores você precisa implantar para você, você pode olhar para mrsync se os tamanhos dos arquivos começarem a ficar muito grandes e você quiser implantar rapidamente em um grande número de máquinas via multicast (provavelmente um exagero para suas necessidades, a menos que você tenha um lote de servidores ou um lote de dados em um dado delta, mas certamente um opção).

    
por 15.03.2012 / 04:31
1

I do not want my deployed applications to be SVN working copies

Mas você pode concordar que apenas use o SVN na produção e tenha o WC fora do webroot? Neste caso, você pode atualizar o WC sob demanda (menos tráfego) e exportar WC para o espaço web

    
por 15.03.2012 / 08:45

Tags