Novas tecnologias como Docker, Mesos, Kubernetes etc. permitem uma utilização muito melhor do servidor em uma organização. No entanto, gostaria de saber como a utilização pode ser maximizada em dois datacenters, levando em consideração a falha de um datacenter inteiro.
Dado este cenário:
Dois datacenters (DC-A e DC-B) com uma quantidade igual de recursos de computação. Ambos os datacenters estão executando e atendendo a solicitações em um balanceamento de carga/estilo round robin. A utilização do servidor em ambos os datacenters é de 80%.
Digamos que o DC-B falhe (físico ou de rede) e esteja inacessível. O DC-A não poderá adicionar uma utilização adicional de 80%, pois já está em 80%. Deixar a organização em um estado em que potencialmente o DC-A não será capaz de lidar com a demanda extra e causará interrupções...
Isso significa que uma organização com dois datacenters (DC-A e DC-B) só pode ter 50% de utilização máxima por datacenter? Ou seja, qualquer DC falha e o outro DC será capaz de pegar a folga que o outro carregava (50% + 50%).
Este pensamento está correto? Como os outros estão lidando com esse problema ou estou perdendo alguma coisa?
Para serviços que precisam estar sempre disponíveis, você precisa de redundância N+1, onde N é o número de datacenters ou servidores (ou o que mais você perder no cenário de falha proposto) necessários para lidar com a carga. Isso fica menos dispendioso quanto maior você conseguir - na extremidade inferior, com dois datacenters, cada um precisa ser capaz de lidar com toda a carga de trabalho. Mas se você tiver 10, eles podem fazer o trabalho de 9 e ainda assim serem redundantes.
A outra opção é o descarte de carga, embora essa frase seja usada com mais frequência em sistemas de energia. Basicamente, desligue todos os serviços não essenciais em um cenário de falha, para que os sistemas restantes tenham recursos suficientes.
Uma abordagem bastante comum é que, para o ambiente de produção, a capacidade reservada é suficiente para que, em caso de calamidade, o(s) datacenter(s) restante(s) seja(m) capaz(es) de lidar com a carga total e todas as operações continuem como de costume.
Normalmente, os orçamentos nunca se estendem o suficiente nem o caso de negócios aparente é viável para permitir a recuperação/failover total de desastres para ambientes de não produção. A degradação ou indisponibilidade completa pode ser considerada aceitável lá.
Dependendo da plataforma, alguns podem escolher a opção de aumentar a capacidade de produção disponível para atender ao aumento da carga no(s) datacenter(s) restante(s), reduzindo os ambientes de não produção em caso de desastre.