Logo GH

خود درمانی و خود درمانی

(بخش: تکنولوژی و زیرساخت)

خلاصه ای کوتاه

بهبود خودکار «جادوی Kubernetes» نیست، بلکه مجموعه ای از رشته ها است: نمونه ها و محدودیت های صحیح، کنترل های کنترل شده، جداسازی موارد معیوب، اتوماسیون SLO و اقدامات runabook توسط دکمه/ربات. هدف کاهش MTTR بدون تراکم برف و نگه داشتن p95/p99، پرداخت و TTW حتی در اوج خود است.

1) اصول خود درمانی

1. Fail-fast & isolate: به سرعت شناسایی و جداسازی غلاف/موارد بد.
2. عقب نشینی + jitter: هر retray/scale out - با تاخیر نمایشی و لرزش.
3. SLO-aware: اتوماسیون با بودجه خطای سریع رایت فعال/افزایش یافته است.
4. Idempotency: معاملات تکراری امن هستند (به خصوص پرداخت/صف).
5. دفاع در عمق: نمونه ها، سهمیه ها، محدودیت ها، قطع کننده مدار، تخلیه بیرونی، محدودیت سرعت، حالت تخریب.

2) اساس در کوبرنتیز

2. 1 نمونه ها: زندگی/آمادگی/راه اندازی

startupProbe محافظت در برابر شروع مجدد زودرس از خدمات سنگین.
readinessProbe آمادگی برای ترافیک (انبارهای گرم/اتصالات) را تعیین می کند.
livenessProbe فرآیندهای آویزان را دوباره راه اندازی می کند.

yaml readinessProbe:
httpGet: { path: /health/ready, port: 8080 }
periodSeconds: 5 timeoutSeconds: 1 failureThreshold: 3

livenessProbe:
httpGet: { path: /health/live, port: 8080 }
initialDelaySeconds: 20 periodSeconds: 10 failureThreshold: 3

startupProbe:
httpGet: { path: /health/startup, port: 8080 }
periodSeconds: 5 failureThreshold: 30

2. 2 محدودیت ها، PDB و اولویت ها

درخواست/محدودیت حذف «همسایه پر سر و صدا».
PodDisruptionBudget (PDB) مانع از سقوط همه غلاف ها در همان زمان می شود.

yaml apiVersion: policy/v1 kind: PodDisruptionBudget spec:
minAvailable: 2 selector: { matchLabels: { app: payments-api } }

PriorityClass برای مسیرهای بحرانی (پرداخت، دروازه).

2. 3 راه اندازی مجدد و استقرار استراتژی

'maxUnavailable: 0' برای خدمات بحرانی ؛ rollingUpdate در افزایش های کوچک.
PodAntiAffinity غلاف ها را به گره ها/مناطق اختصاص می دهد.

3) مقیاس خودکار و مقیاس رویداد

HPA (CPU/معیارهای کاربر)

yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
minReplicas: 3 maxReplicas: 30 metrics:
- type: Resource resource: { name: cpu, target: { type: Utilization, averageUtilization: 70 } }
- type: Pods pods:
metric:
name: http_requests_per_second target:
type: AverageValue averageValue: "50"
💡 > VPA

استفاده برای کارگران پس زمینه/وظایف دسته ای ؛ در prod-API - با دقت (راه اندازی مجدد).

KEDA (صف/رویدادهای خارجی)

محرک هایی برای تاخیر کافکا، درخواست های RabbitMQ، Redis، Prometheus - هنگامی که کار جمع می شود، مصرف کنندگان را افزایش می دهیم.

4) دفاع از شبکه: قطع کننده مدار و قطع «بد»

نماینده/تشخیص بیرونی Istio (идея)

yaml outlierDetection:
consecutive5xx: 5 interval: 5s baseEjectionTime: 30s maxEjectionPercent: 50

Circuit Breaker درخواست ها/اتصالات همزمان را محدود می کند تا وابستگی را رها نکند.

محدود کردن نرخ

محدود کردن تماس های ورودی/مسیرهای PSP/از ارائه دهندگان بازی به طوری که موج retraces تصادف را افزایش نمی دهد.

5) Retrai، timeouts و عقب نشینی با لرزش

قانون: اولین وقفه، پس از آن عقب نشینی، همیشه با jitter و تلاش محدود است.

شبه کد:
python def backoff(attempt, base=0. 1, cap=2. 0):
import random, math sleep = min(cap, base (2 attempt))
jitter = random. uniform(0, sleep 0. 4)
return sleep + jitter

برای پرداخت - کلید idempotent + deduplication.
برای صف - مرده نامه و تلاش مجدد معوق.

6) خود شفا در صف/جریان

هشدارهای رشد DLQ + بازفرآوری منفرد

تاخیر کنترل: مصرف کنندگان در مقیاس خودکار (KEDA)، فشار به تولید کنندگان.
دقیقا یک بار/حداقل یک بار - آگاهانه انتخاب شده است ؛ عملیات idempotent هستند.

7) پول نقد و گرم کردن

کلید نسخه ('v2:') برای ناتوانی امن/عقبگرد.
استخرهای گرم اتصالات به DB/PSP ؛ گرم کردن قبل از تعویض (آبی سبز/قناری).
Stale-while-revalidate برای کاهش بازدیدهای پایگاه داده «سرد».

8) خودکار اصلاح توسط SLO (اقدامات سیگنال)

ما burn-rate/TTW/p95 هشدارها را با اقدامات خودکار ایمن مرتبط می کنیم:
  • قناری/عقب را متوقف کنید при سریع بسوزید.
  • مقیاس کردن کارگران با رشد «queue _ lag _ seconds».
  • فعال کردن حالت تنزل (UX ساده، غیرفعال کردن ویژگی های سنگین).
  • تغییر مسیر PSP هنگامی که زمان افزایش می یابد.
  • فعال کردن قابلیت kill-switch.
مثال (Alertmanager → Webhook → ایده ارکستر):
yaml alert: WithdrawalsQueueLag labels: { action: "scale_workers", target: "withdrawals-consumers", by: "+5" }

9) حالت تخریب (تخریب برازنده)

ساده کردن UI (درخواست های کمتر)، خاموش کردن ویدجت های گران قیمت.
ذخیره سازی بیشتر، طرفداران کمتر/جمع آوری.
برای LLM/توصیه ها - اندازه زمینه/مدل را کاهش دهید، «مسیر سریع» را فعال کنید.

10) رویکرد GitOps به رفع خودکار

تمام سیاست ها و پارامترهای خودکار اصلاح (زمان بندی، آستانه) در Git هستند.
هر عمل خودکار یک حاشیه نویسی در Grafana و یک ورودی در گزارش تغییر ایجاد می کند.
سیاست های قناری و دروازه های SLO نیز کد هستند.

11) مهندسی هرج و مرج: بررسی اینکه شفا کار می کند

تزریق شکست: تاخیر شبکه، سقوط قلب، شکست شبیه ساز PSP، تاخیر صف.
سناریوهای روز بازی: ما MTTR، کیفیت اقدامات خودکار، حضور مصنوعات را اندازه گیری می کنیم.
نتایج → به روز رسانی از کتاب اجرا، آستانه، phicheflags.

12) قابلیت مشاهده برای بهبود خودکار

نمونه: پرش سریع از متریک p95 به مسیر.
سیاهههای مربوط به 'trace _ id' و فیلدهای 'retry'، 'تلاش'، 'degrade _ mode = true'.
داشبورد مقایسه (پایدار در مقابل قناری)، کارت SLO را آزاد کنید.
حسابرسی اقدامات خودکار: چه کسی/چه چیزی/چه زمانی، معیارهای منبع، نتیجه.

13) ایمنی و انطباق

هیچ رازی در سیاهههای مربوط/معیارهای اصلاح خودکار وجود ندارد.
برای فعالیت های پرداخت - تایید دوگانه/نقش.
Geo/PII - ترافیک را به منطقه «اشتباه» با یک feilover را.

14) قالب های عملی

Istio DestinationRule - استخر اتصال و پرت

yaml trafficPolicy:
connectionPool:
http: { http1MaxPendingRequests: 1000, maxRequestsPerConnection: 100 }
outlierDetection:
consecutive5xx: 5 interval: 5s baseEjectionTime: 30s maxEjectionPercent: 50

پرچم دار - قناری با خودکار فلاش/رول بک

yaml analysis:
interval: 1m threshold: 5 metrics:
- name: request-success-rate thresholdRange: { min: 99 }
- name: request-duration thresholdRange: { max: 300 }
webhooks:
- name: smoke url: http://tester/smoke

KEDA ScaledObject - تاخیر کافکا

yaml triggers:
- type: kafka metadata:
topic: withdrawals bootstrapServers: broker:9092 consumerGroup: w-consumers lagThreshold: "5000"

15) چک لیست پیاده سازی

1. نقاط پایانی راه اندازی/آمادگی/زندگی و سلامت پیکربندی شده اند.
2. محدودیت/درخواست منابع + PDB/ضد وابستگی.
3. HPA/KEDA برای API ها و کارگران ؛ معیارهای تاخیر/توان.
4. قطع کننده مدار، تخلیه بیرونی، محدودیت سرعت در دروازه/مش.
5. Retray با عقب نشینی + jitter، idempotency معاملات پرداخت.
6. حافظههای نهان نسخه و حالت تنزل.
7. دروازه SLO → اقدامات خودکار (بازگشت/مقیاس/تغییر مسیر/کشتن سوئیچ).
8. کد سیاست GitOps + اقدامات حسابرسی، حاشیه نویسی انتشار.
9. تست هرج و مرج و روز بازی در سناریوهای کلیدی.
10. MTTR/داشبورد کیفیت هشدار و گزارش خودکار اصلاح.

16) ضد الگوهای

Liveness «ناخن» روند با توجه به وابستگی به زمان → flapping.
Retray without timeouts/jitter → طوفان درخواست ها.
HPA توسط CPU با خدمات وابسته به IO → «هیچ جا».
کش مشترک بدون نسخه در طول رول بک → فساد داده ها.
اقدامات خودکار بدون URL حسابرسی/Runbook.
بدون معیارهای DLQ/تاخیر → انباشت بدهی آرام.
مخلوط کردن خودکار بهبود و «پنهان کردن مشکلات»: اتوماسیون علائم را بهبود می بخشد، ریشه حذف نمی شود → تکرار حوادث.

خلاصه

خود شفا یک رشته مهندسی است: نمونه های با کیفیت بالا و محدودیت ها، retrays صالح و انزوا، اقدامات خودکار بر روی سیگنال های SLO، به علاوه بررسی هرج و مرج و ممیزی. این کانتور باعث می شود پلت فرم مقاوم در برابر سقوط، کاهش MTTR و صرفه جویی در معیارهای کلیدی iGaming - p99، تبدیل پرداخت و TTW - حتی در طول داغترین ساعت ها.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.