Fundamentos de escala: Latência, Throughput, SLOs
Nesta aula aprendemos a estimar, em números, quão "grande" um sistema precisa ser. Vamos praticar estimativas de capacidade (quanta carga o sistema precisa suportar), QPS (queries per second — quantas requisições chegam a cada segundo). Vamos calcular quanto armazenamento é necessário e quanta largu
System Design é como planear uma cidade inteira: ruas que carregam o tráfego, depósitos que guardam coisas, semáforos que mantêm o fluxo organizado, e equipas de manutenção que resolvem problemas — tudo para que a cidade continue funcionando bem mesmo no horário de pico, quando todo mundo está na rua ao mesmo tempo.
- Capacidade e SLOs
- A habilidade central desta aula: estimar em números o tamanho do sistema — capacidade (quanta carga ele suporta), QPS (requisições por segundo), quanto armazenamento é necessário, quanta largura de banda (bandwidth: a quantidade de dados que fluem), e SLOs (service level objectives, nossa promessa sobre disponibilidade ou velocidade). Um cálculo aproximado feito com antecedência que ajuda você a planear corretamente.
- Trade-off
- Uma escolha consciente entre duas opções, em que cada uma tem uma vantagem mas também um preço. Não existe resposta perfeita — você escolhe o que se encaixa e explica ao entrevistador o que ganha e o que abre mão. Como escolher entre uma rota rápida e cara, e uma barata e lenta.
- Métrica operacional
- Um número que você pode medir para saber se uma decisão realmente funciona quando o sistema está no ar e a atender utilizadores reais (produção). Por exemplo: latency (quanto tempo leva para uma resposta voltar), error rate (a proporção de requisições que falham), queue lag (quantas tarefas estão a esperar na fila), cache hit ratio (com que frequência encontramos a resposta pronta em um armazenamento temporário rápido), e mais.