OpenCyber Academy
Engenharia · Capítulo 36 · Português
Código do curso: OCA-133Capítulo 36: OCA-133-C036

Capítulo 36 — Inteligência de ameaças e OSINT: desempenho e escala

Ensino gratuito e aberto para quem deseja proteger pessoas e tecnologias. Não é preciso criar uma conta para estudar ou consultar as respostas.

Mapa da aula

Aula 36 publicada. Mapa, exemplo, EX106.

flowchart TD
  N0["36.1 Filas instáveis"]
  N1["Laboratório 8 — crescimento da fila"]
  N2["36.2 Lei de Little"]
  N3["36.3 Opções"]
  N4["36.4 Protegendo os parceiros"]
  N5["36.5 Testando em escala"]
  N6["Nota de prática — filas com prioridade"]
  N7["Revisões de capacidade"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7
  N7 --> EX["Exemplo resolvido"]
  EX --> Q["Exercício EX106"]

Desenho lógico

flowchart LR
  N0["36.1 Filas instáveis"]
  N1["Laboratório 8 — crescimento da fila"]
  N2["36.2 Lei de Little"]
  N3["36.3 Opções"]
  N4["36.4 Protegendo os parceiros"]
  N5["36.5 Testando em escala"]
  N6["Nota de prática — filas com prioridade"]
  N7["Revisões de capacidade"]
  N0 --> N1 --> N2 --> N3 --> N4 --> N5 --> N6 --> N7 --> Q["EX106"]
[36.1 Filas instáveis]
    |
    v
[Laboratório 8 — crescimento da fila]
    |
    v
[36.2 Lei de Little]
    |
    v
[36.3 Opções]
    |
    v
[36.4 Protegendo os parceiros]
    |
    v
[36.5 Testando em escala]
    |
    v
[Nota de prática — filas com prioridade]
    |
    v
[Revisões de capacidade]
    |
    v
[Exemplo resolvido] --> [Exercício EX106]

Objetivos de aprendizagem

Você vai (1) detectar filas instáveis, em que a chegada supera o atendimento; (2) aplicar a lei de Little para estimar o tempo de espera; (3) escolher entre escalar verticalmente, escalar horizontalmente e descartar carga; (4) proteger os parceiros quando o Lantern escala.

36.1 Filas instáveis

Se 120 objetos por minuto chegam ao enriquecimento e só 100 por minuto são atendidos, o acúmulo cresce 20 a cada minuto, sem limite. Nenhuma espera resolve isso; a capacidade ou a demanda precisa mudar. O laboratório imprime exatamente esse padrão, e depois de cinco minutos o acúmulo é de cem itens e continua subindo. Kofi observa a tendência, e não o tamanho: uma fila longa que está encolhendo está se recuperando, enquanto uma curta que cresce a cada minuto é um problema. Seu alerta dispara quando o acúmulo cresce por dez minutos seguidos, antes que fique grande o bastante para os analistas notarem.

Laboratório 8 — crescimento da fila

"""Lab 8 (ch 36): Little's law and backlog growth for a synthetic enrichment queue."""
arrival_per_min, service_per_min = 120, 100
backlog = 0
for minute in range(1, 6):
    backlog += arrival_per_min - service_per_min
    print(f"minute {minute}: backlog={backlog}")
L, lam = 400, 100 / 60  # items in system, throughput items/s after scaling fixes
print(f"Little's law wait W=L/lambda={L/lam:.0f} s at L={L}, lambda={lam:.2f}/s")

Execute com python3 lab_queue.py. Saída verificada:

minute 1: backlog=20
minute 2: backlog=40
minute 3: backlog=60
minute 4: backlog=80
minute 5: backlog=100
Little's law wait W=L/lambda=240 s at L=400, lambda=1.67/s

36.2 Lei de Little

Em um sistema estável, o número médio no sistema L é igual à vazão λ vezes o tempo médio no sistema W. Com 400 itens na fila e 1,67 item atendido por segundo, a espera média é de cerca de 240 segundos. A lei não exige suposições sobre o padrão das chegadas, o que a torna uma verificação robusta nos painéis. Kofi a usa para conferir se os números do painel concordam entre si. Se o tamanho da fila, a vazão e a espera relatada não se encaixam na lei, uma das medições está errada.

36.3 Opções

Escalar verticalmente (hardware mais rápido), escalar horizontalmente (mais trabalhadores) ou descartar carga (pular enriquecimentos de pouco valor, amostrar indicadores de baixa confiança). Descartar pelo valor costuma ser o mais barato: enriqueça primeiro os indicadores de alta confiança. Kofi compara o custo de cada opção com o ganho. Uma máquina mais rápida só ajuda se o trabalho for limitado pelo processamento. Mais trabalhadores só ajudam se o trabalho puder ser dividido e o provedor permitir mais consultas. Descartar trabalho de pouco valor exige uma regra clara sobre o que conta como pouco valor, acordada com os analistas, e um registro do que foi pulado, para que possa ser feito depois se necessário.

36.4 Protegendo os parceiros

Escalar os coletores horizontalmente não pode multiplicar a carga sobre os servidores TAXII dos parceiros. O Lantern mantém uma única identidade de consulta por parceiro e compartilha os resultados internamente, respeitando os limites de taxa dos parceiros. O projeto de Kofi separa a coleta do processamento por esse motivo. Não importa quantos trabalhadores internos o Lantern execute, um único coletor por parceiro consulta na taxa acordada e coloca os objetos em uma fila interna. Os parceiros veem o mesmo tráfego, esteja a BEN tranquila ou no meio de uma campanha. Se um parceiro aumenta seus limites, a configuração muda depois do acordo, e não antes.

36.5 Testando em escala

Os testes de carga usam pacotes sintéticos gerados em tamanhos realistas, executados apenas contra o substituto TAXII e os componentes internos. O gerador de Kofi cria pacotes com a mesma mistura de tipos e tamanhos de objeto que os parceiros enviam, incluindo uma parcela de objetos malformados, para que o teste exercite também o caminho de rejeição. Executar contra servidores reais dos parceiros testaria a capacidade deles, e não a da BEN, e violaria os acordos. Os resultados registram o hardware, a versão do código e os volumes gerados, para que um teste posterior possa ser comparado de forma justa. Cada execução termina conferindo se as filas se esvaziaram por completo.

Nota de prática — filas com prioridade

Duas filas — alta e baixa confiança — com trabalhadores atendendo primeiro a alta mantêm rápido o enriquecimento importante durante os picos, enquanto o trabalho de pouco valor espera ou é pulado.

Revisões de capacidade

A cada trimestre, Kofi compara as taxas de chegada de pico com a capacidade de atendimento e registra a folga em percentual, para que o crescimento seja planejado antes que as filas fiquem instáveis.

Exemplo resolvido

Durante uma grande campanha, as chegadas saltam para 120 por minuto. Kofi acrescenta dois trabalhadores (atendimento de 150 por minuto) e passa os indicadores de baixa confiança para uma fila adiada. O acúmulo se esvazia em menos de dez minutos, e a consulta aos parceiros continua inalterada.

Caso sintético. As taxas são inventadas.

Erros e limites

A lei de Little descreve médias; a latência de cauda exige percentis. Escalar o consumidor de um provedor externo com limite de taxa só produz mais respostas 429.

Exercícios

Síntese

Identifique a instabilidade, use a lei de Little para as esperas, escale ou descarte pelo valor e mantenha constante a carga sobre os parceiros.

Continue estudando — capítulo 36 de 50

← Capítulo 35 (rascunho) · Índice de capítulos do curso · Capítulo 37 (rascunho) →

Respostas comentadas

EX106. Um acúmulo de 100 depois de cinco minutos; ele cresce 20 a cada minuto porque chegam 120 e só 100 são atendidos.

EX107. W = L / λ = 300 / 2 = 150 segundos.

EX108. Cada nova identidade consultaria o parceiro separadamente, multiplicando sua carga e possivelmente violando os limites de taxa acordados.