Automatizando a Distribuição/Instalação de Aplicações com o Microsoft Web Deploy


Este é o vigésimo oitavo de uma série de posts que estou escrevendo sobre o próximo lançamento do VS 2010 e .NET 4.

Este post dá continuidade a uma série de posts que estou escrevendo, os quais cobrem as novas melhorias que fizemos em torno da funcão de web deployment (distribuição/instalação de aplicações web). No meu primeiro post da série sobre instalação de aplicações web forneci uma visão geral dos novos recursos do novo VS 2010 Web Deployment.

No post de hoje eu vou discutir o Microsoft Web Depoy - o qual é uma tecnologia de servidor gratuita que permite um mecanismo compreensivo para a publicação e instalação. O Web Deploy te permite não somente publicar arquivos - mas também provisionar o esquema/dados do banco de dados, executar scripts de alteração do banco de dados, definir ACLs de segurança, e muito mais. Todas essas etapas de distribuição/instalação podem ser automatizadas com o uso do Visual Studio.

Este post vai fornecer um tutorial passo a passo sobre como instalar o pacote Web Deploy e habilitá-lo/ativá-lo em um servidor web. Vou então demonstrar como você pode usar o Visual Studio 2010 para publicar diretamente em servidores usando o Web Deploy, e também como você pode usar o Visual Studio para criar pacotes de instalação que você pode usar para automatizar a distribuição/instalação de suas aplicações.

Web Deploy - E Por Que Você Deveria Se Importar

Distribuir uma aplicação web ou site envolve vários passos/etapas. Normalmente você precisa:

  • Copiar arquivos e pastas
  • Prover o esquema do banco de dados e, opcionalmente, preencher o conteúdo do banco de dados
  • Definir configurações de escrita/leitura e ACLS de segurança em arquivos e pastas
  • Instalar e configurar certificados SSL
  • Instalar outras dependências (logs de Eventos, bibliotecas do GAC, objetos COM, etc)

Realizar todos esses passos manualmente é cansativo, lento e perigoso (porque as etapas de instalação manual são sujeitas a erros). Habilitar um processo automatizado que permite a você prover e instalar aplicações rapidamente em um servidor ajuda a reduzir as chances de as coisas darem errado, e pode melhorar drasticamente o tempo que você leva para colocar uma alteração feita em um aplicação no ambiente de produção. 

Microsoft Web Deploy

O Web Deploy é uma tecnologia gratuita e construída por minha equipe que pode melhorar a instalação de aplicações web. É um serviço de distribuição que é executado em um servidor e permite que você instale aplicações localmente ou remotamente no servidor. O Web Deploy inclui suporte nativo para a criação de diretórios virtuais e aplicações dentro do IIS, copiar arquivos e pastas, provisionar bancos de dados (SQL Server e MySQL), definir ACLs para o sistema de arquivos e muito mais (ele até mesmo inclui provedores nativos para coisas como definir entradas de registro, registrar componentes COM, etc). Além de ter esses recursos de distribuição nativos, ele também suporta uma API de provedor baseada no .NET que permite a você criar e plugar suas próprias ações de instalação personalizadas - o que lhe permite customizá-lo da maneira que você quiser.

O protocolo usado com o Web Deploy é o HTTPS - o que significa que o Web Deploy pode ser usado através de firewalls (permitindo uma instalação fácil e segura em servidores remotos/hospedados). O Web Deploy também suporta cenários de implantação de admininstradores e não adminastradores. Os cenários de não-administradores permite que os administradores configurem o Web Deploy em um servidor e, em seguida, deleguem um subconjunto de recursos de implantação para os desenvolvedores que não possuem contas de administrador no servidor de produção. Isso permite uma abordagem de implantação muito segura e flexível. Vou cobrir as etapas de configuração para permitir cenários de implantação delegada no meu próximo post desta série.

Instalando o Web Deploy no Windows Server 2008

O Visual Studio 2010 (e o Visual Web Developer 2010 Express - que é gratuito) por padrão instalarão o Web Deploy na sua máquina de desenvolvimento como parte da configuração. Isto te fornece o que você precisa para criar pacotes de instalação Web dentro do VS, bem como publicá-los em servidores remotos que possuem o serviço Web Deploy instalado e habilitado.

A seguir estão os passos de como instalar o Web Deploy em um servidor de produção que está executando o IIS 7.x no Windows Server 2008 ou Windows Server 2008 R2:

1) Faça o download e execute o Instalador da Plataforma Web da Microsoft em seu servidor de produção.

2) Clique na tab (guia) "Web Plataform" (Plataforma Web) no Instalador da Plataforma Web da Microsoft, clique no link "Customize" (Personalizar) na seção "Web Server" (Servidor Web). Selecione o recurso "Web Deployment Tool 1.1" (Ferramenta de Instalação Web 1.1), bem como o recurso "Management Service" (Serviço de Gerenciamento):

imagem

3) Pressione o botão Install (Instalar). Isto irá baixar e instalar o Pacote Web Deployment, e habilitar o recurso Management Service do IIS que é nativo no Windows.

Habilitando Instalações com o Windows Server 2008

Temos agora o Web Deploy instalado - agora temos que habilitar instalações com ele.

O Web Deploy suporta instalações feitas por administradores, bem como instalações feitas por não-administradores (também conhecidas como instalações delegadas). Neste blog, eu cobrirei como habilitar instalações usando uma conta que tem permissões de administrador no servidor. Eu cobrirei como permitir instalações delegadas para desenvolvedores que não possuem uma conta de administrador no meu próximo post desta série.

1) O primeiro passo para habilitar o Web Deploy é abrir a IIS Admin Tool [Ferramenta de Administração do IIS] - Iniciar -> Executar - inetmgr.exe). Em seguida, clique duas vezes no ícone "Management Service Delegation" (Delegação do Serviço de Gerenciamento) na tela inicial:

imagem

Quando você clicar duas vezes no ícone "Management Service Delegation" você será levado a uma página igual a mostrada a seguir. No painel Actions (Ações), clique no link "Edit Feature Settings..." (Editar as Definições do Recurso...). Isso trará a janela de diálogo "Edit Feature Settings" - marque a opção "Allow administrators to bypass rules" (Permitir que os administradores ignorem as regras) dentro desta janela de diálogo. Isso permitirá que aqueles com contas de Administrador no servidor ignorem as capacidades de delegação do Web Management Service (Serviço de Gerenciamento Web) e executem ações usando suas capacidades de administrador:

imagem

Em seguida, retorne para a página inicial do IIS Admin Tool (Ferramenta de Administração do IIS) e dê um duplo clique no ícone "Management Service" (Serviço de Gerenciamento):

imagem 

Quando você clicar duas vezes no ícone "Management Service" você serå levado a uma página igual a mostrada a seguir. Clique na caixa de seleção "Enable Remote Connections" (Permitir Conexões Remotas) para permitir instalações remotas. Opcionalmente, você pode escolher o endereço IP e a porta usada pelo Management Service (Serviço de Gerenciamento) - bem como quais são os endereços IP dos clientes quem podem se conectar a ele. Você pode ajustar essas configurações para bloquear quem pode acessar o serviço de instalação.

Quando você terminar, clique no link "Start" (Iniciar) na tab/guia "Actions" (Ações) para iniciar o Web Management Service (Serviço de Gerenciamento Web) no servidor:

imagem

O servidor está agora configurado para instalações através de uma conta de administrador com o Web Deploy.

Dica Importante: Uma coisa a se observar é se você tem um firewall ativado no seu servidor, ou dentro do cluster onde o seu servidor está hospedado. Por padrão, o Management Service é executado usando o protocolo HTTPS na porta 8172. Esta porta pode estar bloqueada por padrão, dependendo da configuração da sua hospedagem. Se assim for, você deve desbloqueá-la no seu firewall/serviço de hospedagem - ou escolher um número de porta diferente que seja permitido. Você pode fazer um teste para ver se o Management Service está disponível simplesmente abrindo um browser e acessando o mesmo usando uma URL igual: https://YourServerName:8172/MsDeploy.axd - se for solicitado um nome de usuário/senha, então você saberá que o serviço está funcionando, e não há nenhum firewall bloqueando o acesso a ele. Se o tempo limite esgotar, então é provável que um firewall esteja bloqueando o serviço.

Ativando o Web Deploy em um Sistema Operacional que não seja o Windows Server 2008

As etapas acima demonstram como habilitar/ativar o serviço Web Deploy em um servidor com sistema operacional Windows 2008 ou Windows Server 2008 R2. O Management Service (Serviço de Gerenciamento) do IIS 7 é nativo nestes sistemas operacionais e o Web Deploy tira vantagem disso.

Se você tentar seguir os passos acima no Windows 7, Windows Vista ou Windows Server 2003, você notará que o IIS Management Service (Serviço de Gerenciamento do IIS) e seu ícone dentro do IIS Admin Tool (Ferramenta de Administração do IIS) não está disponível.  Ao invés disso, você precisa seguir um conjunto ligeiramente diferente de etapas para ativar o serviço do Web Deploy.

Ativando/Habilitando o Web Deploy no Windows 7, Windows Vista e Windows Server 2003

Você pode habilitar o serviço de publicação do Web Deploy no Windows 7, Windows Vista e Windows Server 2003 usando os passos a seguir:

1) Abra um prompt de comando elevado (o que significa que você clica com o botão direito do mouse e abre o prompt de comando usando o comando "Run as Administrator" (Executar como Administrador)

2) Digite "net start msdepsvc" para iniciar o "Web Deploy Agent Service" (Serviço do Agente do Web Deploy):

imagem

3) Para confirmar que o serviço de publicação está funcionando, mude para o diretório "c:\Program Files\IIS\Microsoft Web Deploy" (c:\Arquivos de programas\IIS\Microsoft Web Deploy), e digite o comando "msdeploy -verb:dump -source:appHostConfig,computername=localhost":

imagem

Isso deve fazer com que o cliente msdeploy local se conecte ao serviço de publicação que você acabou de ativar e despeje o estado atual do arquivo ApplicationHost.Config de seus servidores web:

imagem

Se muitas linhas forem mostradas então você saberá que tudo está funcionando e você acabou de ativar o Web Deploy para publicação. Usando essa abordagem não permitirá que você habilite o "acesso delegado" (que permite que as contas de usuários não-administradores façam instalações - e que cobrirei de forma mais aprofundada em um próximo post) - mas permitirá que aqueles com uma conta que possui permissões de administrador façam instalações na máquina.

Usando a Janela de Diálogo "Publish Web" dentro do Visual Studio

Agora que temos o nosso servidor Web habilitado com o Web Deploy, vamos tentar publicar/distribuir/provisionar/instalar alguma coisa com ele dentro do Visual Studio.

O VS 2010 inclui um novo recurso chamado "Publish Web" (Publicar Web) que você pode usar para rapidamente distribuir/instalar uma aplicação web em um servidor remoto. Você pode ativar este recurso clicando com o botão direito do mouse em qualquer projeto de Aplicação Web da ASP.NET (Web Forms e variedades MVC) e, em seguida selecione a opção "Publish..." (Publicar) no menu de contexto:

imagem

Selecionando esta opção trará uma janela de diálogo "Publish Web" que te permite configurar as definições de publicação. Você pode usar esta janela para publicar uma aplicação ASP.NET em um servidor remoto usando FTP/FTPS, Web Deploy ou FrontPage Server Extensions (Extensões de Servidor do FrontPage).

Vamos selecionar a opção "Web Deploy" no menu Publish method (Método de publicação) e, em seguida entraremos com os dados do nosso servidor Web Deploy para a publicação:

imagem

Observe que você só tem que preencher essas informações uma única uma vez - você pode então salvá-las como um "Publish Profile" (Perfil de Publicação) usando os botões "Save/Rename/Delete" (Salvar/Renomear/Deletar) na parte superior da janela. Perfis de publicação permitem que você salve múltiplas opções de instalação/publicação para rapidamente trocar entre eles, dependendo do servidor que você deseja usar.

Algumas notas sobre as várias opções que você pode especificar:

Service URL (URL do serviço): Esta é a URL do Web Deploy Management Service (Serviço de Gerenciamento do Web Deploy).  Se você estiver usando o Windows Server 2008, o formato padrão da URL é https://meusite:8172/MsDeploy.axd. Note que o protocolo é "https://" e a porta deve ser compatível com aquela que você especificou acima quando você ativou o IIS Management Service (Serviço de Gerenciamento do IIS). 

Se você estiver publicando para uma máquina que roda Windows Server 2003, Windows 7 ou Windows Vista, então o formato padrão da URL é http://nome-do-servidor/ (sem https - uma vez que as credenciais de segurança são enviadas usando autenticação nativa do Windows, a qual é criptografada). Você também não precisa especificar um número de porta com o Windows Server 2003, Windows 7 ou Windows Vista.
Site/Application: Permite especificar o nome do site (e um nome de aplicação opcional) no servidor remoto onde você deseja instalar a aplicação. Você pode publicar seu projeto como um site, nesse caso, você pode especificar algo como www.meusite.com como o nome do site, ou "Default Web Site" (Site Web Padrão) se você simplesmente quiser publicar em qualquer lugar independentemente do nome do site raiz padrão. 

Importante: O nome do site que você especificar deve corresponder ao mesmo nome do site que aparece na Ferramenta de Administração do IIS (IIS Admin Tool). Portanto, se você registrou o site www.scottgu.com usando o nome amigável "Site do ScottGu" ou simplesmente "scottgu.com" quando você o criou no IIS, você precisa ter certeza que o nome do site que você está especificando na definição de publicação corresponde ao nome amigável (assim você especificaria "Site do ScottGu" em vez de www.scottgu.com se isto é o que aparece na Ferramenta de Administração do IIS como o nome do site). Se você especificar isto incorretamente você receberá um erro que dirá que o agente remoto "could not be contacted" (não pôde ser contatado).

Alternativamente, você pode publicar em um local de sub-aplicação usando um valor igual a "www.meusite.com/minhaaplicacao" ou "ScottGu Site/minhaaplicacao".  Se o vdir (diretório virtual) /minhaaplicacao e a aplicação ainda não existirem, o serviço do Web Deploy criará os mesmos para você e, em seguida, publicará o projeto neste local. 

Opcionalmente, você pode indicar que deseja que este sub-diretório seja um diretório virtual (o padrão) ou uma aplicação, marcando a caixa de seleção "Mark as IIS Application on Destination" (Marcar como Aplicação do IIS no Destino).
Credentials (Credenciais): Se você estiver publicando em um servidor remoto que não faz parte do seu domínio Windows, você pode especificar seu nome de usuário e senha na janela de diálogo de publicação. Esse nome de usuário/senha pode mapear tanto para uma conta do Windows no servidor remoto - ou, alternativamente, mapear para nomes de usuário do IIS (o que permite opções de delegação/bloqueio mais flexíveis) - as quais discutirei mais em um próximo post).

Importante: A menos que você tenha instalado um certificado SSL assinado em seu servidor remoto, certifique-se de marcar a opção da caixa de seleção "Allow unstrusted certificate" (Permitir certificado não confiável). Por padrão o Web Deploy irá instalar um certificado para você usar que é único (e não assinado) - e se você não marcar esta caixa de seleção, seu login irá falhar porque o VS não confiará em um certificado não assinado.
Outras Notas: Há uma caixa de seleção "Leave extra files on destination" que lhe permite indicar se você deseja "Deixar arquivos extra no destino" ou não. Se você desmarcar essa opção, os arquivos existentes no site/aplicação no servidor remoto no qual você está publicando serão excluídos se não corresponderem ao que você possui atualmente no seu projeto do VS.

Depois de ter preenchido as configurações de publicação, você pode clicar no botão "Publish" (Publicar) e ele irá se conectar ao serviço remoto do Web Deploy e instalará sua aplicação no local que você indicou. Sua janela de "Output" (Saída) dentro do Visual Studio mostrará uma saída parecida com a mostrada a seguir, que explica como a aplicação foi instalada e as ações que ocorreram durante a etapa de publicação:

imagem

O projeto acima é um projeto web básico com apenas alguns arquivos e diretórios dentro dele. O Web Deploy tratará a cópia de todos os arquivos e a definição das ACLs apropriadas no servidor remoto (por exemplo: setar permissões de leitura/escrita no diretório \app_data). Em posts futuros nessa série discutirei como permitir a publicação de banco de dados como parte do processo de instalação do Web Deploy - bem como a forma de alternar automaticamente entre configurações do arquivo web.config (por exemplo, strings de conexão) como parte do processo.

E com isso nós publicamos nosso site em um servidor remoto. Para voltar a publicá-lo novamente, você pode clicar com o botão direito do mouse sobre o projeto e mais uma vez, selecionar o comando "Publish" - que trará a janela de diálogo de publicação novamente (com as mesmas configurações da última vez preenchidas por padrão). Alternativamente, você pode ativar a barra de ferramentas "One Click Web Publish" (Publicação Web com Um Clique) dentro do VS 2010 - a qual lhe permite alternar rapidamente entre os perfis de publicação salvos (usando um caixa de seleção flutuante) e, em seguida, clique no botão "Publish" à direita desta para publicar o projeto para o servidor de destino (sem a necessidade da janela de diálogo):

imagem

Note que o Web Deploy é suficientemente inteligente para comparar o servidor remoto com o seu projeto local - copiando somente os arquivos que ele precisa. Assim, se você fizer poucas mudanças em projeto grande, e depois voltar a publicá-lo - somente os arquivos alterados serão copiados/enviados para o servidor. Os arquivos que não foram atualizados não precisarão ser copiados novamente. Isso torna o processo de re-publicação/atualização de um site muito mais rápido - especialmente quando há uma grande quantidade de conteúdo estático e imagens grandes no projeto.

O Web Deploy também por padrão comprime os arquivos antes de copiá-los para o serviço do Web Deploy - o que reduz o tamanho do pacote e permite instalações mais rápidas.

Criando Pacotes de Instalação a partir do Visual Studio 2010

O VS 2010 suporta também uma opção de empacotamento que te permite empacotar sua Aplicação Web da ASP.NET (junto com suas dependências, como arquivos web.config, bancos de dados, ACLs, etc) em um arquivo de pacote de instalação .zip que o Web Deploy entende. Você pode, então, passar o arquivo do pacote de instalação para alguém que possa instalá-lo, quer através da ferramenta de administração do IIS, ou através de um script da linha de comando/powershell que instala o mesmo em um servidor remoto usando o Web Deploy.

O pacote de instalação que você cria pode, opcionalmente, expor configurações da aplicação que podem ser substituídas (como locais de diretório, strings de conexão do banco de dados, etc.). Quando você usa a ferramenta de administração do IIS7, o assistente de instalação irá solicitar ao administrador a definição de cada configuração - permitindo-lhe fornecer uma experiência de customização limpa sem ter que escrever qualquer código personalizado. As definições também podem ser passadas como argumentos na linha de comando quando se utiliza uma linha de comando ou script Powershell para instalar a aplicação através de um serviço remoto do Web Deploy.

Para criar um pacote web dentro do Visual Studio 2010, basta clicar com o botão direito do mouse no seu Projeto Web ASP.NET no Solution Explorer e selecionar a opção "Build Deployment Package" (Criar Pacote de Instalação) no menu de contexto:

imagem

Ao selecionar esta opção, o VS 2010 criará um pacote de instalação compatível com Web Deploy. Você pode configurar onde este pacote será criado no disco dentro da janela de diálogo "Properties" (Propriedades) do projeto (selecione a guia/tab Package/Publish Web).  Note que o local do disco onde é gerado o pacote do Web Deploy é sempre mostrado na janela de "Output" no conteúdo da construção (o que torna mais fácil encontrá-lo):

imagem

O arquivo de pacote gerado é literalmente um arquivo com extensão .zip que contém um arquivo manifest do Web Deploy que te permite instalá-lo facilmente em um servidor remoto usando a ferramenta de administração do IIS ou uma linha de comando.

Instalando um Pacote Usando a Ferramenta de Administração do IIS (IIS Admin Tool)

Depois de ter criado o arquivo do pacote de instalação .zip, você pode usar a Ferramenta de Administração do IIS para instalá-lo. Dentro da ferramenta de administração basta clicar no link "Import Server or Site Package..." (Importar Servidor ou Pacote de Site) no painel "Actions" (Ações) da ferramenta de administração (estes links estarão presentes se o Web Deploy estiver instalado):

imagem

Isto trará uma janela de diálogo que te permite selecionar o arquivo de pacote .zip. Quando você fizer isso, o IIS Admin Tool irá mostrar ao administrador as etapas exatas de instalação que foram automatizadas pelo pacote:

imagem

Se você continuar com o assistente de instalação ele irá automatizar o provisionamento da aplicação para você no seu servidor.

Instalando um Pacote a partir da Linha de Comando

Alternativamente, você pode usar a linha de comando para instalar o pacote em um servidor remoto.

Para fazer isso, abra uma janela de comando e navegue até o local do pacote de instalação .zip no disco. Além do arquivo .zip, você verá que o VS também adiciona alguns arquivos adicionais no diretório:

imagem

O arquivo NomeDoProjeto.deploy.cmd fornece um script pré-construído que você pode usar para instalar o pacote em um servidor remoto. 

O arquivo NomeDoProjeto.SetParameters.xml contém alguns parâmetros de instalação que você pode definir (como, locais das strings de conexão, etc). Você pode usar as propriedades do projeto no Visual Studio para definir os valores padrão para os parâmetros que são gerados dentro deste arquivo. Os administradores podem, opcionalmente, editá-los/alterá-los mais tarde se assim quiserem (evitando a necessidade de especificá-los explicitamente como parâmetros da linha de comando). Certifique-se de abrir/analisar este arquivo para ver quais são os valores padrão definidos nele. Em particular, certifique-se que o nome do site/nome da aplicação é compatível com o local onde você quer que a aplicação seja instalada.

Para instalar o pacote em um servidor remoto com o Web Deploy, execute o script de instalação com os seguintes parâmetros:

NomeDoProjeto.deploy.cmd /y /M:https://UrlWebDeploy:8172/MsDeploy.axd /u:NomeDoUsuario /p:senha -allowUntrusted /A:basic

Algumas notas rápidas sobre os diversos parâmetros acima:

/y Indica que o Web Deploy deve instalar a aplicação no servidor remoto. 

Alternativamente, em vez de /y você pode especificar /t para executar uma instalação experimental que irá simular a instalação e ajudará você a verificar se tudo está pronto (sem realmente provisionar/instalar a aplicação no servidor remoto).
/M: parâmetro Especifica o ponto final de publicação do Web Deploy no servidor onde você deseja instalar o pacote. Deve ser exatamente igual a qualquer URL do serviço de publicação que você tenha definido na configuração do Web Deploy - e será a mesma do parâmetro "Service URL" (URL do Serviço) definida na janela de diálogo Publish Web (Publicar Web) dentro do VS. Deve ser uma URL baseada em "https", se você estiver publicando em um servidor que roda Windows Server 2008 ou 2008 R2.
-AllowUntrusted Necessário se o certificado SSL no servidor remoto com Web Deploy não estiver assinado (o qual não está assinado, por padrão)
/A:basic Necessário se o servidor remoto não estiver usando a autenticação do Windows para identificar o usuário (especifica que você utilizará autenticação básica HTTP sobre SSL)

Quando você executar o comando, este irá implantar/instalar o pacote no servidor remoto, executará todos os passos da instalação (incluindo coisas como provisionamento do banco de dados, definição de ACLs, etc), e mostrará como saída o status na linha de comando de acordo com o progresso.

Automatizando a Instalação a partir de um Build Server (Servidor de Compilação/Construção) ou Continuous Integration Server (Servidor de Integração Contínua)

Além de ter um desenvolvedor/administrador para dar o pontapé inicial na instalação explicitamente, você pode também automatizá-la como parte de um processo de integração contínua ou como parte de um servidor de compilação/construção. Os comandos necessários para automatizar a criação de um pacote de instalação do Web Deploy .zip estão disponíveis como tasks (tarefas) do MSBuild. Você pode usá-las para criar um pacote de instalação como parte do processo de compilação/construção - ou, opcionalmente, fazer com que uma compilação/construção automatizada distribua/instale a aplicação.

Eu estarei cobrindo como habilitar esses cenários de construção automatizada em um post futuro.

Instalando em um Web Farm (Cluster de Servidores)

O Web Deploy pode ser usado em conjunto com o Microsoft Web Farm Framework (em Inglês) para permitir a instalação automatizada em um web farm. Você pode instalar e configurar o Web Deploy em um servidor primário em um cluster do Web Farm Framework - e os servidores secundários dentro do cluster do web farm irão monitorar e clonar qualquer aplicação que você instalar usando o framework. Isso permite que você use os mesmos passos descritos acima para implantar sites e aplicações em qualquer número de máquinas dentro de uma "fazenda" de servidores de uma maneira automatizada.

Leia o meu post anterior sobre o Microsoft Web Farm Framework (em Inglês) para aprender mais sobre como habilitar isso.

Resumo

O Web Deploy provê uma maneira poderosa e flexível para automatizar a instalação/distribuição/implantação de aplicações Web da ASP.NET em um servidor remoto. O Web Deploy te permite não somente publicar arquivos - mas permite também o provisionamento do esquema/dados do banco de dados, a execução de scripts de alteração do banco de dados, definição de ACLs de segurança, e muito mais. 

Você pode usar o Visual Studio 2010 para publicar diretamente em servidores web que tenham o Web Deploy ativado/habilitado, ou para criar arquivos de pacote de instalação que podem ser instalados através da ferramenta de administração do IIS ou através da linha de comando. Você também pode integrar o empacotamento e a instalação como parte de um servidor de compilação/construção ou processo de integração contínua para permitir um modelo de entrega mais contínuo.

Discutirei mais sobre como ativar o Web Deploy em cenários de segurança delegados em um próximo post. Escreverei posts que cobrem como modificar/personalizar arquivos web.config como parte da instalação, como instalar bancos de dados como parte de um processo de instalação com o Web Deploy, e como integrar tudo isso como parte de um processo de compilação/construção automatizado.

Espero que ajude,

Scott

PS Além do blog, eu também estou agora utilizando o Twitter para atualizações rápidas e para compartilhar links. Siga-me em: twitter.com/ScottGu

 

Texto traduzido do post original por Leniel Macaferi.

3 Comments

  • Excelente artigo !

  • Boa noite a todos do Forum,

    Segui os passos para instalar a aplicação no WS2003,pois pretendor migras meus websites para o IIS7 no WS2008 mas ao tentar se conectar no serviço de publicação, retorna o seguinte erro;

    Erro: Não é possível criar o objeto do tipo 'appHostConfig' e caminho ''.
    Erro: (20/06/2012 17:59:10) Erro durante o processamento da solicitação no compu
    tador remoto.
    Erro: Não é possível criar o objeto do tipo 'appHostConfig' e caminho ''.
    Erro: Foi emitido um comando que exige o Sistema de Configuração do IIS, mas o s
    istema não está disponível. Verifique se você está usando uma versão do IIS que
    contém o Sistema de Configuração.
    Contagem de erros: 1.

    Alguém já passou por isso?
    Grato.

  • Olá Vinicius,

    Pelo que entendi, você está tentando usar o recurso no Windows Server 2003 com IIS 6. Se for este o caso, dê uma olhada neste link http://stackoverflow.com/q/5111781/114029 - você não pode usar appHostConfig no IIS 6.

    Qualquer coisa, é só responder aqui mesmo.

    Leniel

Comments have been disabled for this content.