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):
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:
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:
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):
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:
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):
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":
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:
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:

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:
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:
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):

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:
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):
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):
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:
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:
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.