Serviços em nuvem hospedados pela Amazon Web Services , Azure , Google e mais outros publicar o S erviço L evel A CORDO , ou SLA, para os serviços individuais que prestam. Arquitetos, engenheiros de plataforma e desenvolvedores são responsáveis por reuni-los para criar uma arquitetura que forneça a hospedagem para um aplicativo.
Tomados isoladamente, esses serviços geralmente oferecem algo entre três e quatro nove da disponibilidade:
- Gerenciador de Tráfego do Azure: 99,99% ou 'quatro noves'.
- SQL Azure: 99,99% ou 'quatro noves'.
- Serviço de Aplicativo do Azure: 99,95% ou 'três nove cinco'.
No entanto, quando combinados em arquiteturas, existe a possibilidade de qualquer componente sofrer uma interrupção, resultando em uma disponibilidade geral que não é igual aos serviços do componente.
Disponibilidade do composto serial
Neste exemplo, existem três modos de falha possíveis:
- O SQL Azure está inoperante
- Serviço de aplicativo desativado
- Ambos estão em baixo
Portanto, a disponibilidade geral desse "sistema" deve ser inferior a 99,95%. Minha lógica para pensar isso é se o SLA para ambos os serviços foi:
O serviço estará disponível 23 horas em 24
Então:
- O Serviço de Aplicativo pode estar fora do ar entre 0100 e 0200
- O banco de dados entre 0500 e 0600
Ambas as partes componentes estão dentro do SLA, mas o sistema total ficou indisponível por 2 horas em 24.
Disponibilidade serial e paralela
Nesta arquitetura, há um grande número de modos de falha, mas principalmente:
- O SQL Server na RegionA está inoperante
- O SQL Server na RegionB está inoperante
- O Serviço de Aplicativo na RegionA está inoperante
- O Serviço de Aplicativo na RegiãoB está inativo
- Gerenciador de Tráfego desativado
- Combinações de acima
Como o Traffic Manager é um disjuntor, ele é capaz de detectar uma interrupção em qualquer região e encaminhar o tráfego para a região de trabalho, no entanto, ainda existe um único ponto de falha na forma do Traffic Manager, de modo que a disponibilidade total do "sistema" não pode ser superior a 99,99%.
Como a disponibilidade composta dos dois sistemas acima pode ser calculada e documentada para a empresa, exigindo potencialmente uma nova pesquisa se a empresa desejar um nível de serviço mais alto do que a arquitetura é capaz de fornecer?
Se você quiser anotar os diagramas, eu os construí no Lucid Chart e criei um link multiuso, lembre-se de que qualquer pessoa pode editá-lo para criar uma cópia das páginas a serem anotadas.
fonte
Respostas:
Eu consideraria isso um problema de matemática, com o SLA sendo a probabilidade de estar OK.
Nesse caso, podemos confiar nas regras de probabilidade para obter um resultado geral.
Para o seu primeiro caso, a probabilidade de o Serviço de Aplicativo (A) e o Serviço Sql (B) estarem inativos ao mesmo tempo é o produto de sua probabilidade:
A probabilidade de um deles cair é a soma da probabilidade:
Quando dois eventos são independentes, a fórmula resultante para levar em conta a probabilidade de ambos estarem inativos é:
Portanto, o SLA geral seria
1 - 0,00099975 = 0,99900025
em porcentagem99.900025 %
A simplificação é o produto do primeiro probabilidade:
0.9995 * 0.9995 = 0,99900025
.Aplicado à sua interrupção de 1h / 24h (4,166666% do dia), isso fornece (os decimais são abreviados):
Portanto, a probabilidade de estar bem é
1 - 0.0816 = 0.9184
em porcentagem:91,84%
Isso é menos do que o pior caso de 2 horas, porque há uma chance de ambos caírem ao mesmo tempo.
Tendo isso em mente, você pode observar a disponibilidade de cada um
95,84%
e0,958333333 * 0,958333333 = 0,918402778
qual é o nosso91.84%
de cima (desculpe pelos decimais completos aqui, mas eles são necessários para a demonstração)Agora, para o seu segundo caso, começaremos a ganhar com a nossa probabilidade composta para cada região (desculpe, eu rejeitei a alteração do SQL para mantê-la razoável), supondo que não haja probabilidade independente para a própria região e que cada região esteja isolada e, como tal, uma falha no banco de dados reduz apenas sua região.
Temos a probabilidade de OK do gerenciador de tráfego
P(T) = 0.9999
e cada casal de aplicativo + banco de dados com uma probabilidadeP(G) = 0,99900025
de OK deQuanta região desempenhamos um papel, pois precisamos aplicar o produto da probabilidade de falha apenas para obter a probabilidade de que ambas as regiões caiam ao mesmo tempo: o
0,00099975 * 0,00099975 = 0,0000009995000625
que significa uma disponibilidade geral de pelo menos uma região de99,049375 %
Agora temos a disponibilidade geral das regiões, o produto com o gerenciador de tráfego nos fornece a disponibilidade geral do sistema:
A disponibilidade geral é
99.989900 %
Outra fonte como explicação está disponível nos documentos do Azure (link cortesia de Raj Rao )
fonte
Depois de ler a excelente resposta de Tensibai , percebi que era capaz de calcular isso para fins de análise de rede. Desenterrei minha cópia dos Fundamentos da rede de alta disponibilidade de Chris Oggerino e tive uma falha ao resolver isso, não apenas os primeiros diretores.
Tirar meu exemplo serial diretamente da resposta de Tensibai é simplesmente um caso de multiplicar a probabilidade de cada componente estar disponível pelo outro:
tão
Calculando-lo em paralelo é um pouco mais complicado, como fazemos necessidade de considerar que a percentagem un disponibilidade serão:
O cálculo é feito da seguinte maneira:
Multiplique a disponibilidade un das duas regiões.
Converta isso de volta à disponibilidade
Multiplique a disponibilidade do Gerenciador de Tráfego pela disponibilidade das duas regiões.
O resultado é toda a disponibilidade do sistema.
Acabei usando o Excel para realizar os cálculos, eis os valores:
... e as fórmulas ...
fonte