Pode ajudar apenas com a questão 1.
Existem várias abordagens para balanceamento de carga e failover (simpliest-first)
- round robing de DNS (balanceamento de carga e failover)
- DNS dinâmico (failover)
- Proxies (balanceamento de carga e failover)
- Failover de IP local (failover)
- BGP Anycast (balanceamento de carga e failover)
balanceamento de carga DNS é simples: digamos que você tenha dois (ou mais) servidores com IPs 1.1.1.1 e 2.2.2.2. Para configurar o balanceamento de carga DNS, você cria registros DNS para seu nome de host, por exemplo, www.example.com:
www.example.com. A 1.1.1.1
A 2.2.2.2
(Além disso, o servidor DNS deve ser configurado para servir esse nome no modo round-robin, mas geralmente é o padrão de qualquer maneira).
Agora, cada solicitação de DNS para www.example.com será respondida com dois endereços, em uma ordem pseudoaleatória, e, assim, seus clientes provavelmente se espalharão igualmente entre os servidores.
Não há necessidade de atualizar registros com frequência, uma vez configurado, funciona para sempre. Ele também fornece algum grau de failover, como se um dos hosts estivesse desativado, os navegadores expirassem e tentassem o segundo host, MAS pode haver um atraso considerável e os usuários não gostarão dele.
DNS dinâmico. Adição possível para 1., é uma vez dado host falhar, atualizar dinamicamente os registros DNS e remover a referência para o host com falha, mas muita cache no sistema DNS faz com que haja algum período de comportamento degradado que mencionei acima. Usando muito baixo TTL melhora a situação, mas ainda há caching dentro do sistema operacional do cliente / navegador que não vai considerar TTL, também alguns ISPs não desconsideram TTLs baixos também. De qualquer forma, bottomline - é uma maneira muito fácil e acessível de obter um balanceamento e um failover básico .
Proxies. Simples e popular para balanceamento de carga. Para eliminar o ponto único de falha, você precisa combiná-lo com outra (s) abordagem (s).
Failover de IP. Como adição a 2., para lidar com a falha do próprio proxy, dois proxies usados na configuração "IP failover" - a ideia básica é ter um endereço IP que normalmente aparece host1, mas quando ele falha, o host2 detecta e o IP aparece no host2. Procure pelo projeto "heartbeat" do Linux. (Você também pode fazer failover de servidores sem proxies, mas não terá balanceamento). Normalmente os dois PCs precisam estar na mesma sub-rede (mesmo datacenter).
A idéia do Anycast. é anunciar rotas para um único endereço IP (na verdade, uma única sub-rede) em alguns locais físicos. Você precisa da sua própria sub-rede / 24 e da capacidade de configurar o BGP. Anycast frequentemente usado para servidores DNS. Há dificuldades com conexões TCP persistentes e, portanto, mais facilmente se adapta a UDP e DNS, mas ainda às vezes usado para web também.
Essas são as ideias básicas. Como você vê, todo método tem limitações e complicações. E se não for complicado o suficiente, você pode construir qualquer combinação imaginável das abordagens acima:)