Aqui está como eu abordaria esse problema - lembre-se de que eu não fiz isso antes, são apenas conceitos que testei um pouco no meu ambiente de desenvolvimento. Você deve ser capaz de configurar uma estrutura bastante robusta usando isso e alguns scripts no idioma de sua escolha. Basicamente, vamos configurar um ambiente de balanceamento de carga do gueto e usá-lo para alternar entre o novo site e o site antigo.
Para configurá-lo, você precisará:
- Módulo Roteamento de solicitação de aplicativo do IIS (ARR)
- Ferramenta Implantação do IIS na Web (msdeploy)
- 3 sites do IIS diferentes (com 3 endereços IP diferentes - apenas o uso de portas ou cabeçalhos de host pode não funcionar aqui)
Instale o ARR para começar.
Configure os 3 sites no IIS:
- O site 1 será o site em que seus usuários realmente se conectam, digamos
http://192.168.1.1/
. Este é também o site da ARR. Basta configurar um diretório vazio para o qual apontar e colocá-lo em seu próprio pool de aplicativos. Configure o pool de aplicativos para não expirar o tempo de acordo com estas instruções . - Os sites 2 e 3 serão os sites que realmente hospedam seu conteúdo. Eles precisam estar em seus próprios IPs e devido a como o ARR funciona, em uma porta diferente do website 1. Digamos que eles sejam
http://192.168.1.2:8080
ehttp://192.168.1.3:8080
. Eles também devem estar em seus próprios pools de aplicativos e apontar para diretórios diferentes no sistema de arquivos (mas ambos os diretórios possuem o mesmo conteúdo normalmente)
Depois de instalar o ARR, haverá uma nova categoria no Gerenciador do IIS chamada "Farms de servidores" - clique com o botão direito do mouse e crie um novo farm.
- dê um nome que seja significativo para você
- adicione Webserver 2 e Webserver 3 como os servidores - certifique-se de clicar no botão "advanced settings", abra a categoria "applicationRequestRouting" e altere o httpPort para 8080 para cada servidor
- Conclua o assistente - você será perguntado se deseja criar regras de regravação de URL - clique em Sim
- Agora você tem um farm de servidores - para concluir a configuração, vá até o farm e clique no botão Configuração do proxy - ative "host de reconfiguração reversa nos cabeçalhos de resposta" e aplique as alterações
- No Gerenciador do IIS, vá para a categoria do servidor de nível raiz e clique no botão URL Rewrite. Haverá uma regra criada para o farm
- clique duas vezes na regra para acessar as configurações
- abra a caixa Condições
- adicione uma nova condição para
{SERVER_PORT}
não corresponder a 8080 - aplicar as alterações
Neste ponto, você tem o básico sobre o que precisamos para realizar sua solicitação. Se você for para http://192.168.1.1/
, você obterá o seu website do Website 1 ou do Website 2, mas será completamente perfeito que existam outros sites.
Agora, o que você pode fazer quando quiser implantar uma nova versão do seu aplicativo é:
- drenar 1 dos servidores em seu farm (nas ferramentas de farm de servidores, vá para "Monitoramento e gerenciamento", escolha um servidor e escolha "Tornar servidor indisponível indisponivelmente")
- implemente sua nova versão do site no sistema que está off-line
- aquecer o site que está off-line usando seu IP / porta alternativo
- disponibilize o site para a fazenda novamente
- repita o processo para o outro servidor
A ferramenta Web Deployment entra em cena quando você fala sobre querer fazer script de tudo isso. Isso torna super fácil criar um pacote para seu aplicativo e implantá-lo a partir da linha de comando. Você também pode reverter esse pacote facilmente se houver problemas. O ARR também é programável por script usando o Microsoft.Web.Administration
dlls.
Uma outra coisa - se você está realmente no Windows 2008 R2 (que é o IIS 7.5), dê uma olhada no Warmup de aplicativo módulo - deve facilitar também o aquecimento desta parte de você.