Temos uma solução web que vendemos e ela vem com 1 VM Azure dedicada contendo tudo o que é necessário para executar o aplicativo:
- Aplicativo web ASP.NET
- Ambiente de produção
- Ambiente de controle de qualidade
- Servidor SQL contendo dados para ambiente PROD e QA
No entanto, um cliente específico tem um requisito de usuário para executar seu aplicativo em uma configuração de alta disponibilidade. O que ele quer é que quando um servidor cair, o outro assuma o controle e vice-versa.
Sou completamente novo em configurações de balanceamento de carga/alta disponibilidade e sei que o Azure oferece suporte a balanceamento de carga, mas estou confuso sobre como poderia fazê-lo funcionar. É tão fácil criar apenas 2 servidores com a configuração acima e depois configurar a funcionalidade de alta disponibilidade? Minha preocupação é como eu sincronizaria os dados do site e os dados do SQL Server entre os dois servidores? Especialmente este último.
Ou seria mais fácil se eu usasse o servidor SQL do Azure em vez de um servidor SQL local? Ou talvez introduzindo servidores adicionais em vez de 2?
Responder1
Primeiro, é recomendado usar o Azure SQL, configurar um servidor SQL sozinho não é seguro e "padrão". O Azure SQL oferece muitos recursos avançados, incluindo alta disponibilidade e recuperação de desastres. Use o Azure SQL e configure o grupo de failover de acordo com odocumento. Agora, sua camada de dados está habilitada para alta disponibilidade.
Segundo, suponha que você tenha migrado seu banco de dados para o Azure SQL, crie uma nova VM na mesma rede virtual da sua VM atual. E executando o mesmo aplicativo na nova VM. Crie um balanceador de carga e adicione essas duas VMs ao pool de back-end. Agora sua camada de aplicativo está habilitada para alta disponibilidade.
Responder2
Você pode configurar StarWind VSAN em apenas duas máquinas virtuais e obter uma solução de armazenamento real altamente disponível na nuvem. Eu acreditoeste manualdeve ser útil para você, dê uma olhada.
Responder3
Você pode criar facilmente um conjunto de alta disponibilidade com os mesmos servidores e, em seguida, definir esse conjunto de alta disponibilidade como um pool de back-end no LB. Recomenda-se a utilização da base de dados SQL do Azure, uma vez que o Azure tem muitas funcionalidades de plataforma incorporadas que suportam aplicações altamente disponíveis. No entanto, é fácil usar o servidor SQL local na mesma VM do Azure e você pode obter uma resposta rápida desde o host do aplicativo e do banco de dados na mesma VM do Azure.
Para o Banco de Dados SQL do Azure, os dados são replicados de forma síncrona na região. Além disso, para obter alta disponibilidade com máquinas virtuais, você deve usar conjuntos de disponibilidade, que têm uma função semelhante para falhar e atualizar domínios.
Consulte istodocumento.