GH GambleHub

Əməliyyatlar və İdarəetmə → İcra Siyasəti və runtime məhdudiyyətləri

İcra siyasəti və runtime-məhdudiyyətlər

1) Təyinat

Runtime siyasətçiləri xidmətlərin davranışını proqnozlaşdırıla bilən, təhlükəsiz və qənaətcil edir: «səs-küylü qonşuları» məhdudlaşdırır, sızmaların və həddindən artıq istiləşmənin qarşısını alır, yükün artması zamanı uyğunluq və SLO-nun saxlanmasını təmin edir.

Əsas məqsədlər: təcrid, resursların ədalətli paylanması, nəzarət edilən deqradasiya, təkrarlanabilirlik, audit.

2) əhatə dairəsi

Hesablama və yaddaş: CPU, RAM, GC fasilələri, axın limitləri.
Disk/saxlama: IOPS/throughput, kvotalar, fs-siyasətlər (read-only).
Сеть: egress/ingress, bandwidth shaping, network policies.
Proseslər/sistem çağırışları: seccomp, capabilities, ulimit.
Orkestr: Kubernetes QoS, requests/limits, prioritetlər, taints/affinity.
API/şlüzlər: rate-limits, kvotalar, taymautlar/retrailer, circuit-breakers.
Verilənlər/ETL/axınlar: batch/stream concurrency, consumer lag budgets.
Təhlükəsizlik: AppArmor/SELinux, rootless, sirləri/coofies.
Policy-as-Code: OPA/Gatekeeper, Kyverno, Conftest.

3) Əsas prinsiplər

Defaul-safe: yıxılmaqdan daha çox sorğu atmaq daha yaxşıdır.
Budget-driven: vaxtlar/retrasiyalar tələb vaxtının büdcəsinə və SLO səhvlərinin büdcəsinə uyğundur.
Kiçik blast radius: namespace/hovuz/düyün/şard ilə izolyasiya.
Declarative & auditable: bütün məhdudiyyətlər - kod/anbar + dəyişiklik jurnalı.
Multi-tenant fairness: heç bir kirayəçi/komanda bütün klasteri «sora» bilməz.

4) Hesablama və yaddaş

4. 1 Kubernetes и cgroup v2

requests/limits: requests CPU/yaddaş payını təmin edir; limits throttling/OOM-killer daxildir.
QoS siniflər: Guaranteed/Burstable/BestEffort - kritik workloads Guaranteed/Burstable saxlamaq.
CPU: `cpu. shares`, `cpu. max '(throttle), CPuset pinning üçün.
Yaddaş: 'memory. max`, `memory. swap. max '(adətən swap off), prioritet üçün oom_score_adj.

4. 2 Nümunələr

Headroom 20-30% düyün, anti-affinity dublyaj üçün.
GC limitləri: JVM '-Xmx' <k8s memory limit; Go: `GOMEMLIMIT`; Node: `--max-old-space-size`.
ulimit: 'nofile', 'nproc', 'fsize' - xidmət profilinə görə.

5) Disk və saxlama

IOPS/PVC/klaster-storage üçün Throughput kvotaları; jurnalların/məlumatların bölünməsi.
Read-only root FS, müvəqqəti fayllar üçün tmpfs, ölçü məhdudiyyəti '/tmp '.
FS-watchdog: cildlərin doldurulması və inode böyüməsi üçün risklər.

6) Şəbəkə və trafik

NetworkPolicy (ingress/egress) — zero-trust east-west.
Bandwidth limits: tc/egress-policies, kritik axınlar üçün QoS/DSCP.
Egress Controller: Icazə verilən domenlərin/alt şəbəkələrin siyahısı, DNS auditi.
mTLS + TLS policies: şifrələmə və protokolun məcburi versiyası.

7) Proses təhlükəsizliyi

Seccomp (allowlist syscalls), AppArmor/SELinux profilləri.
Drop Linux capabilities (minimum tərk), 'runAsNonRoot', 'readOnlyRootFilesystem'.
Rootless konteynerlər, imzalanmış şəkillər və attestations.
Secrets-only via Vault/KMS, tmp-tokens qısa TTL ilə.

8) Zaman siyasətçiləri: taymautlar, retrajlar, büdcələr

Timeout budget: SLA və tu-end ≤ bütün hop 'ların cəmi.
backoff + jitter ilə retrailer, səhv sinifinə maksimum cəhd.
Circuit-breaker: error %/timeout p95 həddindən yuxarı açıq → sürətli uğursuzluqlar.
Bulkheads: kritik yollar üçün ayrı-ayrı connection-pool 's/növbələr.
Backpressure: istehlakçıların lag istehsalçılarının məhdudlaşdırılması.

9) Rate-limits, kvotalar və prioritet

Alqoritmlər: token/leaky bucket, GCRA; yerli + paylanmış (Redis/Envoy/global).
Qranulyarlıq: API açarı/istifadəçi/təşkilat/region/end.
Prioritet qradiyentlər: «ödəniş/avtorizasiya» axınları - gold, analitika - bronze.
Kvotalar/ay, «burst» və «sustained» limitləri; 429 + Retry-After.

10) Orkestr və planlaşdırıcı

PriorityClass: P1-podların yerdəyişmədən qorunması.
PodDisruptionBudget: yeniləmə zamanı endirim sərhədləri.
Taints/Tolerations, (anti) Affinity - izolyasiya workloads.
RuntimeClass: qum qutuları üçün gVisor/Firecracker/Wasm.
Horizontal/Vertical autoscaling qvard-eşik və max-replicas ilə.

11) Məlumat siyasəti/ETL/axın

Concurrency per job/topic, max batch size, checkpoint interval.
Consumer lag budgets: warning/critical; DLQ və retraj limiti.
vitrinlər üçün Freshness SLA, promosyon trafikin zirvələrində ağır cob fasilə.

12) Policy-as-Code və admission-control

OPA Gatekeeper/Kyverno: no requests/limits, no 'readOnlyRootFilesystem', ilə 'hostNetwork', ': latest'.
Conftest pre-commit yoxlamalar üçün Helm/K8s/Terraform.
Mutation policies: otomatik əlavə sidecar (mTLS), annotasiyalar, seccompProfile.

Kyverno nümunəsi - limitsiz konteyner qadağası:
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: "?"
OPA (Rego) nümunəsi - 800 ms ≤ taymautlar:
rego package policy. timeout

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

13) Müşahidə və müşahidə metrikası

Compliance%: düzgün requests/limits/labels ilə pod payı.
Security Posture: seccomp/AppArmor/rootless ilə pod payı.
Rate-limit hit%, shed%, throttle%, 429 share.
p95 vaxt/retraut, circuit-open duration.
OOM kills/evictions, CPU throttle seconds.
Network egress denied events, egress allowlist misses.

14) Çek vərəqləri

Xidmətin hesablanmasından əvvəl

  • Qeydiyyat requests/limits; QoS ≥ Burstable
  • Vaxtlar və retrasiyalar end-to-end SLA-ya uyğundur
  • Circuit-breaker/bulkhead xarici asılılıqlar üçün daxil
  • NetworkPolicy (ingress/egress) и mTLS
  • Seccomp/AppArmor, drop capabilities, non-root, read-only FS
  • API şlüz/xidmətdə Rate-limits və kvotalar
  • PDB/priority/affinity təyin; autoscaling xüsusi

Aylıq

  • İstisnaların siyasətinin auditi (TTL)
  • Vaxt/səhv büdcələrinə yenidən baxılması
  • Deqradasiya testi (fire-drill): shed/backpressure/circuit-breaker
  • Sirlərin/sertifikatların rotasiyası

15) Anti-nümunələr

Heç bir requests/limits: «burst» qonşuları yeyir → kaskad nasazlıqları.
Jittersiz qlobal retrajlar: asılılıqda fırtına.
Sonsuz taymautlar: «asılmış» konnektlər və hovuzların tükənməsi.
': latest' və mutable tags: gözlənilməz runtime montajları.
Açıq egress: sızma və idarə olunmayan asılılıqlar.
PDB olmaması: yeniləmələr bütün hovuzu «döyür».

16) Mini playbuklar

A. Payments-service-də CPU throttle% sıçrayışı

1. limits/requests yoxlamaq və isti yolları profil.
2. Müvəqqəti requests qaldırmaq, p95 latency ilə avtoskeyl yandırmaq.
3. Cash-follback limitləri/kursları daxil edin, sorğuların mürəkkəbliyini azaltın.
4. Post-fiks: denormallaşma/indekslər, limits yenidən baxılması.

B. Artım 429 və API şikayətləri

1. Açarlar/təşkilatlar haqqında hesabat → kim kvotaya söykəndi.
2. hierarchical quotas daxil edin (per-org → per-key), qızıl üçün burst qaldırmaq.
3. Rabitə və guidance backoff; adaptive limiting.

V. Kütləvi OOM kills

1. concurrency azaldılması, heap-limit və profil daxil.
2. real peak-usage altında Xmx/GOMEMLIMIT yenidən.
3. GC/hovuzları yenidən öyrənin, swap-off və yumşaq limit riskləri əlavə edin.

17) Konfiqurasiya nümunələri

Təhlükəsiz parametrlərlə K8s konteyner (fraqment):
yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Envoy rate-limit (fraqment konseptual):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx ingress - vaxt və məhdudiyyətlər:
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) Dəyişiklik və hadisələrin idarə edilməsi ilə inteqrasiya

Hər hansı bir siyasətin zəifləməsi - RFC/CAB vasitəsilə və TTL ilə müvəqqəti istisna.
Siyasətin pozulması hadisələri → post-mortem və qaydaların yenilənməsi.
Uyğunluq daşbordları (compliance) buraxılış təqviminə qoşulur.

19) Yekun

İcra siyasətləri platforma üçün «məhəccərlərdir»: onlar sürətlə sürməyə mane olmur, düşməyə imkan vermirlər. Deklarativ məhdudiyyətlər, avtomatik məcburiyyət, yaxşı metriklər və istisnalar intizamı xaotik istismarı idarə olunan və proqnozlaşdırıla bilən bir sistemə çevirir - nəzarət olunan dəyər və sabit SLO.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.