دسترسی بالا и SLA
دسترسی بالا и SLA
1) شرایط و ارتباط با کسب و کار
SLI (شاخص سطح خدمات) - شاخص خدمات اندازه گیری (به عنوان مثال، نسبت درخواست های موفق 2xx/3xx ≤ T MS).
SLO (هدف سطح خدمات) - ارزش SLI هدف (به عنوان مثال "99. 95% درخواست ها ≤ 300 میلی ثانیه)
SLA (توافقنامه سطح خدمات) - تعهد قراردادی به مشتری (جریمه/اعتبار در صورت نقض).
HA (دسترسی بالا) - اقدامات معماری و عملیاتی که به شما امکان می دهد SLO/SLA را انجام دهید.
اصل: SLA به SLO متکی است و SLO به SLI های مشاهده شده متکی است. شما نمی توانید آنچه را که اندازه گیری نمی کنید در SLA قول دهید.
2) «نه» و ریاضی دسترسی
در دسترس بودن در هر دوره = 'work _ time/total _ time'. معیارها (در سال):ترکیب در دسترس بودن
زنجیره متوالی (وابستگی مسیر قرمز): "A _ total = Π A_i' (هر جزء کل را کاهش می دهد).
گره های دارایی موازی: 'A _ total = 1 (1 )' (ذخیره کل را افزایش می دهد).
3) دقیقا اندازه گیری (SLI صحیح)
نمای کاربر: اتمام موفقیت آمیز عملیات کلیدی (ورود، واریز، چک کردن) و تأخیر آنها p99.
راهرو زمان: مجموع توسط پنجره های کشویی (5/30/60 دقیقه) و منطقه.
استثنا: «پنجره های برنامه ریزی شده» در SLO ها شمارش می شوند و در SLA ها تنها در صورتی که قرارداد چنین می گوید.
- در دسترس بودن: میزان موفقیت ≤ T.
- کیفیت: p95/p99 تاخیر.
- کامپوزیت: «سهم سپرده های موفق ≤ 5 ثانیه».
4) خطا بودجه و میزان سوختگی
بودجه خطا = «1 − SLO». برای 99 95٪ پنجره ماهانه می دهد 0. 05% خطا/خرابی.
نرخ سوختن: سرعت مصرف بودجه (به عنوان مثال 4 × به این معنی است که در 6 ساعت شما محدودیت روزانه را می خورید).
سیاست: با احتراق سریع - انتشار توقف، تمرکز بر تثبیت، ویژگی های یخ.
5) معماری HA: گره به منطقه
5. 1 گره/سرویس
N + 1: حداقل یک ماکت اضافی (≥ استقرار 2، PDB، ضد وابستگی).
جداسازی منابع: محدودیت های CPU/RAM/IO، اولویت ها (PriorityClass).
خاموش/تخلیه برازنده: بدون درخواست شکستن در راه اندازی مجدد.
5. 2 منطقه/منطقه
Multi-AZ: کپی در مناطق مختلف، تعادل متقابل منطقه، قدرت مستقل/شبکه.
چند منطقه ای: دارایی-دارایی (سخت تر: داده/سازگاری) یا دارایی-بدهی (ساده تر: بالاتر از RPO).
داده ها: CP برای پول/سفارشات (quorum/RAFT)، EC/AP برای انبارها/فروشگاه ها.
5. 3 لایه شبکه و محیط
L7-LB с بررسی های بهداشتی، تلاش مجدد/timeout/circuit-breaking.
GSLB/DNS/Anycast برای ترافیک جهانی، کوتاه TTL.
کنترل خروج و کانال های مقاوم در برابر خطا به PSP/ارائه دهندگان خارجی.
6) تخریب به جای سقوط
ویژگی kill-switch (پرچم های ویژگی): غیر بحرانی را خاموش کنید، «مسیر قرمز» را ذخیره کنید.
سوئیچینگ به مسیرهای ساده شده: synchronous → asynchronous/صف، «پذیرفته شده برای پردازش».
محدودیت نرخ/سهمیه: بهتر است ترافیک را محدود کنید تا همه را رها کنید.
حالت های Stale: داده های حافظه پنهان/استاتیک را زمانی که مبدا در دسترس نیست.
7) مدیریت محدودیت
نقشه خدمات: مستقیم/گذرا، بحرانی، SLO هر یک.
لینک های آسیب پذیر: ارائه دهنده خارجی بدون SLA - تبدیل به کش/صف/تکراری.
انزوا Bulkhead: استخر اتصال های مختلف/سهمیه برای مسیرهای آهسته.
Timeouts> تکرار: زمان کوتاه، حداکثر 1 retray برای عملیات idempotent.
8) عملیات و تغییرات
مدیریت تغییر: انتشار از طریق قناری/آبی سبز، دروازه SLO، بازگشت خودکار.
پنجره های برنامه ریزی شده: استاندارد - طول، فرکانس، ارتباطات.
حوادث: نقش ها (IC/Comms/Tech/DB)، runbook "و پس از مرگ با اقدامات اصلاحی.
رویدادهای امنیتی: اگر به خطر بیافتد، «حالت وحشت» (فقط خواندنی/نشانه/چرخش/مسدود کردن).
9) قابلیت مشاهده و هشدار
مدل RED (نرخ، خطا، مدت زمان) برای هر مسیر.
داشبورد SLI: در دسترس بودن/تاخیر بر اساس منطقه و بخش مشتری.
هشدار سوختگی نرخ: سریع (1h، 14. 4 ×)، آهسته (6 ساعت، 2 ×) - سیگنال قبل از شکست SLO.
Exemplars-Switches از معیارها به تراز trace_id.
مصنوعی: نمونه هایی از نقاط خارجی (محیط، جریان پرداخت).
10) آزمون تحمل خطا
بازی روز: حالات برای غیر فعال کردن AZ/مناطق، تخریب پایگاه داده/کش، شکست از ارائه دهندگان خارجی.
ابزار هرج و مرج: folts شبکه (تاخیر/از دست دادن)، کشتن غلاف، CPU/IO اضافه بار.
DR-drills: توسعه RTO/RPO برای سیستم های Tier-0 (نگاه کنید به «پشتیبان گیری و DR»).
11) طراحی SLA
تعریف «در دسترس بودن»: چه چیزی به عنوان یک حادثه شمارش می شود (5xx، time> T، خطاهای دامنه).
پنجره محاسبه: ماه/سه ماهه ؛ ورود/خروج از فعالیت های برنامه ریزی شده
اعتبار/مجازات: مقیاس (به عنوان مثال،. 99. 9–99. 99٪ - X٪، پایین تر - Y٪).
مسئولیت های مشتری: ادغام، retrays در محدوده معقول، محدودیت.
اطلاعیه ها و روش clymes: شرایط، فرمت، پایه شواهد (سیاهههای مربوط/متریک).
فورس ماژور: جمله بندی قانونی و مرزها.
- در دسترس بودن API توسط SLI «موفقیت آمیز ≤ 500 ms» حداقل 99 است. 95٪ در هر ماه. پنجره های برنامه ریزی شده (تا 60 دقیقه/ماه اعلام شده در 48 ساعت) حذف می شوند. در 99. 90–99. 95% - وام 5%; 99. 80–99. 90% — 10%; <99. 80% — 25%.»
12) نه اقتصاد
هر «نه» اضافی هزینه ها را افزایش می دهد نه به صورت خطی (مناطق دو، quorums، تکراری از ارائه دهندگان، 24 × 7). استفاده از SLO:- Tier-0 (پول/سفارشات): 99. 95–99. 99٪، چند AZ، DR آماده است.
- سطح 1 (ویژگی های اساسی): 99. 9–99. 95٪، چند AZ.
- Tier-2 (غیر انتقادی): 99. 5–99. 9٪، تخریب/توقف برای حوادث مجاز است.
13) الگوهای HA توسط لایه
محیط: CDN/لبه، چند CDN یا GSLB، WAF، محدود کردن نرخ.
تعادل: L7 با خروجی خارج، زمان/retrays، چسبنده/سازگار هش.
برنامه های کاربردی: مقیاس افقی، آمادگی/زنده بودن، PDB، گسترش توپولوژی.
داده ها: رهبر + کپی، حد نصاب برای CP، کش L2، idempotency، PITR.
صف: آینه/چند لایه، dedup، DLQ.
اسرار/پیکربندی: GitOps، عکس های فوری اتمی، بازگشت.
14) ضد الگوهای
SLA بدون ابزار اندازه گیری و مصنوعی خارجی.
تنها منطقه/خوشه به عنوان SPOF.
Retrays کنترل نشده → «خود DDoS».
معاملات طولانی/mutexes در مسیر داغ.
مهاجرت/انتشار «سنگین» بدون قناری و برنامه برگشت.
عدم وجود کتاب و ارتباط با ذینفعان در یک حادثه.
15) چک لیست پیاده سازی (0-60 روز)
0-15 روز
SLI های مهم کاربر را تعریف کنید، SLO ها را با سطوح Tier-0/1/2 تنظیم کنید.
شامل هشدار سوختگی، داشبورد SLO، بررسی محیط مصنوعی.
حذف SPOF: ≥2 کپی، PDB، چند AZ برای جبهه ها و پایگاه های داده بحرانی.
16-40 روز
معرفی نسخه های قناری با SLO-gating و auto-rollback.
نقشه وابستگی + سهمیه/استخر/زمان بندی/PB برای هر «مسیر قرمز».
تنظیم پنجره ها و ارتباطات برنامه ریزی شده، قالب های پیام حادثه.
41-60 روز
روز بازی: قطع اتصال AZ، شکست یک ارائه دهنده خارجی، «انفجار» ترافیک.
محاسبه مجدد SLA ها و اعتبارات واقعی، انتشار گزارش به مشتریان.
تجدید نظر در «هزینه ↔ نه» و دوباره تخمگذار در گالری تیراندازی.
16) معیارهای بلوغ
≥ 95٪ از مسیرهای بحرانی دارای هشدارهای SLI/SLO و میزان سوختگی هستند.
خطاهای SLO با توقف خودکار انتشار (سیاست) همراه است.
Tier-0 پوشش چند AZ = 100٪، موفق DR-دریل ≥ 1/سه ماهه.
«تشخیص → کاهش» زمان p50 <5 دقیقه، p95 <15 دقیقه.
«Release ↔ incidents» همبستگی - حفظ و کاهش (rate↓ برگشت).
حادثه عمومی/گزارش اعتبار - ظرف N روز کاری.
17) نمونه ها و قطعه
هشدار نرخ سوختگی (ایده قانون):- سریع: "SLO 99. 95%, پنجره 1 ساعت, سوختن ≥ 14. 4 × → صفحه در تماس"
- آهسته: «window 6 h, burn ≥ 2 × → ticket & monitoring».
yaml circuit_breakers:
thresholds:
- max_connections: 200 max_pending_requests: 100 max_requests: 1000 max_retries: 1 outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
قناری با تجزیه و تحلیل SLO (Argo Rollouts، ایده):
yaml analysis:
templates:
- name: slo-burn metrics:
- name: error-rate successCondition: result < 0. 005 provider: prometheus
مثال فرمول SLI:
SLI: fraction_of_good_requests = good(HTTP 2xx/3xx ≤ 500ms) / all(requests)
SLO: ≥ 99. 95% per calendar month, per region
18) نتیجه گیری
در دسترس بودن بالا نه تنها خوشه ها و کپی ها، بلکه مجموعه ای سازگار از معماری، فرایندها و معیارها است: SLI/SLO روشن، SLA واقع بینانه، اقتصاد، تخریب به جای سقوط، نظم و انضباط زمان/سهمیه، انتشار قناری، تمرینات منظم و ارتباطات شفاف. مقرون به صرفه بودن قابل اندازه گیری و قابل کنترل است - و این یک مزیت رقابتی است، نه یک قرعه کشی.