Back-of-the-envelope Estimation
Introdução
Ao projetar um novo sistema muitas vezes precisamos estimar a quantidade de recursos necessárias e capacidade que o sistema terá para aguentar uma determinada carga de trabalho, para isso utilizamos uma espécie de conta de padaria (back-of-the-envelope estimation).
Para realizar efetivamente o calculo da capacidade e os recursos de um sistema, primeiro precisamos ter um conhecimento básico sobre escalabilidade, latencia, etc.
Unidades de volume de dados
Para realizar efetivamente o calculo da capacidade e os recursos de um sistema, é fundamental conhecermos as unidades de volume de dados.
Unidade | Valor Aproximado | Tamanho (bytes) |
---|---|---|
bit | 0 ou 1 | 1/8 - byte |
bytes | 8 bits | 1 byte |
kilobytes (KB) | 1.000 bytes | 1.000 bytes |
megabyte (MB) | 1.000² bytes | 1.000.000 bytes |
gigabyte (GB) | 1.000³ bytes | 1.000.000.000 bytes |
terabyte (TB) | 1.000⁴ bytes | 1.000.000.000.000 bytes |
petabyte (PB) | 1.000⁵ bytes | 1.000.000.000.000.000 bytes |
Números de latência
Referência: Latency numbers every programmer should know
Números de disponibilidade
A alta disponibilidade é a capacidade de um sistema operar continuamente por um certo período de tempo. A alta disponibilidade é medida em porcentagem: 100% de disponibilidade significa que o sistema nunca fica fora do ar. A maioria dos sistemas possuem uam taxa de disponibilidade entre 99% and 100%.
O SLA é um termo comumente usado por provedores de serviços. Provedores de cloud como AWS, Azure e GCP, garantem SLAs acima dos 99,9%.
Disponibilidade % | Inatividade por dia | Inatividade por semana | Inatividade por mês | Inatividade por ano |
---|---|---|---|---|
99% | 14.40 minutos | 1.68 horas | 7.31 horas | 3.65 dias |
99.99% | 8.64 segundos | 1.01 minutos | 4.38 minutos | 52.60 minutos |
99.999% | 864.00 milissegundos | 6.05 segundos | 26.30 segundos | 5.26 minutos |
99.9999% | 86.40 milissegundos | 604.80 milissegundos | 2.63 segundos | 31.56 segundos |