Evan acertou em alguns pontos positivos, mas aqui estão, talvez, algumas maneiras específicas de baixo custo para obter um tempo de recuperação de menos de 1 hora diante de falhas.
Provavelmente, pequenas empresas significam hardware pequeno; portanto, pode não ser muito caro fazer algumas coisas simples que realmente adicionam uma quantidade significativa de resiliência diante dos problemas. A idéia principal é apenas ter hardware extra pronto para uso.
Primeiro, fique à vontade com o pensamento de um IP virtual. Esse é o endereço IP com o qual os usuários falarão, mas podem residir em qualquer servidor que você fornecer. Este é o endereço IP com o qual você é usuário, e os aplicativos vão querer conversar. E será a mais útil para qualquer solução que você escolha. Ter um VIP significa que você não precisa reconfigurar nenhum dos aplicativos ao realizar o failover. Além disso, lembre-se de que ter hardware redundante também tem o impacto de aumentar a sobrecarga da administração, fazendo duas atualizações de configuração em vez de 1.
Se começarmos com o seu servidor de roteamento / proxy da Web, é provavelmente o mais fácil, pois não haverá nenhum estado real que precise ser armazenado na própria caixa. Portanto, basta obter uma duplicata da mesma caixa e configurá-la da mesma forma. Eu manteria os dois conectados ao segmento da LAN e, assumindo que sua Internet está em outra interface, troque os cabos se houver falha. De uma perspectiva de roteamento, você define todos os clientes LAN para direcionar o endereço .1 (o VIP) para o servidor proxy e de rota padrão, fornece ao servidor A o endereço .2 e o servidor B o endereço .3. Dessa forma, ambos podem ser gerenciados para atualizações de configuração (aplica-se a ambos). E tudo o que você precisa fazer para realizar o failover é remover a atribuição de IP .1 de .2 e movê-la para .3 e mover a conexão com a Internet para a outra interface. Não é muito complicado, fácil de fazer e entender, e custa o hardware extra de uma segunda caixa. Se você puder obter redundância no lado da Internet, poderá adicionar um pouco de complexidade e obter failover automático usando algo como VRRP.
Sem detalhes, é difícil dizer, mas seu servidor da Web pode ser igualmente simples. Adicione um segundo servidor com configuração idêntica, crie um vIP entre os dois e mova o VIP para o backup em caso de falha. Geralmente, não me importo se o estado da sessão for perdido em um failover (é um problema crítico causar um failover). Portanto, se os usuários tiverem que efetuar login novamente, não é grande coisa. Novamente, o vrrp provavelmente pode ser usado para failover automático.
Passando para o seu banco de dados, isso é significativamente mais complexo. A maioria dos bancos de dados possui algum tipo de modelo primário / secundário, no qual você faz backup do banco de dados original no secundário e copia todos os logs de transações ou alterações no banco de dados. Novamente, você pode combinar isso com VIPs para os aplicativos / usuários que realmente acessam o banco de dados. No entanto, o failover é mais complicado. Dependendo da falha do primário, talvez seja necessário colocar as unidades em funcionamento para copiar e restar os logs de transações. Então traga o secundário ativo. Se você puder tolerar alguns dados perdidos, poderá trazer o ativo secundário imediatamente. Após o failover, o servidor B agora é o principal, e você deve restaurar o servidor A e transformá-lo no novo backup, para que fique pronto quando o servidor b tiver problemas.
Servidores de arquivos são sempre a parte mais difícil, pois, diferentemente dos DBs, é muito mais difícil obter um recurso interno do sistema de arquivos. No entanto, é possível obter algum nível de resiliência com um segundo servidor, e escrever um script simples que varre o sistema de arquivos em busca de alterações e copiar quaisquer novos arquivos para o seu secundário. Basicamente, você pode executar o rsync em um cron que acredito fazer isso. Mais uma vez, você usa um VIP que você dá aos usuários e passa a fazer parte de um failover. No seu script, recomendo vivamente que você verifique se o sistema é o proprietário do VIP antes de transferir arquivos. Você realmente não quer que o rsync execute na direção errada e substitua as alterações que os usuários estão fazendo. Isso pode perder alguns arquivos se houver uma falha,
Eu não tenho idéia do que você poderia fazer sobre o seu sistema telefônico ... isso realmente depende do fornecedor e de como ele está configurado. O fornecedor pode ter alguma solução pronta para resiliência.
Algumas palavras finais de aviso. Certifique-se de testar completamente qualquer configuração com a qual você vá. Certifique-se de saber como fazer o failover sem perder essas informações críticas. Teste teste de teste para garantir que funcione quando você precisar. Verifique se você possui processos em vigor para que as alterações de configuração, atualizações de software, etc. sejam aplicadas corretamente ao primário e aos backups. A boa notícia é que você provavelmente pode executar failover controlado quando quiser trazer um servidor para atualização, etc. Não é uma configuração ativo-ativo, portanto, você não tem idéia se o secundário funcionará quando você precisar.
Eu trabalho em telecomunicações e nosso equipamento é altamente redundante, incluindo na maioria dos casos redundância geográfica. Nosso ponto de falha número 1 é a redundância não é testada após as alterações, e os usuários fazem alterações que não sabem como o modelo de redundância funciona. No entanto, temos o problema adicional de que todos os nossos equipamentos precisam suportar failover automático em não mais que alguns segundos. Você pode tolerar a intervenção manual em seus failovers, se precisar estar em funcionamento em 30 a 60 minutos. Você só precisa estar preparado. Boa sorte.