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?


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%\

1

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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.