ti-enxame.com

Como você faz produção IIS depia do site?

Então, não tenho certeza se este é um estouro de pilha ou uma pergunta de falha do servidor. Se eu tiver um site .NET que eu quero implantar no ambiente de produção, qual é a melhor maneira de fazê-lo. Devo embalar isso como um MSI e instalar? Use Nant para empurrar os arquivos necessários para cima. Apenas ftp os arquivos usando além de comparar?

Como você implanta o código de produção? Este é um caso específico do Windows que eu estou olhando para cá.

15
Glenn Slaven

O IIS suporta a implantação XCopy, portanto, copiar os arquivos deve ser tudo que você precisa, a menos que tenha requisitos especiais.

Uma maneira de fazer é um simples script que usa [~ #] Robocopy [~ # ~] para copiar os novos arquivos para o servidor.

Se o site for grande e isso demorar muito, use um sistema de controle de versão. Eu gosto mercurial Para este propósito, embora você tenha que ter cuidado com o fato de os arquivos de configuração do sistema de controle de versão, não acabam sendo servidos ao público. A implantação é simplesmente uma questão de confirmar as alterações e, em seguida, verificar a versão mais recente no servidor. Além de ser eficiente, isso permite reverters rápidos (se você marcou a última versão boa) caso o seu mais recente e maior tenha um erro de showstopper.

Para minimizar o tempo de inatividade, você poderia ter o script copiar os arquivos para um novo diretório e, em seguida, renomear rapidamente os diretórios ou alterar onde IIS aponta para o novo diretório.

15
Joel Spolsky

Considere usar a ferramenta Web Deployment Ferramenta da Microsoft. Foi especificamente projetado para ajudar a implantar aplicativos da Web e atualizações a esses aplicativos da Web à produção IIS 6 e 7 servidores da Web e faz um melhor trabalho da tarefa do que o MSI (Windows Installer), IMHO.

Normalmente você usá-lo configurando um site "Gold Master" em algum lugar e, em seguida, dizendo à ferramenta para embalar as alterações a partir daí. Ele então analisará um servidor de destino para implantação e fazer quaisquer alterações necessárias para parecer com o Mestre Gold (que é útil para atualizações subseqüentes). É particularmente útil se você estiver implantando para mais de um servidor da Web (isto é, um farm), e ele tem suporte para implantar mais do que apenas arquivos (também pode manipular alterações de registro, implantando certs, bancos de dados SQL, etc).

13
Erv Walter

Eu poderia adicionar a resposta de Joel, sugerindo um servidor contínuo de integração pickup suas alterações do seu sistema de controle de origem. Em seguida, construirá o projeto. Em seguida, tenha XCopy a saída da construção para uma nova pasta. Você pode então fazer algumas alterações de configuração rápida (web.config e app.config). Voila, pronto para xcopy!

Check out CruiseControl.net

4
p.campbell

O que fiz no meu empregador anterior, que era basicamente um site de leilão/e-commerce, onde não poderíamos permitir muito tempo:

  • Faça uma versão com zíper do lançamento/versão para implantar no servidor de compilação
  • Teste-o em um servidor de estadiamento que tenha uma cópia do banco de dados de produção e tenha a mesma versão do software que o software de produção. Teste que tudo correu bem. Se não reiniciar a implantação do servidor de estadiamento (mas primeiro restaurar um backup).
  • Se tudo corresse bem: copie os scripts de upgrade de compilação e banco de dados para o servidor de produção para uma pasta local. Faça um backup específico do banco de dados e dos arquivos ASP.NET (caso algo ainda dê errado). Prepare então tudo para que eu só tenho que clicar em ENTER para iniciar o script de atualização e a cópia dos arquivos do banco de dados (note que eu poderia criar um script para isso). Em seguida, inicie tudo. Isso normalmente é uma questão de segundos e os usuários não notarão muito que houvesse tempo de inatividade.

Há muitas coisas mais engraçadas para fazer como um desenvolvedor web. Mas esta foi a parte mais crucial do meu trabalho.

3
Michael

oh Jeezz, no trabalho, temos toda uma equipe para isso. Eles têm uma ferramenta interna que leva um servidor fora do cluster/fazenda, publica os arquivos, executa os fregueses e adiciona de volta ao cluster/fazenda. Eles fazem isso para cada um dos 16 servidores. Leva horas. O resto de nós nem sequer tem "olhar em torno do acesso".

Para meus projetos pessoais, publico a VS2005 diretamente para o meu WebServer. Meio que tem menos segurança estrita.

1
tsilb