Práticas recomendadas para gerenciar a implantação de código do dev nos servidores de produção?

8

Espero encontrar uma ferramenta ou método fácil, que permita gerenciar nossa implantação de código.

Aqui estão os recursos que espero que esta solução tenha:

  1. Arquivo baseado na Web ou em lote, que fornece uma lista de arquivos, se comunicará com nosso servidor de produção, para fazer backup desses arquivos em pastas diferentes, zipá-los e colocá-los em uma pasta de código de backup.

  2. Em seguida, ele registra o nome, a data / hora e o objetivo da implantação.

  3. Em seguida, ele envia os arquivos para o local apropriado no servidor de produção.

Eu não quero uma interface muito complexa para fazer as implantações, porque elas nunca poderão usá-la.

Ou o que estou pedindo é muito irreal?

Só sei que minha autodisciplina não é perfeita, e prefiro ter uma ferramenta em que possa confiar para fazer o que precisa ser feito, e depois minha própria memória dos passos exatos que preciso tomar sempre.

Como vocês garantem que tudo seja implementado corretamente e tenham reversão fácil em caso de erros?

crosenblum
fonte
Subversion e um gancho de confirmação de postagem? Tenha o servidor com uma cópia de trabalho, confirme com o repo, tenha o gancho de confirmação de postagem para atualizar a cópia de trabalho do servidor.
Vitor Py
Não estamos usando o subversion, algo chamado QVCS da Qumasoft.
precisa saber é o seguinte
Vocês podem sugerir algo que não se baseia em mudarmos o controle de origem que usamos?
crosenblum
Com o Capistrano, você pode escrever seu próprio driver QVCS.
Htbaa 4/03/11
E eu aplogo, se não deixei isso claro, preciso de uma solução no sistema operacional Windows.
precisa saber é

Respostas:

2

Tudo isso pode ser feito por um arquivo em lotes. A seguir, as etapas básicas precisam acontecer no arquivo em lotes:

  1. Obter data e hora atual em uma variável.
  2. Faça cópias do diretório de produção em pastas com a data e hora atuais. Feche a pasta, se desejar.
  3. Replicar a pasta suspensa de construção nos diretórios de produção. Você também pode pular alguns arquivos que não deseja sobrescrever (como web.config). O xcopy e o robocopy permitem pular arquivos.

Exceto o primeiro passo, os outros dois passos são operações muito básicas de linha de comando. Em relação ao primeiro, o código a seguir mostra como obter um diretório com data e hora:

for /f "tokens=1-3 delims=/ " %%A in ("%DATE%") DO (
  set DATESTR=%%C%%A%%B
)

for /f "tokens=1-3 delims=:." %%F in ("%TIME%") DO (
  set TIMESTR=%%F%%G%%H
)

set CURRENTDT=%DATESTR%T%TIMESTR%

:: now you can use the date time in a folder name:
xcopy /e \\production1\site1 \\backup\site1\backup-%CURRENTDT%\
Codism
fonte
1

Parece um trabalho para o Capistrano com o plug- in Railsless-Deploy .

Htbaa
fonte
Eu ia dizer Capistrano também. Se nada mais, olhar para o que Capistrano oferece é uma ótima maneira de ter uma idéia do que está disponível para você.
glenatron
Capistrano é apenas para Linux?
precisa saber é
Ruby é executado no Windows, mas há 1,5 anos eu não conseguia executá-lo no Windows. Então, em vez disso, baixei a edição gratuita do VMWare Server, instalei um servidor virtual Ubuntu e o configurei para o Capistrano. Talvez o suporte ao Windows tenha melhorado agora.
Htbaa # 03
0

Tenho certeza de que você poderia fazer isso com o TFS - se estiver trabalhando com a pilha de desenvolvimento do MS

Muad'Dib
fonte
O que é o TFS? Algum link, descrições?
precisa saber é o seguinte
@crosenblum TFS é Microsoft Team Foundation Server --their muito melhor substituto para Source Safe
Muad'Dib