Qualidade de Requisitos Não Funcionais — medindo NFRs localmente com Docker
Duas horas, mão na massa — do "sobe o projeto" ao "interpreta a métrica"
github.com/afonsolelis/20261sre-primeironome-ultimonome
Brazilian E-Commerce Public Dataset — dados reais de e-commerce
Meta: dashboard no ar consultando dados reais
SELECT count() FROM orders > 0Guide to the Software Engineering Body of Knowledge (IEEE)
Seis atributos de qualidade e a pergunta que cada um responde
ISO/IEC 25010 — modelo de qualidade referenciado pelo SWEBOK. Foco nos eixos que viram requisito não funcional.
⚡ Performance Efficiency
É rápido e econômico em recursos sob carga?
Ex: p95 da consulta < 800ms; CPU < 70%.
🛡️ Reliability
Continua funcionando e se recupera de falhas?
Ex: taxa de erro < 1% durante a carga.
🔒 Security
Protege dados e acessos?
Ex: sem credencial hardcoded; imagem sem CVE crítica.
🎨 Usability
É fácil de entender e usar?
Ex: dashboard navegável sem manual.
🔧 Maintainability
É fácil de mudar e testar?
Ex: análise estática sem smell crítico.
📦 Portability
Roda em outro ambiente sem dor?
Ex: sobe igual com um docker compose up.
Com Docker, sem nuvem, sem custo — o objetivo vs. o difícil
Tudo roda em Docker, do seu laptop — escolha por eixo
Pesquise e escolha pelo menos uma ferramenta por categoria. Todas têm imagem oficial em Docker.
⚡ Carga & Performance
k6 · Locust · Apache Bench (ab) · wrk · Artillery
Medem: latência, throughput, erro sob carga.
📊 Observabilidade
Prometheus + Grafana · cAdvisor · node_exporter · OpenTelemetry · Loki · Jaeger/Tempo
Mostram: métricas, logs e traces em dashboard.
🔒 Segurança
Trivy (imagem) · OWASP ZAP (web) · Bandit / Semgrep (código)
Acham: CVEs, segredos e falhas estáticas.
🔧 Recursos & Código
docker stats · cAdvisor · ruff / flake8 · radon (complexidade)
Medem: CPU/mem por container e saúde do código.
Os 3 pilares e como plugar no stack que já existe
Do eixo de qualidade ao número concreto
⚡ Performance
Latência p50 / p95 / p99 · Throughput (req/s) · Tempo da query
Ferramenta: k6 / Locust contra o :8501 e o HTTP do ClickHouse.
🛡️ Reliability
Taxa de erro (%) · Requisições falhas · Disponibilidade na carga
Ferramenta: métricas de erro do k6 + status no Grafana.
💻 Recursos
CPU (%) · Memória (MB) · I/O de disco e rede — por container
Ferramenta: cAdvisor + Prometheus + docker stats.
🔒 Segurança
Nº de CVEs por severidade · Segredos expostos · Findings de SAST
Ferramenta: Trivy na imagem + Bandit no código Python.
O ciclo: carga → métrica → dashboard → análise
De número solto a decisão de engenharia
Evidência de que você mediu — não só rodou
Do projeto no ar à qualidade medida e observável