> For the complete documentation index, see [llms.txt](https://weekly-essay.mikey.wang/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://weekly-essay.mikey.wang/pt-br/2022/w23-a-stability-metric-that-accurately-describes-customer-impact.md).

# W23-Uma métrica de estabilidade que descreva o impacto sobre clientes

### **Contexto**

Por que pensar em métricas de estabilidade\*\*?\*\* Alguns acontecimentos se combinaram. Estou preparando a recuperação de desastres do Yugong; melhorar disponibilidade é o O2 da equipe neste ano, e preciso ajudar Zhongze a planejar; e um curso sobre pensamento com dados, recomendado por Jerry, me deu várias ideias.

### **Conceitos básicos**

Falamos em serviços disponíveis, confiáveis e estáveis. Em sentido amplo, parece bastar uma métrica semelhante à taxa de sucesso. Em sentido estrito, porém, os três conceitos são diferentes.

**Availability, disponibilidade.** É a proporção do período observado em que o sistema funciona normalmente. **Descreve se é possível usar.**

**Reliability, confiabilidade.** É a probabilidade de o sistema operar continuamente sem falhas em um intervalo e sob condições determinados. **Descreve se funciona corretamente.**

**Stability, estabilidade.** Trata da probabilidade de erros e da tendência de degradação de desempenho durante um ciclo de operação contínua, sob certa carga. No frontend, o runtime é descentralizado e distribuído pelos dispositivos. Portanto, **estabilidade descreve se o software funciona bem em diferentes aparelhos e condições de rede.**

Podemos entender a relação assim: confiabilidade ruim pode afetar disponibilidade, mas o inverso nem sempre vale. Estar disponível é condição para ser confiável; estabilidade é um avanço da confiabilidade.

Agora, o conceito de valor esperado. O curso de dados citado usa uma boa aplicação: explicar a Lei de Murphy por expectativa.

Valor esperado é a média ponderada dos resultados possíveis, usando suas probabilidades como pesos. É determinado inteiramente pela distribuição de probabilidades. Pela lei dos grandes números, com repetições suficientes, chegamos ao valor esperado previsto. Portanto, é uma previsão anterior ao acontecimento. A média de que falamos no cotidiano é uma estatística posterior. Em inglês, o texto distingue Mean para valor esperado e Average para média.

### **O cálculo atual da disponibilidade**

O SLA das especificações de entrega de software é um conjunto de valores esperados.

Uma definição comum no setor é Availability = MTTF / (MTTF + MTTR).

MTTF, Mean Time To Failure, é o tempo médio de operação normal até uma falha. Quanto maior, mais confiável o sistema.

MTTR, Mean Time To Repair, é o tempo médio de reparo de um sistema reparável, da ocorrência da falha à conclusão do conserto. Quanto menor, melhor a manutenibilidade.

A empresa usa uma definição mais concreta, detalhando o tempo de reparo e convertendo dados de perda em tempo.

A fórmula é Availability = ( 525600 - sum( min {1440 \* loss, ( t2 - t1 ) })) / 525600.

525600 representa os minutos de um ano; 1440, os de um dia. loss é a proporção de pedidos diários perdidos. Em negócios sem transações, pode-se usar perda de visualizações ou aumento de reclamações. t2-t1 é a duração da falha.

### **Cálculo da métrica X**

Tento encontrar uma métrica que descreva melhor o impacto sobre clientes. Como ainda não tenho um nome bom, vou chamá-la de X.

Se M, Mean, é o impacto esperado, P, Probability, sua probabilidade e D, Degree, sua intensidade, temos M = P \* D. Para facilitar, usarei transações: P = duração da falha / tempo anual, e D = pedidos perdidos / pedidos anuais.

Assim, a métrica X pode ser calculada como:

( 1 - sqrt ( (pedidos perdidos / pedidos anuais) \* (duração da falha / tempo anual) ) \* 100%

Ainda preciso amadurecer a reflexão sobre como aplicá-la em produção.
