IIS: Como você lida com o Windows?

3

Temos um VPS (Windows 2008 R2 + IIS7.5), com um aplicativo asp.net mvc 3.

A questão principal é: como lidar com problemas quando o Windows precisa ser reinicializado? (depois de instalar o Windows Updates ou qualquer outra coisa). O objetivo é tornar o site 24/7, mas primeiro é ok mostrar uma mensagem para os usuários. (voltaremos em breve, algo como app_offline.htm)

Nosso aplicativo usa SQL e também grava / lê alguns arquivos (fotos carregadas, documentos) que não são armazenados em SQL.

O que você recomendaria?

  1. Balanceamento de carga com ARR? (com 1 + 2 servidores, mas e se o servidor front-end precisar ser reinicializado?)
  2. cluster de failover do Windows?
  3. cluster de failover do SQL?
  4. O que fazer com arquivos enviados?

Eu realmente não sei qual seria a melhor (e mais simples) solução.

    
por Mart 03.12.2012 / 23:43

4 respostas

4

Em geral, para ativar a alta disponibilidade, você precisa ter mais de um servidor. Normalmente, você teria dois ou mais servidores por trás de uma configuração de balanceamento de carga que poderia distribuir a carga para outro servidor no caso de um período de interrupção ou manutenção.

Obviamente, o SQL e o armazenamento de arquivos precisariam estar localizados em servidores ou clusters de back-end diferentes. A configuração mais simples de HA seria algo como:

A Load Balancer (Possibly redundant)
       |
Two Web Servers
 |     |     |
 |  Clustered SQL Server (Unless a single point of failure is ok)
 |
File Servers using DFS-R (Unless a single point of failure is ok)
    
por 04.12.2012 / 00:07
1

Temos um balanceador de carga haproxy na frente dos nossos servidores da web. Temos um script de desligamento que envia um comando para a instância haproxy para tirar o servidor do pool (isso é um pouco chato, já que ele usa um cliente SSH .net que efetua login na máquina haproxy e executa um comando colocando-o em socat stdio /etc/haproxy/haproxysock - mas funciona). Quando o servidor volta a ficar online, ele executa outro comando que coloca o servidor de volta no pool.

Isso significa que os usuários finais nunca sabem quando um servidor vai ou vem, já que há sempre um segundo servidor da Web para compensar o problema.

Na ocasião, se alguma vez tivermos uma falha catastrófica, teremos uma mensagem personalizada "Whoops, we be back soon" ("Opa, vamos voltar em breve") se houver um pool vazio ou se todos os servidores falharem.

Quanto ao restante do dispositivo, adio para a resposta do Brent . O DFS-R é incrível (e é bom também para failover externo). Nós não fazemos SQL Clustering, mas fazemos o SQL Mirroring que é quase tão bom.

    
por 04.12.2012 / 05:42
0

Se os recursos não são um problema e seu objetivo é estabelecer um tempo de atividade o mais próximo possível de cinco 9's / alta disponibilidade (HA) enquanto ainda é capaz de reiniciar. Eu recomendo usar uma solução de virtualização de servidores, incluindo armazenamento compartilhado entre seus hosts. No desenho abaixo, estou usando iSCSI e VMware com rede de armazenamento. A rede está utilizando o Hot Standby Router Protocol (HSRP) (é propiciatório da Cisco, mas há outros). Nesta configuração e para sua situação, o VMotion é opcional. O SRDF e outros dados de replicação / clustering permitem redundância completa em todos os níveis. O desenho é simplista e não ilustra LUNs ou consideração se havia estrutura de FC em vez de iSCSI.

Além disso, por experiência, muitos datacenters colocam uma enorme quantidade de tempo e recursos em tecnologia, mas esquecem-se da distribuição de energia adequada. Poder, pode facilmente arruinar o dia. Considere a simetria de fontes de alimentação redundantes, PDUs, painéis e fontes de energia comerciais. A UPS também é crítica.

    
por 04.12.2012 / 06:38
-1

IMO, a solução mais simples seria dar uma olhada no Azure, não só permite que você se concentre no desenvolvimento, mas também tenha um ótimo tempo de atividade (e eles o reembolsam quando está inativo). O SQL não está no mesmo servidor e você pode armazenar os arquivos enviados no armazenamento de blobs.

Talvez não seja o caminho que você quer percorrer, mas eu o uso há cerca de um ano e meio e estou muito satisfeito:)

Ah, e se você tiver uma assinatura do MSDN, o Bizspark ou o site acenderá quase de graça (dependendo do tráfego do seu site, é claro).

    
por 03.12.2012 / 23:49

Tags