GH GambleHub

Operazioni e Gestione → Criteri di esecuzione e vincoli runtime

Criteri di esecuzione e vincoli runtime

1) Destinazione

Le politiche runtime rendono prevedibile, sicuro ed economico il comportamento dei servizi, limitando i «vicini rumorosi», impedendo fughe e surriscaldamenti, garantendo la compliance e il mantenimento di SLO durante l'aumento del carico di lavoro.

Obiettivi chiave: isolamento, equa distribuzione delle risorse, degrado controllato, riproduzione, verifica.

2) Ambito di copertura

Calcolo e memoria: CPU, RAM, pause GC, limiti di flusso.
Unità/storage: iOPS/throughput, quote, fs-regole (read-only).
Сеть: egress/ingress, bandwidth shaping, network policies.
Processi/chiamate di sistema: seccomp, capabilities, ulimit.
Orchestrazione: Kubernets, richiesti/limits, priorità, taints/affinity.
API/gateway: rate-limits, quote, timeout/retrai, circuito-breakers.
Dati/ETL/striam: batch/stream concertency, consumer lag budget.
Sicurezza: AppArmor/SELinux, rootless, segreti/cofighi.
Policy-as-Code: OPA/Gatekeeper, Kyverno, Conftest.

3) Principi di base

Fail-safe predefinito: è meglio ignorare le richieste in eccesso che cadere.
Budget-driven - Timeout/retrai si inseriscono nel bilancio del tempo di query e nel bilancio degli errori SLO.
Small blast radius - Isolamento per namespace/pool/nodo/shard.
Declarative & auditable: tutti i vincoli sono nel codice/repository + registro delle modifiche.
Multi-tenant fairness: nessun inquilino/comando può «risucchiare» l'intero cluster.

4) Calcoli e memoria

4. 1 Kubernetes и cgroup v2

richiesti/limits: richiesti garantiscono una quota di CPU/memoria; limits includono throttling/OOM-killer.
classi QoS: Guaranteed/Burstable/ BestEffort - worcload critici tenuti in Guaranteed/Burstable.
CPU: `cpu. shares`, `cpu. max '(throttle), CPuset per il pinning.
Memoria, memory. max`, `memory. swap. max '(solitamente swap off), o _ score _ adj per la priorità.

4. 2 Pattern

Headroom 20-30% sul nodo, anti-affinity per duplicazione.
Limiti GC: JVM '-Xmx' <k8s memory limit; Go: `GOMEMLIMIT`; Node: `--max-old-space-size`.
ulimit: «nofile», «nproc», «fsize» è il profilo del servizio.

5) Unità e storage

Quote IOPS/Throughput per PVC/cluster-storage Separazione dei registri/dati.
Read-only root FS, tmpfs per i file temporanei, limite di dimensione '/tmp '.
FS-watchdog: alert per riempire volumi e crescita inode.

6) Rete e traffico

NetworkPolicy (ingress/egress) — zero-trust east-west.
Bandwidth limits: tc/egress-policies, QoS/DSCP per flussi critici.
Egress Controller: elenco dei domini/subnet consentiti, auditDNS.
mTLS + TLS policies: crittografia e versione obbligatoria del protocollo.

7) Sicurezza del processo

Seccomp (allowlist syscalls), AppArmor/SELinux i profili.
Drop Linux capabilities, runAsNonRoot, readOnlyRootFilesystem.
contenitori Rootless, immagini firmate e attrazioni.
Secret-only via Vault/KMS, tmp-tokens con TTL breve.

8) Regole del tempo: timeout, retrai, budget

Timeout budget: la somma di tutti gli HOP e-to-end.
Retrai con backoff + jitter, massimo tentativi per classe di errori.
Circuito-breaker: aperto con un errore %/timeout p95 sopra la soglia di errore rapido.
Bullkheads: connection-pool's/code per percorsi critici.
Backpressure: limitazione dei produttori per lag consumer.

9) Rate-limits, quote e priorità

Algoritmi: token/leaky bucket, GCRA; locali + distribuiti (Redis/Avvoy/global).
Granularità: chiave API/utente/organizzazione/regione/endpoint.
Le sfumature di priorità sono i flussi di pagamento/autosufficienza - gold, l'analista - bronze.
Quote al giorno/mese, limiti «burst» e «sustained»; 429 + Retry-After.

10) Orchestrazione e pianificazione

PriorityClass - Protegge i P1-pod dall'espulsione.
PodDisruptionBudget - Limite di downtime per gli aggiornamenti.
Tainti/Tolerations, (anti) Affinity - Isolamento workloads.
, per i ini di sabbia.
Orizzontal/Vertical autoscaling con soglie di guardia e max-replica.

11) Criteri dati/ETL/striam

Concurrency per job/topic, max batch size, checkpoint intervallo.
Consumer lag budgets: warning/critical; DLQ e limite di retrai.
Freshness SLA per le vetrine, la pausa dei giubbotti pesanti ai picchi di traffico prod.

12) Policy-as-Code e controllo admissi

OPA Gatekeeper/Kyverno - Disattiva i sottopassaggi senza richiesti/limits, senza "readOnlyRootFilesystem", con "hostNetwork", 'latest ".
Conftest per i controlli pre-commit Helm/K8s/Terraform.
Mutation policies: uscita automatica sidecar (mTLS), annotazioni, seccompProfile.

Esempio di Kyverno - Disattiva contenitore senza limiti:
yaml apiVersion: kyverno. io/v1 kind: ClusterPolicy metadata:
name: require-resources spec:
validationFailureAction: Enforce rules:
- name: check-limits match:
resources:
kinds: ["Pod"]
validate:
message: "We need resources. requests/limits for CPU and memory"
pattern:
spec:
containers:
- resources:
requests:
cpu: "?"
memory: "?"
limits:
cpu: "?"
memory: "?"
Esempio di OPA (Rego) - timeout da 800 ms:
rego package policy. timeout

deny[msg] {
input. kind == "ServiceConfig"
input. timeout_ms> 800 msg: = sprintf ("timeout% dms exceeds budget 800ms," [input. timeout_ms])
}

13) Osservabilità e metriche di conformità

Compliance% - Percentuale di sotto con richiesti corretti/limits/labels.
Sicurezza Posture - Quota sottovuoto con seccomp/AppArmor/rootless.
Rate-limit hit%, shed%, throttle%, 429 share.
p95 timeout/retrai, circuito-open duration.
OOM kills/evictions, CPU throttle seconds.
Network egress denied events, egress allowlist misses.

14) Assegno fogli

Prima di inviare il servizio

  • Sono stati prescritti i richiesti/limits; QoS ≥ Burstable
  • Timeout e retrai si adattano a end-to-end SLA
  • Circuito-breaker/bullkhead abilitati per dipendenze esterne
  • NetworkPolicy (ingress/egress) и mTLS
  • Seccomp/AppArmor, drop capabilities, non-root, read-only FS
  • Rate-limits e quote sul gateway API/servizio
  • PDB/priority/affinity impostati; autoscaling configurato

Mensilmente

  • Controllo delle eccezioni policy (TTL)
  • Revisione dei budget temporali/errori
  • Test di degrado (fire-drill): shed/backpressure/circuito-breaker
  • Rotazione di segreti/certificati

15) Anti-pattern

Senza richiesti/limits, il «burst» mangia i vicini per i guasti a cascata.
Retrai globali senza jitter, tempesta alle dipendenze.
I timeout infiniti, i connettori appesi e l'esaurimento dei pool.
'- latest'e i tag mutabili sono assiemi runtime imprevedibili.
Eguress aperto: fughe e dipendenze non controllate.
Nessun PDB: gli aggiornamenti eliminano l'intero pool.

16) Mini playbook

A picco CPU throttle% al payments-service

1. Controlla limits/sollests e profila i percorsi hot.
2. Alzare temporaneamente i richiesti, attivare lo scale automatico su p95 latency.
3. Abilita la cache follback dei limiti/corsi e riduce la complessità delle richieste.
4. Post-fix: denormalizzazione/indici, revisione limits.

B. Altezza 429 e reclami per API

1. Il resoconto delle chiavi/organizzazioni dice chi è entrato in quota.
2. Immettere le quote hierarchiche (per- -key), sollevare il burst per il gold.
3. Comunicazione e guidance per backoff; abilitare l'adattativo limiting.

B. OOM kills di massa

1. Riduzione di concurrency, abilitare il limite heap e la profilassi.
2. Ricalca Xmx/GOMEMLIMIT in peak-usage reali.
3. Ridisegnare GC/pool, aggiungere swap-off e soft-limit alert.

17) Esempi di configurazione

Contenitore K8s con impostazioni sicure (sezione):
yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Avvoy rate-limit (porzione concettuale):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx ingress - timeout e vincoli:
yaml nginx. ingress. kubernetes. io/proxy-connect-timeout: "2s"
nginx. ingress. kubernetes. io/proxy-read-timeout: "1s"
nginx. ingress. kubernetes. io/limit-rps: "50"

18) Integrazione con la gestione dei cambiamenti e degli incidenti

Qualsiasi indebolimento della politica è tramite RFC/CAV e l'esclusione temporanea da TTL.
Incidenti per violazioni di policy, post mortem e aggiornamento delle regole.
I dashboard di corrispondenza (compliance) sono collegati al calendario di lancio.

19) Totale

La politica di esecuzione è una ringhiera per la piattaforma, non impediscono di andare veloce, non fanno cadere. I vincoli dichiarativi, la coercizione automatica, le buone metriche e la disciplina delle eccezioni trasformano un funzionamento caotico in un sistema gestibile e prevedibile, con un costo controllato e SLO sostenibile.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.