Como você calcula o SLA (Contrato de nível de serviço) composto para serviços em nuvem?


27

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

Disponibilidade 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

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.


SLA mais baixo do SPOF, supondo que seu aplicativo seja capaz de lidar com a interrupção da sessão?
Tensibai 29/03

11
@Tensibai - Eu não acho que possa ser, com base no meu primeiro exemplo, se o SLA para ambos os serviços estiver disponível 23 horas em 24, o Serviço de Aplicativo poderá sair entre 0100 e 0200 e o Banco de Dados entre 0500 e 0600, as duas partes do componente estão dentro do SLA, mas o sistema total ficou indisponível por 2 horas em 24. Faz sentido?
Richard Slater

Sim, faz sentido, mas, neste caso, o resultado deve ser o produto de todos os não?
Tensibai 29/03

I aplicativo média 99,95 x sql 99,95 deve ser a disponibilidade geral do grupo
Tensibai

Lembre-se também de que você pode criar um sistema mais confiável que seus componentes, através de tentativas ou failovers ou degradação, em vez de falha total.
Xiong Chiamiov

Respostas:


19

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:

P(A)*P(B) = 0.0005 * 0.0005 = 0,00000025

A probabilidade de um deles cair é a soma da probabilidade:

P(A)+P(B) = 0.001

Quando dois eventos são independentes, a fórmula resultante para levar em conta a probabilidade de ambos estarem inativos é:

P(A,B) = P(A) + P(B) - P(A)*P(B) = 0.001 - 0,00000025 = 0,00099975

Portanto, o SLA geral seria 1 - 0,00099975 = 0,99900025em 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):

0.0416 + 0.0416 - (0.0416 * 0.0416) = 0,081597222

Portanto, a probabilidade de estar bem é 1 - 0.0816 = 0.9184em porcentagem:91,84%

24 * 0.0816 = 1.95 h

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%e 0,958333333 * 0,958333333 = 0,918402778qual é o nosso 91.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.9999e cada casal de aplicativo + banco de dados com uma probabilidade P(G) = 0,99900025de OK de

Quanta 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,0000009995000625que 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:

0.9999 * 0,9999990004999375 = 0,99989900059988750625

A disponibilidade geral é 99.989900 %

Outra fonte como explicação está disponível nos documentos do Azure (link cortesia de Raj Rao )


A disponibilidade geral parece muito baixa - na verdade, ao adicionar uma região e um gerenciador de tráfego adicionais, o SLA é uma ordem de magnitude menor do que se fosse apenas uma região. Estou tentando descobrir como costumava fazer isso em redes fora do meu cérebro.
Richard Slater

Ufa! Eu tinha certeza de que estava ficando louco.
Richard Slater

@RichardSlater maths corrigido
Tensibai 31/03

2
@BruceBecker provavelmente sim, pois certamente parece que o IEEE publicou uma pesquisa sobre o assunto, suspeito, porém, dado o propósito de calcular esses números, trata-se mais de ter uma "prova" concreta de que você precisa, ou não, de recursos de alta disponibilidade adicionado a um sistema - ou seja, usamos esses números para orientar decisões de custo-benefício com base no apetite por risco das empresas. Construir um modelo bayesiano pode não representar o melhor uso de nosso tempo.
Richard Slater

11
@BruceBecker Sim, parte do prob está vinculada (o mesmo datacenter está desativado e os dois serviços estão dentro dele, o que deve ser baixo). Quanto ao resto, acho que podemos assumir com segurança que os serviços de aplicativos e serviços sql são executados em sistemas diferentes e é improvável que falhar ao mesmo tempo, pelo mesmo motivo . Para aprofundar a matemática, seria necessária uma documentação precisa sobre como a arquitetura do Azure é feita e, portanto, só pode ser respondida por alguém da Microsoft.
Tensibai

18

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:

Disponibilidade serial

tão

99,95% * 99,95% = 99,9%

Calculando-lo em paralelo é um pouco mais complicado, como fazemos necessidade de considerar que a percentagem un disponibilidade serão:

Disponibilidade serial e paralela

O cálculo é feito da seguinte maneira:

  1. Multiplique a disponibilidade un das duas regiões.

    0,1% * 0,1% = 0,0001%

  2. Converta isso de volta à disponibilidade

    100% - 0,0001% = 99,9999%

  3. Multiplique a disponibilidade do Gerenciador de Tráfego pela disponibilidade das duas regiões.

    99,99% * 99,9999% = 99,9899%

  4. O resultado é toda a disponibilidade do sistema.

    99,98% está perto de 99,99%

Acabei usando o Excel para realizar os cálculos, eis os valores:

Valores do Excel

... e as fórmulas ...

Fórmulas do Excel


11
É isso, de uma forma mais simples do que a minha (eu senti a necessidade de demonstrar a matemática por trás :))
Tensibai

Concordo, sua resposta é realmente boa para a matemática.
Richard Slater

O SQL Azure é 99,99% e não 99,95%
Jeffery Tang

11
@JefferyTang (provavelmente) estava no momento da pergunta / resposta (não me lembro exatamente) e o valor real não altera a metodologia para obter a resposta para "Como calcular o SLA composto de SLA de partes individuais", que é a verdadeira questão.
Tensibai 11/06
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.