Alcançar cinco noves

4

Estou construindo uma aplicação web onde o tempo de atividade é a chave. Eu entendo que o uptime de 100% não é realista, mas eu gostaria de alcançar cinco noves. Não tenho certeza quanto à maneira mais prudente de conseguir isso.

Meu plano preliminar era ter o aplicativo da Web em execução em dois data centers separados geograficamente. O centro de dados "principal" conteria o servidor principal e este seria replicado para o servidor "escravo" não usado em outro lugar. Se o tempo de inatividade ocorresse no data center principal, o failover do DNS moveria o tráfego para o servidor "escravo". Há desafios com essa técnica, incluindo alguns usuários que não conseguem acessar o site por algum tempo devido a um estranho cache de registro de DNS, etc.

No entanto, tenho lido muitas opiniões afirmando que o failover de DNS não é uma ótima solução e que você deve manter tudo em um único data center e focar a redundância nele. A questão que vejo com isso é que até mesmo os bons centros de dados parecem ter o problema de rede estranho que pode causar tempo de inatividade suficiente para afastar a expectativa de cinco noves.

Devo ir com a opção de failover de DNS? Existem melhores opções?

    
por Brandon Tooke 11.01.2013 / 20:31

4 respostas

13

Minha regra geral para os clientes é: dois noves que você recebe de graça (ou seja, sem gastar nada especificamente em alta disponibilidade). Cada nove extras aumenta o custo total em até uma ordem de magnitude.

Isso significa que você pode ter 99% de tempo de atividade apenas colocando seu aplicativo em um servidor decente na sua conexão de internet corporativa. Para melhorar isso, você pode colocar. Você pode se posicionar com balanceamento de carga e failover rápido. Você pode se posicionar com balanceamento de carga, failover rápido e um site de DR de reserva a frio. Você pode colocar com balanceamento de carga, um hot spare site, espaço de endereço PI, executar seu próprio ASN e ter arranjos de peering BGP no lugar para garantir que seu espaço de endereço seja sempre globalmente roteável. Você pode investigar hardware de alta disponibilidade, onde tudo, incluindo memória e CPUs, pode ser desativado e com hot-swap. Se o seu aplicativo oferecer suporte, você poderá executar hospedagem totalmente distribuída ou terceirizar para as redes de fornecimento de conteúdo altamente disponíveis. Você pode, e vai precisar de cinco vezes mais pessoal para gerenciar tudo isso 24 * 365, incluindo feriados e cobertura de doença, e os freqüentes testes de DR ao vivo que você precisará fazer para ter confiança em tudo isso.

Você pode fazer muitas coisas inteligentes. Mas tudo custa, e a maior parte custa uma grande quantidade de dinheiro.

Portanto, meu conselho sincero é: calcule o quanto custaria para você hospedar seu aplicativo em um único servidor no escritório corporativo. Se o seu empregador não estiver disposto a gastar até mil vezes mais do que isso , esqueça de cinco noves; não é realista.

    
por 11.01.2013 / 21:18
2

Se cinco noves fossem fáceis, o Twitter, o Facebook, o Gmail, o Azure e a Amazon provavelmente já estariam lá. Eles definitivamente têm o dinheiro e os casos de negócios mais válidos para isso. Em vez disso, recomendo que você almeje hospedar um provedor em nuvem que tenha o conhecimento de fornecer infraestrutura confiável para que eles possam se preocupar com isso enquanto você desenvolve seu produto.

    
por 11.01.2013 / 22:04
1

Por cinco noves, você está procurando muito mais envolvimento do que apenas uma solução de failover. Você precisa de HA dentro de um datacenter, além de um datacenter em espera (ou pelo menos quente) que esteja geograficamente longe, mas topologicamente próximo ao seu data center principal. E isso é só o começo ...

    
por 11.01.2013 / 20:35
0

Eu imagino que há uma coisa de pontos de venda compatíveis com o boss-wants-powerpoint aqui, mas conseguir cinco noves ou muito perto disso é possível - embora você tenha que ser cuidadoso ao definir exatamente o que é necessário ter o tempo de atividade de cinco noves.

Estou escrevendo um aplicativo que coleta dados de dispositivos IoT (também compatíveis com Boss / Powerpoint) e apresenta os dados coletados para os usuários finais, faz mineração de dados e assim por diante usando o MongoDB e outros.

Na verdade, temos um tempo de atividade percebido de pelo menos 99,9 neste momento. Como? Bem, nosso tempo de atividade é definido como a disponibilidade do aplicativo front-end do usuário. Essa parte é executada no GAE, enquanto as outras partes (como o MongoDB) são executadas em nossos próprios servidores. A comunicação é via REST e muita criptografia. O GAE tem 99,45% de tempo de atividade no momento - mas, na verdade, para as partes que estamos usando, é maior - ainda não registramos nenhum tipo de interrupção.

O MongoDB, por outro lado, às vezes é um pouco esquisito - não muito - mas obter um tempo de atividade de 98-99% é o melhor que podemos fazer agora. No topo do MongoDB, temos um mecanismo que gera blocos de dados JSONified - esses são gerados a pedido, mas também periodicamente. Colocá-los em cache é bastante útil para manter o tempo de atividade percebido de todo o sistema. Os usuários finais não sabem se algum dispositivo entregou dados no backend agora - ou há uma hora. Assim, os dados em cache parecem tão recentes quanto os dados recentes "reais".

Então - obter um tempo de atividade realmente alto é certamente possível se você é bom em isolar os bits que realmente precisam ter tempo de atividade alto. Colocar toda a stack em cinco noves de tempo é HARD e é realmente caro, como outros apontaram. Mas você provavelmente pode fazer com menos e ainda fazer seu chefe feliz.

    
por 27.03.2015 / 08:27