Quanta redundância de failover é suficiente? [fechadas]

3

Estou trabalhando em um sistema cliente-servidor no qual todos os clientes enviam atualmente suas transações para essencialmente um único endereço IP da costa oeste para alcançar o que é chamado de aplicativo "gateway". O gateway faz alguma contabilidade e despacha cada transação para qualquer um dos vários servidores de banco de dados para processamento final. Os servidores retornam seus resultados diretamente ao cliente (não retornam pelo gateway).

O plano é adicionar um segundo gateway na costa leste, para redundância e failover. Ele normalmente só estará em stand-by, projetado para assumir o controle e se tornar o gateway real caso o gateway de trabalho falhe, essencialmente a configuração clássica ilustrado aqui .

Alguns participantes argumentam que ter apenas um gateway de espera é insuficiente, e também devemos implementar um segundo ponto de parada, digamos, no centro-oeste. Outros argumentam que o custo extra, a complexidade e a gestão de dois stand-bys são desnecessários, e que a indisponibilidade simultânea de gateways em ambas as costas é tão improvável que não é uma preocupação.

O que é considerado melhor prática? Quanta redundância (em termos de pontos de acesso fisicamente separados disponíveis para clientes) é tipicamente considerada nominal? As falhas duplas são comuns o suficiente para que ter apenas um stand-by seja freqüentemente lamentado?

EDITAR: Com relação ao "cálculo" de custo x benefício para a quantidade de redundância que preciso ou desejo, acho que é melhor reformular minha pergunta como:

Onde as estatísticas indicam a frequência com que uma coleção de endereços IP geograficamente separada é simultaneamente inacessível?

Em outras palavras, uma tabela como

On average, 1 west coast IP + 1 east cost IP
are simultaneously unreachable 1 day/year.
On average, 1 west IP + 1 east IP + 1 southern IP
are simultaneously unreachable 1 hr/year.
On average, 1 west IP + 1 east IP + 1 southern IP + 1 northern IP
are simultaneously unreachable 1 minute/year.
etc.

torna bastante fácil escolher a quantidade de redundância desejada, porque há uma base real a partir da qual calcular custos versus desempenho. (Eu acho que "simultaneamente inalcançável" tem que significar "para um número substancial de clientes espalhados aleatoriamente pelo país", já que um único cliente pode ser incapaz de acessar qualquer servidor, independentemente de quantos existirem devido à própria falha da rede local.)

No entanto, sem essa tabela, qualquer cálculo de redundância versus desempenho seria apenas adivinhação. Portanto: existem fontes de dados de disponibilidade da vida real em que esses cálculos podem ser baseados? Ou todos adivinham o que precisam e expandem conforme necessário, uma vez que descobrem que adivinharam baixo ou cortar de volta se eles adivinharam alto?

Parece que as empresas que oferecem produtos tolerantes a falhas desejam coletar e promover esses dados. Por outro lado, talvez os dados mostrem que 99,99% dos clientes tolerantes a falhas realmente não precisam de muita redundância. Por exemplo, se eu puder ir por um ano inteiro e meus endereços IP leste e oeste nunca estiverem simultaneamente inacessíveis, não vou me preocupar em adicionar um IP do meio-oeste.

Também percebo que há uma distinção entre um endereço IP inacessível devido a forças externas ao meu site e um endereço IP que está inativo porque meu site falhou internamente. Falhas internas (do meu lado do endereço IP) são relativamente fáceis de lidar. Falhas externas (no lado do cliente do endereço IP, como a Califórnia ficar off-line devido a terremotos, ou Nova York ficar off-line durante um furacão) só posso lidar com endereços IP extras em algum outro local geográfico. Essa é a probabilidade que espero quantificar. Por enquanto, estou inclinado para o acampamento que afirma que a probabilidade de endereços IP leste e oeste serem simultaneamente inacessíveis é muito pequena para se preocupar.

    
por Witness Protection ID 44583292 11.02.2014 / 00:04

3 respostas

0

Nosso primeiro servidor da Web começou na cidade X em 1995 em uma conexão Centrex, que foi convertida em ISDN em 1998 e depois em DSL em 2001, quando também iniciamos um segundo endereço estático na cidade Y a alguns quilômetros de distância para backup. Embora estivéssemos usando dois ISPs diferentes, a rede subjacente era toda a PacBell, agora ATT. Nossa instalação de cidade X foi desocupada em 2003 e somente a cidade Y executou nosso servidor até 2009, quando iniciamos outro endereço estático na cidade Z, novamente a poucos quilômetros da cidade Y, e Y e Z agora usam o mesmo ISP.

Em todos esses anos, nossos endereços IP nunca foram "externamente" (como você diz) inacessíveis, até onde poderíamos dizer. Aparentemente, a PacBell / ATT e nosso ISP sempre tiveram redundância suficiente para que sempre pudessem pelo menos entregar nossos pacotes. "Internamente" os únicos problemas que tivemos foram falhas de energia, nem mesmo falhas de máquina, e apenas temporariamente trocar indicadores DNS entre os dois locais durante esses tipos de incidentes (por alguns dias, talvez uma vez a cada dois anos). nossos propósitos.

Se você obtiver um IP da costa oeste e um IP da costa leste, prevejo que seus clientes (como grupo) provavelmente nunca verão esses endereços serem simultaneamente inacessíveis. Se ambos os locais estiverem inacessíveis (em outras palavras, os pacotes não podem nem ser enviados para lá), então o Armagedom provavelmente chegou e você terá problemas maiores de qualquer maneira. Apenas certifique-se de ter políticas e procedimentos em vigor (e testados) para recuperar o ASAP, caso você tenha uma falha interna em qualquer site, e não se preocupe em obter um terceiro IP do meio-oeste até que as circunstâncias provem que é realmente necessário. p>     

por 11.02.2014 / 18:35
5

O que @ HopelessN00b disse. Você tem que pesar o Custo VS Benefício para você.

  • Alguns clientes literalmente desligam um computador por um período específico para economizar custos, porque não recebem tráfego algum durante o tempo de inatividade.
  • Alguns clientes precisarão de um cluster com balanceamento de carga, com uma instância de failover em um datacenter separado, além de uma terceira rede em outro datacenter para atuar como testemunha e uma garantia de seus provedores para 100% de tempo de atividade 24/7/365 com sem exceções.

Você precisa calcular:

  • Quantas horas do dia eu preciso estar on-line?
  • Quanto ganhamos se ficarmos offline por X horas / minutos?
  • Vale a pena gastar mais US $ 5.000 por mês para DR se eu estou perdendo apenas US $ 250 por hora, e eu apenas antecipo 5 horas de inatividade por mês? (99.9926% de disponibilidade)
  • Et cetera

Não há prática recomendada para isso.

Where are statistics indicating the frequency with which a geographically separate collection of IP addresses are simultaneously unreachable?

Isso também depende. Por exemplo, estamos falando de estatísticas para clientes que não têm um UPS ou seu próprio gerador ? ou até mesmo duas linhas de energia independentes provenientes de subestações separadas?

Isso entra na equação também. Nossa empresa teve um apagão devido a uma queda de energia total que foi tão longa que nosso UPS ficou sem energia. Passamos a comprar um gerador para todo o nosso datacenter que dura X horas, com a capacidade de recarregar através da entrega de combustível durante emergências, para que, mesmo que o subsistema local seja completamente eliminado, possamos continuar indefinidamente.

maybe the data would show 99.99% of fault-tolerant customers don't really need much redundancy at all.

Totalmente.
Eu tenho clientes que executam sistemas críticos ($$$) em um único servidor, em um único local, e seu servidor é sólido, porque ele executa apenas uma função. Quanto menos complicações, melhor.

É a velha situação irônica em que você adiciona uma solução de recuperação de desastres e, em seguida, sofre mais interrupções do que nunca.

    
por 11.02.2014 / 00:23
4

Como já foi dito, não há nenhuma melhor prática genérica aqui no nível técnico, além da lista óbvia de coisas que não devem ser feitas.

Muitos serão informados por quaisquer SLAs que você tenha explicitamente com seus clientes ou que possam ser assumidos em seu setor - essencial para garantir que você possa apoiar isso em todas as circunstâncias, exceto as mais excepcionais, e pagar por qualquer recompensa que você precisa fazer caso uma circunstância mais excepcional aconteça. Por exemplo, com alguns de nossos clientes, temos uma janela de recuperação de quatro horas com perda de 24 horas por dia sendo "aceitável" (o que é muito fácil de garantir), para outro projeto que é muito mais em tempo real. e posso imaginar serviços de missão crítica e / ou de segurança com expectativas muito mais rigorosas do que isso.

O único conselho genérico que posso pensar é ter certeza de que você tem o básico de tudo coberto até um certo nível antes de gastar tempo e dinheiro em um ponto específico. Ter a camada de banco de dados à prova de falhas mais redundante do planeta não ajuda quando o link público para a sua web farm morre. Portanto, tente não proteger excessivamente uma parte do sistema às custas dos outros.

    
por 11.02.2014 / 01:05