GH GambleHub

Операциялар және басқару → Орындау саясаты және runtime-шектеулер

Орындау саясаты және runtime-шектеулер

1) Мақсаты

Runtime-саясаткерлері сервистердің мінез-құлқын болжамды, қауіпсіз және үнемді етеді: «шулы көршілерді» шектейді, ағып кетуді және қызып кетуді болдырмайды, жүктеме артқан кезде комплаенс пен SLO ұстауды қамтамасыз етеді.

Түйінді мақсаттар: оқшаулау, ресурстарды әділ бөлу, бақыланатын тозу, жаңғыртылу, аудит.

2) Қамту саласы

Есептеу және жады: CPU, RAM, GC-үзілістер, ағындардың лимиттері.
Диск/сақтау орны: IOPS/throughput, квоталар, fs-саясат (read-only).
Сеть: egress/ingress, bandwidth shaping, network policies.
Процестер/жүйелік шақырулар: seccomp, capabilities, ulimit.
Оркестрлеу: Kubernetes QoS, requests/limits, басымдықтар, taints/affinity.
API/шлюздер: rate-limits, квоталар, таймауттар/ретрациялар, circuit-breakers.
Деректер/ETL/ағындар: batch/stream concurrency, consumer lag budgets.
Қауіпсіздік: AppArmor/SELinux, rootless, құпиялар/кофигтер.
Policy-as-Code: OPA/Gatekeeper, Kyverno, Conftest.

3) Базалық қағидаттар

Әдепкі Fail-safe: құлап қалудан артық сұрауларды тастаған дұрыс.
Budget-driven: таймауттар/ретрайлер сұрау уақытының бюджетіне және SLO қателерінің бюджетіне жазылады.
Small blast radius: namespace/пул/торап/шард бойынша оқшаулау.
Declarative & auditable: барлық шектеулер - кодта/репозиторийде + өзгерістер журналында.
Multi-tenant fairness: ешқандай жалға алушы/команда бүкіл кластерді «сорып» алмайды.

4) Есептеу және жады

4. 1 Kubernetes и cgroup v2

requests/limits: requests CPU/жад үлесіне кепілдік береді; limits throttling/OOM-killer қамтиды.
QoS сыныптар: Guaranteed/Burstable/BestEffort - Guaranteed/Burstable сыни ворклоадтар ұстайды.
CPU: `cpu. shares`, `cpu. max '(throttle), CPuset пиннингке арналған.
Жады: 'memory. max`, `memory. swap. max '(әдетте swap off), басымдық үшін oom_score_adj.

4. 2 Үлгілер

Тораптағы Headroom 20-30%, қайталауға арналған anti-affinity.
GC-лимиттер: JVM '-Xmx' <k8s memory limit; Go: `GOMEMLIMIT`; Node: `--max-old-space-size`.
ulimit: 'nofile', 'nproc', 'fsize' - сервис профилі бойынша.

5) Диск және сақтау орны

IOPS/Throughput ПВХ/кластер-storage квотасы; журналдарды/деректерді бөлу.
Уақытша файлдар үшін Read-only root FS, tmpfs, өлшем шегі '/tmp '.
FS-watchdog: томдарды толтыруға және inode өсуіне арналған алерталар.

6) Желі және трафик

NetworkPolicy (ingress/egress) — zero-trust east-west.
Bandwidth limits: tc/egress-policies, QoS/DSCP сындарлы ағындар үшін.
Egress контроллері: рұқсат етілген домендер/кіші желілер тізімі, audit DNS.
mTLS + TLS policies: шифрлау және хаттаманың мәжбүрлі нұсқасы.

7) Процесс қауіпсіздігі

Seccomp (allowlist syscalls), AppArmor/SELinux профильдері.
Drop Linux capabilities (минимумды қалдыру), 'runAsNonRoot', 'readOnlyRootFilesystem'.
Rootless контейнерлер, қол қойылған суреттер мен attestations.
Secrets-only via Vault/KMS, tmp-tokens қысқа TTL.

8) Уақыт саясаты: таймауттар, ретрациялар, бюджеттер

Timeout budget: SLA энд-ту-энд ≤ барлық hop 'лардың сомасы.
backoff + джиттермен ретрайлер, қателер класы бойынша максималды әрекеттер.
Circuit-breaker: ашық кезде error %/timeout p95 шегінен жоғары → жылдам істен шығулар.
Bulkheads: сыни жолдар үшін жеке connection-pool 's/кезектер.
Backpressure: тұтынушылардың lag бойынша продюсерлерді шектеу.

9) Rate-limits, квоталар және басымдық

Алгоритмдер: token/leaky bucket, GCRA; жергілікті + таратылған (Redis/Envoy/global).
Түйіршіктілігі: API/пайдаланушы/ұйым/өңір/эндпойнт кілті.
Басымдық градиенттері: «төлем/авторизация» ағындары - gold, талдау - bronze.
Тәулігіне/айына квоталар, «burst» және «sustained» лимиттері; 429 + Retry-After.

10) Оркестрлеу және жоспарлаушы

PriorityClass: P1-подтарды ығыстырудан қорғау.
PodDisruptionBudget: жаңарту кезінде шегініс шегі.
Taints/Tolerations, (anti) Affinity - workloads оқшаулау.
RuntimeClass: құмсалғыштар үшін gVisor/Firecracker/Wasm.
Horizontal/Vertical autoscaling гвард-табалдырықтармен және max-replicas.

11) Деректер/ETL/ағындардың саясаты

Concurrency per job/topic, max batch size, checkpoint интервал.
Consumer lag budgets: warning/critical; DLQ және ретрациялардың лимиті.
Витриналар үшін Freshness SLA, прод-трафиктің шыңы кезінде ауыр кендірлердің үзілісі.

12) Policy-as-Code және admission-бақылау

OPA Gatekeeper/Kyverno: requests/limits жоқ, 'readOnlyRootFilesystem', 'hostNetwork', ': latest'.
Conftest pre-commit тексеру үшін Helm/K8s/Terraform.
Mutation policies: sidecar (mTLS), аннотация, seccompProfile.

Мысал Kyverno - лимитсіз контейнерге тыйым салу:
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) мысалы - 800 мс ≤ таймауттар:
rego package policy. timeout

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

13) Бақылау және сақтау өлшемдері

Compliance%: түзетілген requests/limits/labels тобының үлесі.
Security Posture: seccomp/AppArmor/rootless.
Rate-limit hit%, shed%, throttle%, 429 share.
p95 таймауттар/ретрайлер, circuit-open duration.
OOM kills/evictions, CPU throttle seconds.
Network egress denied events, egress allowlist misses.

14) Чек парақтары

Сервисті орналастыру алдында

  • Жазылған requests/limits; QoS ≥ Burstable
  • Таймауттар мен ретрайлер end-to-end SLA-ға сәйкес келеді
  • Circuit-breaker/bulkhead сыртқы тәуелділіктер үшін қосылған
  • NetworkPolicy (ingress/egress) и mTLS
  • Seccomp/AppArmor, drop capabilities, non-root, read-only FS
  • Rate-limits және API-шлюз/сервистегі квоталар
  • PDB/priority/affinity берілген; autoscaling бапталған

Ай сайын

  • policy-ерекшеліктер аудиті (TTL)
  • Уақыт/қателер бюджеттерін қайта қарау
  • Деградация сынағы (fire-drill): shed/backpressure/circuit-breaker
  • Құпияларды/сертификаттарды ауыстыру

15) Қарсы үлгілер

requests/limits: «бурст» көршілерді жейді → каскадтық ақаулар.
Джиттерсіз жаһандық ретрациялар: тәуелділіктегі дауыл.
Шексіз таймауттар: «ілініп тұрған» коннектілер және пулдардың таусылуы.
': latest' және mutable тегтері: болжанбайтын runtime-құрастырулар.
Ашық egress: ағып кету және басқарылмайтын тәуелділік.
PDB жоқ: жаңартулар бүкіл пулды «қағып тастайды».

16) Шағын ойнатқыштар

А. payments-service-те CPU throttle%

1. limits/requests бағдарламасын тексеру және ыстық жолдарды профильдеу.
2. Уақытша requests көтеріңіз, автоскейлді p95 latency бойынша қосыңыз.
3. Кэш-фоллбэк лимиттерін/курстарын қосу, сұраулардың күрделілігін төмендету.
4. Пост-фикс: денормализация/индекстер, қайта қарау limits.

B. Өсу 429 және API-ге шағымдар

1. Кілттер/ұйымдар бойынша есеп → квотаға кім кірді.
2. hierarchical quotas (per-org → per-key) енгізу, gold үшін burst көтеру.
3. backoff бойынша коммуникация және guidance; adaptive limiting қосылсын.

В. Жаппай OOM kills

1. concurrency төмендету, heap-лимитін және бейіндеуді қосу.
2. Xmx/GOMEMLIMIT-ті нақты peak-usage деп қайта санау.
3. GC/пулды қайта оқыту, swap-off және soft-limit алаңдарын қосу.

17) Конфигурация мысалдары

Қауіпсіз параметрлері бар K8s контейнер (фрагмент):
yaml securityContext:
runAsNonRoot: true allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities:
drop: ["ALL"]
Envoy rate-limit (фрагмент тұжырымдамалық):
yaml rate_limit_policy:
actions:
- request_headers:
header_name: "x-api-key"
descriptor_key: "api_key"
Nginx ingress - таймауттар мен шектеулер:
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) Өзгерістер мен инциденттерді басқарумен интеграциялау

Саясаттың кез келген әлсіреуі - RFC/CAB арқылы және TTL-мен уақытша алып тастау.
Саясаттың бұзылуы бойынша инциденттер → пост-мортем және ережелерді жаңарту.
Сәйкестік дашбордтары (compliance) релиздік күнтізбеге қосылған.

19) Қорытынды

Орындау саясаты - платформаға арналған «сүйеніш»: олар тез жүруге кедергі келтірмейді, құлап кетуге жол бермейді. Декларативтік шектеулер, автоматты мәжбүрлеу, жақсы өлшемдер және ерекшеліктер тәртібі ретсіз пайдалануды басқарылатын және болжамды жүйеге айналдырады - бақыланатын құнымен және тұрақты SLO-мен.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.