Escolha da abordagem correta para a Implantação da Web

por Jason Lee

Quando você trabalha com a Ferramenta de Implantação da Web (Implantação da Web) do IIS (Serviços de Informações da Internet) 2.0 ou posterior, há três abordagens main que você pode usar para colocar seus aplicativos Web empacotados em um servidor Web. Você pode:

  • Implante o aplicativo de um local remoto direcionando o Serviço de Deployment Agent da Web (também conhecido como "agente remoto") no servidor de destino.
  • Implante o aplicativo de um local remoto usando a Implantação da Web sob Demanda (também conhecida como "agente temporário").
  • Implante o aplicativo de um local remoto direcionando o Manipulador de Implantação da Web do IIS no servidor de destino.
  • Implante o aplicativo copiando manualmente o pacote web para o servidor de destino e importando-o por meio do Gerenciador do IIS.

A forma como você configura seus servidores Web de destino dependerá de qual abordagem de implantação você deseja usar. Este tópico ajudará você a decidir qual abordagem para a implantação é ideal para você.

Esta tabela mostra as vantagens e desvantagens main de cada abordagem de implantação, juntamente com os cenários que normalmente se adequam a cada abordagem.

Abordagem Vantagens Desvantagens Cenários comuns
Agente Remoto É fácil configurar. Ele é adequado para atualizações regulares para aplicativos Web e conteúdo. O usuário deve ser um administrador no servidor de destino. o usuário não pode fornecer credenciais alternativas. Ambientes de desenvolvimento. Ambientes de teste.
Agente Temporário Não é necessário instalar a Implantação da Web no computador de destino. A versão mais recente da Implantação da Web é usada automaticamente. O usuário deve ser um administrador no servidor de destino. O usuário não pode fornecer credenciais alternativas. Ambientes de desenvolvimento. Ambientes de teste.
Manipulador de Implantação da Web Usuários não administradores podem implantar conteúdo. Ele é adequado para atualizações regulares para aplicativos Web e conteúdo. É muito mais complexo configurar. Ambientes de preparo. Ambientes de produção da intranet. Ambientes hospedados.
Implantação offline É muito fácil de configurar. Ele é adequado para ambientes isolados. O administrador do servidor deve copiar e importar manualmente o pacote Web sempre. Ambientes de produção voltados para a Internet. Ambientes de rede isolados.

Usando o Agente Remoto

Quando você instala a Implantação da Web usando as configurações padrão em um servidor de destino, o Serviço de Deployment Agent web (o "agente remoto") é instalado e iniciado automaticamente. Por padrão, o agente remoto expõe um ponto de extremidade HTTP neste endereço:

http://[server]/MSDEPLOYAGENTSERVICE

Observação

Você pode substituir [servidor] pelo nome do computador do servidor Web, um endereço IP para seu servidor Web ou um nome de host que é resolvido para o servidor Web.

Os administradores de servidor podem implantar pacotes Web de um local remoto, como um computador desenvolvedor ou um servidor de build, especificando esse endereço de ponto de extremidade. Por exemplo, suponha que Matt Hink, da Fabrikam, Inc. tenha criado o projeto de aplicativo Web ContactManager.Mvc em seu computador desenvolvedor. O processo de build gera um pacote Web, juntamente com um arquivo .deploy.cmd que contém os comandos de Implantação da Web necessários para instalar o pacote. Se Matt for um administrador de servidor no servidor TESTWEB1, ele poderá implantar o aplicativo Web no servidor Web de teste executando este comando em seu computador desenvolvedor:

ContactManager.Mvc.deploy.cmd /y /m:http://TESTWEB1/MSDEPLOYAGENTSERVICE a/:NTLM

Na verdade, o executável de Implantação da Web pode inferir o endereço do ponto de extremidade do agente remoto se você fornecer o nome do computador, portanto, Matt só precisa digitar isso:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /a:NTLM

Observação

Para obter mais informações sobre a sintaxe de linha de comando implantar na Web e arquivos .deploy.cmd , consulte Como instalar um pacote de implantação usando o arquivo deploy.cmd.

O agente remoto oferece uma maneira simples de implantar conteúdo de um local remoto, e essa abordagem pode funcionar bem com um clique ou implantação automatizada. No entanto, o usuário que executa o comando de implantação também deve ser um administrador de domínio ou um membro do grupo de administradores locais no servidor de destino. Além disso, o agente remoto não dá suporte à autenticação básica, portanto, você não pode passar credenciais alternativas na linha de comando.

O agente remoto fornece uma abordagem útil para implantação em cenários de desenvolvimento ou teste, em que não é incomum que os desenvolvedores tenham controle total do administrador sobre um ambiente de servidor de teste, e os aplicativos normalmente são recriados e reimplantados com muita frequência. No entanto, essa abordagem geralmente é menos aceitável para ambientes de preparo ou produção.

Para obter um exemplo de ponta a ponta de um cenário que usa a abordagem de agente remoto, consulte Cenário: configurando um ambiente de teste para implantação da Web.

Usando o Agente Temporário

A abordagem do agente temporário para implantação é semelhante à abordagem do agente remoto. No entanto, ao contrário da abordagem do agente remoto, você não precisa instalar a Implantação da Web no servidor Web de destino. Em vez disso, quando você executar a implantação, a Implantação da Web instalará uma versão temporária do serviço do agente de implantação web no servidor de destino e usará isso para implantar seu conteúdo no IIS. Quando a implantação for concluída, todos os arquivos temporários serão removidos.

Se você quiser usar a configuração do provedor do agente temporário, adicione o sinalizador /g ao comando de implantação:

ContactManager.Mvc.deploy.cmd /y /m:TESTWEB1 /g:true

Observação

Você não poderá usar o agente temporário se o serviço do agente de implantação web estiver instalado no computador de destino, mesmo que o serviço não esteja em execução.

A vantagem dessa abordagem é que você não precisa manter as instalações de Implantação da Web em seus servidores de destino. Além disso, você não precisa garantir que os computadores de origem e de destino estejam executando a mesma versão da Implantação da Web. No entanto, essa abordagem sofre das mesmas limitações principais que a abordagem do agente remoto, ou seja, que você deve ser um administrador local no servidor de destino para implantar o conteúdo e há suporte apenas para a autenticação NTLM. A abordagem do agente temporário também requer muito mais configuração inicial do ambiente de destino.

Para obter mais informações sobre como usar o agente temporário, consulte Como instalar um pacote de implantação usando o arquivo deploy.cmd e a implantação da Web sob demanda.

Usando o Manipulador de Implantação da Web

Para o IIS 7 em diante, a Implantação da Web oferece uma abordagem de implantação alternativa por meio do Manipulador de Implantação da Web do IIS. O Manipulador de Implantação da Web está intimamente integrado ao WMSvc (Serviço de Gerenciamento Web do IIS), que foi projetado para permitir que os usuários gerenciem sites do IIS de locais remotos.

Por padrão, o agente remoto expõe um ponto de extremidade HTTP neste endereço:

https://[server]:8172/MSDeploy.axd

Observação

Você pode substituir [servidor] pelo nome do computador do servidor Web, um endereço IP para seu servidor Web ou um nome de host que é resolvido para o servidor Web.

A grande vantagem do Manipulador de Implantação da Web sobre o agente remoto e o agente temporário é que você pode configurar o IIS para permitir que usuários não administradores implantem aplicativos e conteúdo em sites específicos do IIS. O Manipulador de Implantação da Web também dá suporte à autenticação básica, para que você possa fornecer credenciais alternativas como parâmetros em seus comandos de Implantação da Web. A principal desvantagem é que o Manipulador de Implantação da Web é inicialmente muito mais complicado de configurar e configurar.

No caso de usuários não administradores, o Serviço de Gerenciamento da Web (WMSvc) só permitirá que o usuário se conecte ao IIS usando uma conexão no nível do site, em vez de uma conexão no nível do servidor. Para acessar um site específico, você pode incluir uma cadeia de caracteres de consulta específica do site no endereço do ponto de extremidade:

https://[server]:8172/MSDeploy.axd?site=DemoSite

Sugestão Por exemplo, suponha que um processo de build seja configurado para implantar automaticamente um aplicativo Web em um ambiente de preparo após cada build bem-sucedido. Se você usou a abordagem de agente remoto, precisará tornar a identidade do processo de build um administrador em seus servidores de destino. Por outro lado, usando a abordagem manipulador de implantação da Web, você pode conceder a um usuário não administrador, FABRIKAM\stagingdeployer , neste caso, permissão somente para um site específico do IIS, e o processo de build pode fornecer essas credenciais para implantar o pacote da Web. Observe que o exemplo a seguir está usando %ContactManagerPublishPassword%, que está extraindo o valor da senha de uma variável de ambiente. Para executar o script com êxito, %ContactManagerPublishPassword% a variável deve ser definida com o valor correto.

msdeploy.exe 
  -source:package='…\ContactManager.Mvc.zip' 
  -dest:auto,
        computerName='https://STAGEWEB1:8172/MSDeploy.axd?site=DemoSite',
        userName='FABRIKAM\stagingdeployer',
        password=%ContactManagerPublishPassword%,
        authtype='Basic', 
  -verb:sync 
  -setParamFile:"…\ContactManager.Mvc.SetParameters.xml"   
  -allowUntrusted

Observação

Para obter mais informações sobre operações de linha de comando e sintaxe de implantação da Web, consulte Referência de linha de comando de implantação da Web. Para obter mais informações sobre como usar o arquivo .deploy.cmd , consulte Como instalar um pacote de implantação usando o arquivo deploy.cmd.

O Manipulador de Implantação da Web fornece uma abordagem útil para implantação em ambientes de preparo, ambientes hospedados e ambientes de produção baseados em intranet, em que o acesso remoto ao servidor está disponível, mas as credenciais de administrador não estão.

Para obter um exemplo de ponta a ponta de um cenário que usa a abordagem manipulador de implantação da Web, consulte Cenário: configurando um ambiente de preparo para implantação da Web.

Usando a implantação offline

Em alguns casos, não é possível ou prático implantar aplicativos e conteúdo em um site do IIS de um local remoto. Por exemplo, os computadores de origem e de destino podem estar em redes isoladas ou segmentos de rede, ou a política de firewall pode não permitir acesso remoto.

Em cenários como esses, você ainda pode usar os recursos de empacotamento e publicação da Implantação da Web; você simplesmente não pode usá-los de um local remoto. Em vez disso, um administrador no servidor de destino deve copiar o pacote web para o servidor e importá-lo por meio do Gerenciador do IIS.

Em vez disso, um administrador no servidor de destino deve copiar o pacote web para o servidor e importá-lo por meio do Gerenciador do IIS.

A abordagem de implantação offline normalmente é útil em ambientes de produção voltados para a Internet, em que os servidores em uma rede de perímetro podem ter conectividade restrita com computadores na rede interna.

Para obter um exemplo de ponta a ponta de um cenário que usa a abordagem de implantação offline, consulte Cenário: configurando um ambiente de produção para implantação da Web.

Leitura Adicional

Para obter mais informações sobre operações de linha de comando e sintaxe de implantação da Web, consulte Referência de linha de comando de implantação da Web. Para obter mais informações sobre como usar o arquivo .deploy.cmd , consulte Como instalar um pacote de implantação usando o arquivo deploy.cmd.

Para obter diretrizes mais gerais sobre as diferentes maneiras pelas quais você pode implantar pacotes Web de um computador remoto, consulte Usando a implantação da Web remotamente. Para obter mais informações sobre como usar a implantação da Web sob demanda, consulte Implantação da Web sob demanda.